General clean-up and documentation.
diff --git a/README b/README
index 7d20828..8c25e7c 100644
--- a/README
+++ b/README
@@ -1,10 +1,80 @@
-HOTPLUGGING:
-------------
-Some scripts are generated during build:
+Building and Installing
+-----------------------
-* libmtp.usermap + libmtp.sh constitute an old hotplug script
- solution.
-* libmtp.usermap constitute a modern udev solution.
+See the "INSTALL" file.
+
+
+Heritage
+--------
+
+libmtp is based on several ancestors:
+
+* libptp2 by Mariusz Woloszyn was the starting point used
+ by Richard A. Low for the initial starter port. You can
+ find it at http://libptp.sourceforge.net/
+
+* libgphoto2 by Mariusz Woloszyn and Marcus Meissner was
+ used at a later stage since it was (is) more actively
+ maintained. libmtp tracks the PTP implementation in
+ libgphoto2 and considers it an upstream project. We will
+ try to submit anything generally useful back to libgphoto2
+ and not make double efforts. In practice this means we
+ use ptp.c, ptp.h and ptp-pack.c verbatim from the libgphoto2
+ source code. If you need to change things in these files,
+ make sure it is so general that libgphoto2 will want to
+ merge it to their codebase too. You find libgphoto2 as part
+ of gPhoto: http://gphoto.sourceforge.net/
+
+* libnjb was a project that Richard and Linus were working
+ on before libmtp. When Linux took Richards initial port
+ and made an generic C API he re-used the philosophy and
+ much code from libnjb. Many of the sample programs are for
+ example taken quite literally from libnjb. You find it here:
+ http://libnjb.sourceforge.net/
+
+
+Compiling programs for libmtp
+-----------------------------
+
+libmtp has support for the pkg-config script by adding a libmtp.pc
+entry in $(prefix)/lib/pkgconfig. To compile a libmtp program,
+"just" write:
+
+gcc -o foo `pkg-config --cflags --libs libmtp` foo.c
+
+This also simplifies compilation using autoconf and pkg-config: just
+write e.g.
+
+PKG_CHECK_MODULES(MTP, libmtp)
+AC_SUBST(MTP_CFLAGS)
+AC_SUBST(MTP_LIBS)
+
+To have libmtp LIBS and CFLAGS defined. Needless to say, this will
+only work if you have pkgconfig installed on your system, but most
+people have nowadays.
+
+If your library is installed in e.g. /usr/local you may have to tell
+this to pkgconfig by setting the PKG_CONFIG_PATH thus:
+
+export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
+
+
+Documentation
+-------------
+
+Read the API documentation that can be generated with doxygen.
+It will be output in doc/html if you have Doxygen properly
+installed. (It will not be created unless you have Doxygen!)
+
+For information about the Media Transfer Protocol, see:
+http://en.wikipedia.org/wiki/Media_Transfer_Protocol
+
+
+Contributing
+------------
+
+See the project page at http://libmtp.sourceforge.net/
+We always need your help.
Calendar support:
@@ -20,13 +90,3 @@
- Files should be stored in the folder "My Organizer" when
sent to the device (Use the option -f "My Organizer" to
sendfile for this)
-
-
-libgphoto2 heritage:
---------------------
-
-libmtp is based on libgphoto2, in practice this means we
-use ptp.c, ptp.h and ptp-pack.c verbatim from the libgphoto2
-source code. If you need to change things in these files,
-make sure it is so general that libgphoto2 will want to
-merge it to their codebase too.