1# $Id: Makefile,v 1.24 2010/01/13 21:15:07 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# $ PREFIX=/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
15CFLAGS = -Wall -g -O3 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D__sparc__\
16         -I$(MINI_DLNA_PATH)/ffmpeg-0.5.1 \
17         -I$(MINI_DLNA_PATH)/ffmpeg-0.5.1/libavutil \
18     	 -I$(MINI_DLNA_PATH)/ffmpeg-0.5.1/libavcodec \
19     	 -I$(MINI_DLNA_PATH)/ffmpeg-0.5.1/libavformat \
20         -I$(MINI_DLNA_PATH)/sqlite-3.6.22 \
21         -I$(MINI_DLNA_PATH)/libexif-0.6.19 \
22         -I$(MINI_DLNA_PATH)/libid3tag-0.15.0b \
23         -I$(MINI_DLNA_PATH)/libogg-1.1.4/include/ \
24         -I$(MINI_DLNA_PATH)/libvorbis-1.2.3/include/ \
25     	 -I$(MINI_DLNA_PATH)/jpeg-7 \
26         -I$(MINI_DLNA_PATH)/flac-1.2.1/include/ \
27         -L$(MINI_DLNA_PATH)/lib/        
28          
29#	 -I/usr/include/ffmpeg \
30#	 -I/usr/include/libavutil -I/usr/include/libavcodec -I/usr/include/libavformat \
31#	 -I/usr/include/ffmpeg/libavutil -I/usr/include/ffmpeg/libavcodec -I/usr/include/ffmpeg/libavformat
32#STATIC_LINKING: LDFLAGS = -static
33
34ifeq ($(PROFILE),WNDR4500REV)
35CFLAGS += -DWNDR4500REV 
36endif
37
38CC = $(CROSS_COMPILE)gcc
39RM = rm -f
40INSTALL = install
41
42INSTALLPREFIX ?= $(PREFIX)/usr
43SBININSTALLDIR = $(INSTALLPREFIX)/sbin
44ETCINSTALLDIR = $(PREFIX)/etc
45
46BASEOBJS = minidlna.o upnphttp.o upnpdescgen.o upnpsoap.o \
47           upnpreplyparse.o minixml.o \
48           getifaddr.o daemonize.o upnpglobalvars.o \
49           options.o minissdp.o uuid.o upnpevents.o \
50           sql.o utils.o metadata.o scanner.o inotify.o \
51           tivo_utils.o tivo_beacon.o tivo_commands.o \
52           tagutils/textutils.o tagutils/misc.o tagutils/tagutils.o \
53           playlist.o image_utils.o albumart.o log.o
54
55ALLOBJS = $(BASEOBJS) $(LNXOBJS)
56
57#-lexif
58
59LIBS = -lpthread -lexif -ljpeg -lsqlite3 -lavformat -lid3tag -lFLAC -lvorbis
60#STATIC_LINKING: LIBS = -lvorbis -logg -lm -lsqlite3 -lpthread -lexif -ljpeg -lFLAC -lm -lid3tag -lz -lavformat -lavutil -lavcodec -lm
61
62#TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
63
64EXECUTABLES = minidlna #testupnpdescgen
65
66.PHONY:	all clean install depend
67
68all:	$(EXECUTABLES)
69
70clean:
71	$(RM) $(ALLOBJS)
72	$(RM) $(EXECUTABLES)
73	$(RM) testupnpdescgen.o
74
75install:	minidlna
76	$(INSTALL) -d $(SBININSTALLDIR)
77	$(INSTALL) minidlna $(SBININSTALLDIR)
78	$(INSTALL) -d $(ETCINSTALLDIR)
79	$(INSTALL) --mode=0644 minidlna.conf $(ETCINSTALLDIR)
80
81minidlna:	$(BASEOBJS) $(LNXOBJS)
82	#@echo Linking $@
83	$(CC) $(CFLAGS) -o $@ $(BASEOBJS) $(LNXOBJS) -Wl,--rpath -Wl,$(MINI_DLNA_PATH)/lib/ $(LIBS)
84
85
86#testupnpdescgen:	$(TESTUPNPDESCGENOBJS)
87#	@echo Linking $@
88#	@$(CC) $(CFLAGS) -o $@ $(TESTUPNPDESCGENOBJS)
89
90#config.h:	genconfig.sh
91#	./genconfig.sh
92
93#depend:	config.h
94#	makedepend -f$(MAKEFILE_LIST) -Y \
95#	$(ALLOBJS:.o=.c) $(TESTUPNPDESCGENOBJS:.o=.c) 2>/dev/null
96
97# DO NOT DELETE
98
99minidlna.o: config.h upnpglobalvars.h minidlnatypes.h
100minidlna.o: upnphttp.h upnpdescgen.h minidlnapath.h getifaddr.h upnpsoap.h
101minidlna.o: options.h minissdp.h daemonize.h upnpevents.h log.h
102upnphttp.o: config.h upnphttp.h upnpdescgen.h minidlnapath.h upnpsoap.h
103upnphttp.o: upnpevents.h image_utils.h sql.h log.h icons.c
104upnpdescgen.o: config.h upnpdescgen.h minidlnapath.h upnpglobalvars.h
105upnpdescgen.o: minidlnatypes.h upnpdescstrings.h log.h
106upnpsoap.o: config.h upnpglobalvars.h minidlnatypes.h log.h utils.h sql.h
107upnpsoap.o: upnphttp.h upnpsoap.h upnpreplyparse.h getifaddr.h log.h
108upnpreplyparse.o: upnpreplyparse.h minixml.h log.h
109minixml.o: minixml.h
110getifaddr.o: getifaddr.h log.h
111daemonize.o: daemonize.h config.h log.h
112upnpglobalvars.o: config.h upnpglobalvars.h
113upnpglobalvars.o: minidlnatypes.h
114options.o: options.h config.h upnpglobalvars.h
115options.o: minidlnatypes.h
116minissdp.o: config.h upnpdescstrings.h minidlnapath.h upnphttp.h
117minissdp.o: upnpglobalvars.h minidlnatypes.h minissdp.h log.h
118upnpevents.o: config.h upnpevents.h minidlnapath.h upnpglobalvars.h
119upnpevents.o: minidlnatypes.h upnpdescgen.h log.h uuid.h
120uuid.o: uuid.h
121testupnpdescgen.o: config.h upnpdescgen.h
122upnpdescgen.o: config.h upnpdescgen.h minidlnapath.h upnpglobalvars.h
123upnpdescgen.o: minidlnatypes.h upnpdescstrings.h
124scanner.o: upnpglobalvars.h metadata.h utils.h sql.h scanner.h log.h playlist.h
125metadata.o: upnpglobalvars.h metadata.h albumart.h utils.h sql.h log.h
126albumart.o: upnpglobalvars.h albumart.h utils.h image_utils.h sql.h log.h
127tagutils/misc.o: tagutils/misc.h
128tagutils/textutils.o: tagutils/misc.h tagutils/textutils.h log.h
129tagutils/tagutils.o: tagutils/tagutils-asf.c tagutils/tagutils-flc.c tagutils/tagutils-plist.c tagutils/tagutils-misc.c
130tagutils/tagutils.o: tagutils/tagutils-aac.c tagutils/tagutils-asf.h tagutils/tagutils-flc.h tagutils/tagutils-mp3.c tagutils/tagutils-wav.c
131tagutils/tagutils.o: tagutils/tagutils-ogg.c tagutils/tagutils-aac.h tagutils/tagutils.h tagutils/tagutils-mp3.h tagutils/tagutils-ogg.h log.h
132playlist.o: playlist.h
133inotify.o: inotify.h playlist.h
134image_utils.o: image_utils.h
135tivo_utils.o: config.h tivo_utils.h
136tivo_beacon.o: config.h tivo_beacon.h tivo_utils.h
137tivo_commands.o: config.h tivo_commands.h tivo_utils.h utils.h
138utils.o: utils.h
139sql.o: sql.h
140log.o: log.h
141
142.SUFFIXES: .c .o
143
144.c.o:
145	@echo Compiling $*.c
146	@$(CC) $(CFLAGS) -o $@ -c $< && exit 0;\
147		echo "The following command failed:" 1>&2;\
148		echo "$(CC) $(CFLAGS) -o $@ -c $<";\
149		$(CC) $(CFLAGS) -o $@ -c $< &>/dev/null
150