Configuration Flags
From MtdWiki
Configure Flags
This is a brief description of the configure flags for mt-daapd, what they are for, and examples of their usage. Note that these configure flags represent the flags present in the current version of mt-daapd (currently 0.2.1-pre2). Other versions may vary somewhat from this.
There are two general classes of flags, the Enable Flags and the With Flags. They are both documented below. Enable Flags Enable flags include the following:
The --enable-debug flag adds -Wall to CFLAGS. This has the effect of causing the compiler to generate warning messages that it would normally suppress. This is generally only helpful for package maintainers. It is generally not used, and is included here only for the sake of completeness.
The --enable-debug-memory flag adds debugging code to try and find allocated memory that doesn't get freed over the course of the program. Generally, this is probably less useful than valgrind, or other leak-checking packages, and consequently this option is generally not used. It will probably be removed altogether in future releases, and is included here only for the sake of completeness.
The --enable-mdns flag is used most often in the negative sense... as --disable-mdns. When used in this manner, it completely eliminates any mDNS code. This might be useful if you knew you were going to use an external mDNS daemon, or when building a version for Win32 under cygwin.
The --enable-efence flag is used to link the resulting code with the electric fence library. This is for debugging heap overruns. Electric fence is probably less useful as a debugging tool than valgrind, so this is probably of limited value, even to developers. Still, it does run faster than valgrind, so it probably still has its place. Generally, though, this configure flag will not be used.
The --enable-nslu2 flag does nothing more than change the default config file location from /etc/mt-daapd.conf to /opt/etc/mt-daapd/mt-daapd.conf to make mt-daapd more "nslu2 friendly". Eventually, this flag will be used to choose configure defaults that are more in-line with the nslu2 and other embedded devices. For example - to choose the default value for the always_scan configuration option. This flag can generally be ignored.
The --enable-howl flag uses PorchDog Software's howl as the backend mDNS responder, rather than the built-in Apple one. This makes sense (and in fact is requried) if you plan to have more than one mDNS enabled daemon running on your machine. Note that this requires Howl 0.9.6 (ish) or above.
You may also need to use the --with-howl-includes flag if mt-daapd can't find the howl include files.
Note that this flag has no effect when compiling on OSX. When compiling on OSX it always uses the OSX mDNS responder, unless you used the --disable-mdns configure flag. With Flags
The --with-static-libs flag causes mt-daapd to be linked statically to libgdbm and libid3tag. This is probably most useful for OSX, so that the resulting binary could be compiled on machines with gdbm and id3tag installed via fink, but run on any OSX machine. This flag can generally be ignored.
The --with-gdbm-includes flag is used to help mt-daapd locate the gdbm.h header file. If the configure fails with an error message like this:
configure: error: gdbm.h not found... try --with-gdbm-includes=dir
Then you need to use this configure flag. The directory you use with this option should be the directory that the gdbm.h header file is in. For example, if the path to gdbm.h is /usr/local/include/gdbm.h on your system, you would use the following configure command:
./configure --with-gdbm-includes=/usr/local/include
Or on a Mac with gdbm installed via fink, the gdbm.h file is at /sw/include/gdbm.h, so the appropriate configure command is:
./configure --with-gdbm-includes=/sw/include
The --with-gdbm-libs flag is used to help mt-daapd locate the libgdbm.a library. If the configure fails with an error message like this:
checking for gdbm_open in -lgdbm... no Must have gdbm
Then you need to use this configure flag. The directory you use with this option should be the directory that the libgdbm.a library is in in. For example, if the path to libgdbm.a is /usr/local/lib/libgdbm.a on your system, you would use the following configure command:
./configure --with-gdbm-libs=/usr/local/lib
Or on a Mac with gdbm installed via fink, the libgdbm.a file is at /sw/lib/libgdbm.a, so the appropriate configure command is:
./configure --with-gdbm-libs=/sw/lib
The --with-howl-includes flag is used to help find the howl.h file. Some howl packages put the howl.h header in a versioned subdirectory, like in /usr/include/howl-0.9.6/howl.h. In any case, this configure option will help locate the howl headers. Just like the --with-gdbm-includes flag, you must use the directory that the howl.h file is in as the option. For example, if your howl.h was at /usr/include/howl-0.9.6/howl.h like the example above, the proper configure command would be:
./configure --with-howl-includes=/usr/include/howl-0.9.6
The --with-id3tag is used to find both the id3tag.h and the libid3tag.a library. Unlike the flags above, this flag assumes that the include and lib directories are under the directory specified. For example, if id3tag.h is in /usr/local/include and libid3tag.a is in /usr/local/lib, then the proper configure command is:
./configure --with-id3tag=/usr/local
Likewise, on a Mac with libid3tag installed from fink, the header and library files are in /sw/include and /sw/lib respectively, so the proper configure command is:
./configure --with-id3tag=/sw
