1# $Id: Makefile,v 1.31.2.2 2012/11/05 07:01:21 jmaggard Exp $ 2# MiniDLNA project 3# http://sourceforge.net/projects/minidlna/ 4# (c) 2008-2009 Justin Maggard 5# for use with GNU Make 6# To install use : 7# $ DESTDIR=/dummyinstalldir make install 8# or : 9# $ INSTALLPREFIX=/usr/local make install 10# or : 11# $ make install 12# 13#CFLAGS = -Wall -O -D_GNU_SOURCE -g -DDEBUG 14#CFLAGS = -Wall -g -Os -D_GNU_SOURCE 15 16include ../common.mak 17 18LDFLAGS = -ffunction-sections -fdata-sections -Wl,--gc-sections 19 20#CFLAGS = -Wall -g -O3 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 \ 21 22CFLAGS = -Wall -g -Os -D_GNU_SOURCE $(EXTRACFLAGS) -D_FILE_OFFSET_BITS=64 \ 23 -ffunction-sections -fdata-sections \ 24 -I$(TOP)/ffmpeg/libavutil -I$(TOP)/ffmpeg/libavcodec -I$(TOP)/ffmpeg/libavformat \ 25 -I$(TOP)/ffmpeg/libswscale -I$(TOP)/ffmpeg \ 26 -I$(TOP)/flac/include -I$(TOP)/sqlite -I$(TOP)/jpeg \ 27 -I$(TOP)/libexif -I$(TOP)/libid3tag -I$(TOP)/libogg/include \ 28 -I$(TOP)/libvorbis/include \ 29 30ifneq ($(STATIC),1) 31LDFLAGS += -L$(TOP)/zlib -L$(TOP)/sqlite/.libs -L$(TOP)/jpeg -L$(TOP)/libvorbis/lib/.libs \ 32 -L$(TOP)/libogg/src/.libs -L$(TOP)/libexif/libexif/.libs -L$(TOP)/flac/src/libFLAC/.libs \ 33 -L$(TOP)/ffmpeg/libavutil -L$(TOP)/ffmpeg/libavcodec -L$(TOP)/ffmpeg/libavformat \ 34 -L$(TOP)/libid3tag/.libs 35else 36LDFLAGS += -static 37endif 38 39#STATIC_LINKING: CFLAGS += -DSTATIC 40#STATIC_LINKING: LDFLAGS = -static 41#CC = gcc 42RM = rm -f 43INSTALL = install 44 45CFLAGS += -I$(TOP)/shared 46 47include $(SRCBASE)/.config 48 49ifeq ($(RTN65U), y) 50 CFLAGS += -DRTN56U 51endif 52 53INSTALLPREFIX ?= $(DESTDIR)/usr 54SBININSTALLDIR = $(INSTALLPREFIX)/sbin 55ETCINSTALLDIR = $(DESTDIR)/etc 56 57BASEOBJS = minidlna.o upnphttp.o upnpdescgen.o upnpsoap.o \ 58 upnpreplyparse.o minixml.o \ 59 getifaddr.o process.o upnpglobalvars.o \ 60 options.o minissdp.o uuid.o upnpevents.o \ 61 sql.o utils.o metadata.o scanner.o inotify.o \ 62 tivo_utils.o tivo_beacon.o tivo_commands.o \ 63 containers.o \ 64 tagutils/tagutils.o \ 65 playlist.o image_utils.o albumart.o log.o clients.o 66 67ALLOBJS = $(BASEOBJS) $(LNXOBJS) 68 69#LIBS = -lpthread -lexif -ljpeg -lsqlite3 -lavformat -lavutil -lavcodec -lid3tag -lFLAC -logg -lvorbis 70#STATIC_LINKING: LIBS = -lvorbis -logg -lm -lsqlite3 -lpthread -lexif -ljpeg -lFLAC -lm -lid3tag -lz -lavformat -lavutil -lavcodec -lm 71 72ifeq ($(STATIC),1) 73LIBS = -lpthread -ldl -lm \ 74 $(TOP)/libvorbis/lib/.libs/libvorbis.a \ 75 $(TOP)/libogg/src/.libs/libogg.a \ 76 $(TOP)/sqlite/.libs/libsqlite3.a \ 77 $(TOP)/libexif/libexif/.libs/libexif.a \ 78 $(TOP)/jpeg/libjpeg.a \ 79 $(TOP)/flac/src/libFLAC/.libs/libFLAC.a \ 80 $(TOP)/libid3tag/.libs/libid3tag.a \ 81 $(TOP)/zlib/libz.a \ 82 $(TOP)/ffmpeg/libavformat/libavformat.a \ 83 $(TOP)/ffmpeg/libavcodec/libavcodec.a \ 84 $(TOP)/ffmpeg/libavutil/libavutil.a 85else 86LIBS += -lpthread -ldl -lm -lvorbis -logg -lsqlite3 -lexif -ljpeg -lFLAC -lid3tag -lz -lavformat -lavcodec -lavutil 87endif 88 89TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o 90 91EXECUTABLES = minidlna testupnpdescgen 92 93.PHONY: all clean distclean install depend 94 95all: $(EXECUTABLES) 96 97clean: 98 $(RM) $(ALLOBJS) 99 $(RM) $(EXECUTABLES) 100 $(RM) testupnpdescgen.o 101 $(RM) osver.h 102 103distclean: clean 104# $(RM) config.h 105 106install-conf: 107 $(INSTALL) -d $(ETCINSTALLDIR) 108 $(INSTALL) --mode=0644 minidlna.conf $(ETCINSTALLDIR) 109 110install: minidlna 111 $(INSTALL) -D minidlna $(INSTALLDIR)/usr/sbin/minidlna 112 $(STRIP) $(INSTALLDIR)/usr/sbin/minidlna 113 114minidlna: $(BASEOBJS) $(LNXOBJS) 115 @echo Linking $@ 116 @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(BASEOBJS) $(LNXOBJS) $(LIBS) 117 118 119testupnpdescgen: $(TESTUPNPDESCGENOBJS) 120 @echo Linking $@ 121 @$(CC) $(CFLAGS) -o $@ $(TESTUPNPDESCGENOBJS) 122 123config.h: genconfig.sh 124# ./genconfig.sh 125 126depend: config.h 127 makedepend -f$(MAKEFILE_LIST) -Y \ 128 $(ALLOBJS:.o=.c) $(TESTUPNPDESCGENOBJS:.o=.c) 2>/dev/null 129 130# DO NOT DELETE 131 132minidlna.o: config.h upnpglobalvars.h minidlnatypes.h 133minidlna.o: upnphttp.h upnpdescgen.h minidlnapath.h getifaddr.h upnpsoap.h 134minidlna.o: options.h minissdp.h process.h upnpevents.h log.h 135upnphttp.o: config.h upnphttp.h upnpdescgen.h minidlnapath.h upnpsoap.h 136upnphttp.o: upnpevents.h image_utils.h sql.h log.h sendfile.h icons.c 137upnpdescgen.o: config.h upnpdescgen.h minidlnapath.h upnpglobalvars.h upnpdescstrings.h 138upnpdescgen.o: minidlnatypes.h upnpdescstrings.h log.h 139upnpsoap.o: config.h upnpglobalvars.h minidlnatypes.h log.h utils.h sql.h 140upnpsoap.o: upnphttp.h upnpsoap.h upnpreplyparse.h getifaddr.h log.h 141upnpreplyparse.o: upnpreplyparse.h minixml.h log.h 142minixml.o: minixml.h 143getifaddr.o: getifaddr.h log.h 144process.o: process.h config.h log.h 145upnpglobalvars.o: config.h upnpglobalvars.h upnpdescstrings.h 146upnpglobalvars.o: minidlnatypes.h 147options.o: options.h config.h upnpglobalvars.h 148options.o: minidlnatypes.h 149minissdp.o: config.h upnpdescstrings.h minidlnapath.h upnphttp.h 150minissdp.o: upnpglobalvars.h minidlnatypes.h minissdp.h log.h 151upnpevents.o: config.h upnpevents.h minidlnapath.h upnpglobalvars.h 152upnpevents.o: minidlnatypes.h upnpdescgen.h log.h uuid.h 153uuid.o: uuid.h 154testupnpdescgen.o: config.h upnpdescgen.h 155scanner.o: upnpglobalvars.h metadata.h utils.h sql.h scanner.h log.h playlist.h scanner_sqlite.h 156metadata.o: upnpglobalvars.h metadata.h albumart.h utils.h sql.h log.h 157albumart.o: upnpglobalvars.h albumart.h utils.h image_utils.h sql.h log.h 158containers.o: containers.h 159tagutils/tagutils.o: tagutils/tagutils-asf.c tagutils/tagutils-flc.c tagutils/tagutils-plist.c 160tagutils/tagutils.o: tagutils/tagutils-aac.c tagutils/tagutils-asf.h tagutils/tagutils-flc.h tagutils/tagutils-mp3.c tagutils/tagutils-wav.c 161tagutils/tagutils.o: tagutils/tagutils-ogg.c tagutils/tagutils-aac.h tagutils/tagutils.h tagutils/tagutils-mp3.h tagutils/tagutils-ogg.h log.h 162playlist.o: playlist.h 163inotify.o: inotify.h playlist.h 164image_utils.o: image_utils.h 165tivo_utils.o: config.h tivo_utils.h 166tivo_beacon.o: config.h tivo_beacon.h tivo_utils.h 167tivo_commands.o: config.h tivo_commands.h tivo_utils.h utils.h 168utils.o: utils.h 169sql.o: sql.h 170log.o: log.h 171clients.o: clients.h 172 173.SUFFIXES: .c .o 174 175.c.o: 176 @echo Compiling $*.c 177 @$(CC) $(CFLAGS) -o $@ -c $< && exit 0;\ 178 echo "The following command failed:" 1>&2;\ 179 echo "$(CC) $(CFLAGS) -o $@ -c $<";\ 180 $(CC) $(CFLAGS) -o $@ -c $< &>/dev/null 181