From 0a8badcae0e1add34abd3606c82b6c7ad347432b Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Sat, 4 Apr 2009 01:26:31 +0000 Subject: [PATCH] * Try to do a better job informing users what libraries they might be missing. --- Makefile | 23 ++++++++++++++++++----- genconfig.sh | 49 ++++++++++++++++++++++++++----------------------- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 5cc4162..7cd3772 100644 --- a/Makefile +++ b/Makefile @@ -54,15 +54,16 @@ install: minidlna $(INSTALL) -d $(SBININSTALLDIR) $(INSTALL) minidlna $(SBININSTALLDIR) $(INSTALL) -d $(ETCINSTALLDIR) - $(INSTALL) netfilter/iptables_init.sh $(ETCINSTALLDIR) - $(INSTALL) netfilter/iptables_removeall.sh $(ETCINSTALLDIR) $(INSTALL) --mode=0644 minidlna.conf $(ETCINSTALLDIR) - $(INSTALL) -d $(PREFIX)/etc/init.d - $(INSTALL) linux/miniupnpd.init.d.script $(PREFIX)/etc/init.d/miniupnpd minidlna: $(BASEOBJS) $(LNXOBJS) $(LIBS) + @echo Linking $@ + @$(CC) $(CFLAGS) -o $@ $(BASEOBJS) $(LNXOBJS) $(LIBS) + testupnpdescgen: $(TESTUPNPDESCGENOBJS) + @echo Linking $@ + @$(CC) $(CFLAGS) -o $@ $(BASEOBJS) $(LNXOBJS) $(LIBS) config.h: genconfig.sh ./genconfig.sh @@ -103,10 +104,22 @@ metadata.o: upnpglobalvars.h metadata.h albumart.h utils.h sql.h log.h albumart.o: upnpglobalvars.h albumart.h utils.h image_utils.h sql.h log.h tagutils/misc.o: tagutils/misc.h tagutils/textutils.o: tagutils/misc.h tagutils/textutils.h log.h -tagutils/tagutils.o: tagutils/tagutils-asf.c tagutils/tagutils-flc.c tagutils/tagutils-plist.c +tagutils/tagutils.o: tagutils/tagutils-asf.c tagutils/tagutils-flc.c tagutils/tagutils-plist.c tagutils/tagutils-misc.c tagutils/tagutils.o: tagutils/tagutils-aac.c tagutils/tagutils-asf.h tagutils/tagutils-flc.h tagutils/tagutils-mp3.c tagutils/tagutils.o: tagutils/tagutils-ogg.c tagutils/tagutils-aac.h tagutils/tagutils.h tagutils/tagutils-mp3.h tagutils/tagutils-ogg.h log.h image_utils.o: image_utils.h +tivo_utils.o: config.h tivo_utils.h +tivo_beacon.o: config.h tivo_beacon.h tivo_utils.h +tivo_commands.o: config.h tivo_commands.h tivo_utils.h utils.o: utils.h sql.o: sql.h log.o: log.h + +.SUFFIXES: .c .o + +.c.o: + @echo Compiling $*.c + @$(CC) $(CFLAGS) -o $@ -c $< && exit 0;\ + echo "The following command failed:" 1>&2;\ + echo "$(CC) $(CFLAGS) -o $@ -c $<";\ + $(CC) $(CFLAGS) -o $@ -c $< &>/dev/null diff --git a/genconfig.sh b/genconfig.sh index d9e96f9..fa84fcc 100755 --- a/genconfig.sh +++ b/genconfig.sh @@ -10,8 +10,6 @@ RM="rm -f" CONFIGFILE="config.h" CONFIGMACRO="__CONFIG_H__" -# version reported in XML descriptions -UPNP_VERSION=20070827 # Database path DB_PATH="/tmp/minidlna" @@ -19,16 +17,34 @@ DB_PATH="/tmp/minidlna" OS_NAME=`uname -s` OS_VERSION=`uname -r` -# pfSense special case -if [ -f /etc/platform ]; then - if [ `cat /etc/platform` = "pfSense" ]; then - OS_NAME=pfSense - OS_VERSION=`cat /etc/version` - fi -fi - ${RM} ${CONFIGFILE} +# Detect if there are missing headers +# NOTE: This check only works with a normal distro +[ ! -e "/usr/include/sqlite3.h" ] && MISSING="libsqlite3 $MISSING" +[ ! -e "/usr/include/uuid/uuid.h" ] && MISSING="libuuid $MISSING" +[ ! -e "/usr/include/jpeglib.h" ] && MISSING="libjpeg $MISSING" +[ ! -e "/usr/include/libexif/exif-loader.h" ] && MISSING="libexif $MISSING" +[ ! -e "/usr/include/id3tag.h" ] && MISSING="libid3tag $MISSING" +[ ! -e "/usr/include/ogg/ogg.h" ] && MISSING="libogg $MISSING" +[ ! -e "/usr/include/vorbis/codec.h" ] && MISSING="libvorbis $MISSING" +[ ! -e "/usr/include/FLAC/metadata.h" ] && MISSING="libflac $MISSING" +[ ! -e "/usr/include/ffmpeg/avutil.h" -a \ + ! -e "/usr/include/libavutil/avutil.h" -a \ + ! -e "/usr/include/ffmpeg/libavutil/avutil.h" ] && MISSING="libavutil $MISSING" +[ ! -e "/usr/include/ffmpeg/avformat.h" -a \ + ! -e "/usr/include/libavformat/avformat.h" -a \ + ! -e "/usr/include/ffmpeg/libavformat/avformat.h" ] && MISSING="libformat $MISSING" +[ ! -e "/usr/include/ffmpeg/avcodec.h" -a \ + ! -e "/usr/include/libavcodec/avcodec.h" -a \ + ! -e "/usr/include/ffmpeg/libavcodec/avcodec.h" ] && MISSING="libavcodec $MISSING" +if [ -n "$MISSING" ]; then + echo -e "\nERROR! Cannot continue." + echo -e "The following required libraries are either missing, or are missing development headers:\n" + echo -e "$MISSING\n" + exit 1 +fi + echo "/* MiniDLNA Project" >> ${CONFIGFILE} echo " * http://sourceforge.net/projects/minidlna/" >> ${CONFIGFILE} echo " * (c) 2008-2009 Justin Maggard" >> ${CONFIGFILE} @@ -36,7 +52,6 @@ echo " * generated by $0 on `date` */" >> ${CONFIGFILE} echo "#ifndef $CONFIGMACRO" >> ${CONFIGFILE} echo "#define $CONFIGMACRO" >> ${CONFIGFILE} echo "" >> ${CONFIGFILE} -echo "#define UPNP_VERSION \"$UPNP_VERSION\"" >> ${CONFIGFILE} # OS Specific stuff case $OS_NAME in @@ -115,18 +130,6 @@ echo "/* full path of the file database */" >> ${CONFIGFILE} echo "#define DB_PATH \"${DB_PATH}\"" >> ${CONFIGFILE} echo "" >> ${CONFIGFILE} -echo "/* Uncomment the following line to allow miniupnpd to be" >> ${CONFIGFILE} -echo " * controlled by miniupnpdctl */" >> ${CONFIGFILE} -echo "/*#define USE_MINIUPNPDCTL*/" >> ${CONFIGFILE} -echo "" >> ${CONFIGFILE} - -echo "/* Uncomment the following line to enable caching of results of" >> ${CONFIGFILE} -echo " * the getifstats() function */" >> ${CONFIGFILE} -echo "/*#define ENABLE_GETIFSTATS_CACHING*/" >> ${CONFIGFILE} -echo "/* The cache duration is indicated in seconds */" >> ${CONFIGFILE} -echo "#define GETIFSTATS_CACHING_DURATION 2" >> ${CONFIGFILE} -echo "" >> ${CONFIGFILE} - echo "/* Comment the following line to use home made daemonize() func instead" >> ${CONFIGFILE} echo " * of BSD daemon() */" >> ${CONFIGFILE} echo "#define USE_DAEMON" >> ${CONFIGFILE}