--- libgig/trunk/README 2003/10/25 20:15:04 2 +++ libgig/trunk/README 2005/06/15 12:51:12 650 @@ -9,43 +9,116 @@ files and provide abstract access to the data. - gig classes (gig.h, gig.cpp): These are based on the DLS classes and - provide the neccessary extensions for + provide the necessary extensions for the Gigasampler file format. + Beside the actual library there are four example applications: + + gigdump: Demo app that prints out the content of a .gig file. + gigextract: Extracts samples from a .gig file. + dlsdump: Demo app that prints out the content of a DLS file. + rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF + file. + Requirements ============ - I simply used automake & co this time so you will need to have automake, - autoconf and libtool installed. I used the following versions: - automake 1.6.3 - autoconf 2.57 + POSIX systems (e.g. Linux, OS X): + --------------------------------- - If you want to compile the 'gigextract' application that comes with these - sources then you will additionally need to have libaudiofile installed (I - used version 0.2.3). + You need at least to have libtool installed to be able to build the + library with "./configure && make". -Non-POSIX systems -================= + Additionally you need to have either libaudiofile (>= 0.2.3) or + libsndfile (>= 1.0.2) installed which is mandatory to be able to compile + the 'gigextract' example application. But of course 'gigextract' is still + just an example application, so it would make sense to compile it only if + one of those libraries are available. That would remove that hard + dependency to those two libs. But that's not a priority for me now. + Note: for Windows systems only libsndfile is available. + + If you want to regenerate all autotools build files (that is configure, + Makefile.in, etc.) then you need to have automake (>= 1.5) and autoconf + installed. + + Non-POSIX systems (e.g. Windows): + --------------------------------- + If you don't have a POSIX system, you have to set 'POSIX' to '0' in RIFF.h. Instead of using POSIX calls then standard C calls will be used for file - access. + access. This applies e.g. to Windows systems. I would appreciate if + somebody sends me his MS Visual Studio / .NET, Borland C++ Builder or + Apple XCode project file! This might help others to conveniently compile + libgig on those platforms as well. + +Compiling +========= + + You can either compile the sources and install the library directly on + your system or you can create Redhat or Debian packages. + + a) Compiling and installing directly + + Call './configure && make' on the console to compile the library, all + tools and demo applications, documentation and install them with + 'make install'. The latter has to be called as root. + + If you are compiling from CVS you have to call 'make -f Makefile.cvs' + to generate all autotools build files before calling + './configure && make'. + + You can use 'make distclean' and probably 'make -f Makefile.cvs clean' + to clean up everything again. The latter will also delete all automatic + generated autools build files. -Compiling: -========== - - Use 'CXXFLAGS=-pedantic ./configure && make all' to compile the library - and all tools and demo applications. + b) Creating Debian packages - - Beside the actual library there are four applications: + Use 'dpkg-buildpackage -rfakeroot -b' to compile and create the Debian + packages. This will generate 3 Debian packages: - gigdump: Demo app that prints out the content of a .gig file. - gigextract: Extracts samples from a .gig file. - dlsdump: Demo app that prints out the content of a DLS file. - rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF - file. + libgig: Contains the shared library files. + libgig-dev: Contains the header files and documentation for building + applications using libgig. + gigtools: Contains the tools and demo applications. - - If you have Doxygen installed you can generate the API documentation by - just running 'doxygen' in the sources' top level directory. + You can use 'fakeroot debian/rules clean' to clean up everything again. + + c) Creating Redhat packages + + You need to have the rpmbuild tool installed and properly configured to + create RPM packages. To create the RPM packages do the following: + + * Get .spec file generated by ./configure and edit it as appropriate. + + * Copy the source tarball to "/usr/src//SOURCES" directory, + where is dependent to the system you are using. For SuSE + will be "packages", for Mandrake is "RPM" and for + Redhat / Fedora always equals "redhat". + + * Build the rpm(s) by invoking 'rpmbuild -bb ' from the + command line. + + On success, the resulting rpm(s) can usually be found under the proper + "/usr/src//RPMS/" directory. + +API Documentation +================= - - 'make distclean' to clean up everything again + If you have Doxygen installed you can generate the API documentation by + running 'make docs' in the sources' top level directory. The API + documentation will be generated in the 'doc' subdirectory. + +Patches +======= + If you find bugs or have improvements, your patches are always welcome! + Send them either directly to me or to the LinuxSampler developer's mailing + list . + +Credits +======= + The initial library was based on the reverse engineering effort of + Paul Kellett and Ruben van Royen. We owe current support for the quite new + Gigasampler v3 format to Andreas Persson. Please also have a look at the + ChangeLog for all those who contributed. Thanks for your great work! Christian Schoenebeck