1############################################################################################
2#
3#	Makefile For MiniDLNA
4#
5#	Author: Michael Jiang
6#	Date: 2010.05.01
7#	
8#	Description:
9#		1. I don't re-configure ffmpeg, jpeg-7, zlib & minidlna , because their Makefiles 
10#		   have been modified by me. Others will be re-configured again if no Makefiles; 
11#		2. It should be compiled in Linux2.6 platform only.
12#		3. There are two variables in Makefile which you should take care about. one
13#		   is $HOST_COMPILE and the other is $HOST. I can't refer to them from ap/config.in,
14#		   so I make a hard code here. When you want to do a portation please take care
15#		   them.   
16#
17#############################################################################################
18SUBDIRS += zlib-1.2.3
19SUBDIRS += ffmpeg-0.5.1
20SUBDIRS += libogg-1.1.4
21SUBDIRS += libexif-0.6.19
22SUBDIRS += flac-1.2.1
23SUBDIRS += libvorbis-1.2.3
24SUBDIRS += jpeg-7
25SUBDIRS += sqlite-3.6.22
26SUBDIRS += libid3tag-0.15.0b
27#/projects/hnd/tools/linux/hndtools-mipsel-linux-uclibc-4.2.3
28TOOL_CHAIN_PATH=$(TOOLCHAIN)
29#/home/michael/DLNA
30MINI_DLNA_PATH=$(shell pwd)
31
32CFLAGS += -Os
33
34# [FIXME] added by Michael Jiang.
35# The below variables  should be modified when you use different platform.
36HOST=arm-brcm-linux-uclibcgnueabi
37HOST_COMPILE=$(HOST)-
38#CROSS_COMPILE=mipsel-linux-uclibc-
39#HOST_COMPILE=mipsel-linux-linux26-
40#CROSS=mipsel-linux-uclibc
41# comments ended, by Michael Jiang.
42
43all: zlib libogg libexif sqlite3 libvorbis flac libid3tag
44	for i in $(SUBDIRS); do \
45		(cd $$i && make TOOL_CHAIN_PATH=$(TOOL_CHAIN_PATH) \
46				CROSS_COMPILE=$(CROSS_COMPILE) \
47				HOST_COMPILE=$(HOST_COMPILE) \
48				MINI_DLNA_PATH=$(MINI_DLNA_PATH)) \
49	done
50	make copy
51	(cd minidlna.03.14 && make MINI_DLNA_PATH=$(MINI_DLNA_PATH) \
52			     CROSS_COMPILE=$(CROSS_COMPILE) \
53			     HOST_COMPILE=$(HOST_COMPILE) \
54			     MINI_DLNA_PATH=$(MINI_DLNA_PATH))
55	cp ./minidlna.03.14/minidlna	./lib/minidlna.exe
56	#make install
57
58zlib:
59	# compile zlib first, bcz. libid3tag needs it for configuration.
60	(cd zlib-1.2.3 && make TOOL_CHAIN_PATH=$(TOOL_CHAIN_PATH) \
61	CROSS_COMPILE=$(CROSS_COMPILE) \
62	HOST_COMPILE=$(HOST_COMPILE) \
63	MINI_DLNA_PATH=$(MINI_DLNA_PATH))
64
65libogg:
66	if [ ! -f ./libogg-1.1.4/Makefile ];then \
67	cd libogg-1.1.4 && (./configure --host=$(HOST)  CC=$(CROSS_COMPILE)gcc); \
68	fi
69
70libexif:
71	if [ ! -f ./libexif-0.6.19/Makefile ];then \
72	cd libexif-0.6.19 && (./configure --host=$(HOST)  CC=$(CROSS_COMPILE)gcc); \
73	fi
74
75sqlite3:
76	if [ ! -f ./sqlite-3.6.22/Makefile ];then \
77	cd sqlite-3.6.22 && (./configure --host=$(HOST)  CC=$(CROSS_COMPILE)gcc CFLAGS=-Os \
78				--enable-threadsafe ); \
79	fi
80
81libvorbis:
82	if [ ! -f ./libvorbis-1.2.3/Makefile ];then \
83	cd libvorbis-1.2.3 && (./configure --host=$(HOST)  CC=$(CROSS_COMPILE)gcc \
84					CFLAGS=-I$(MINI_DLNA_PATH)/libogg-1.1.4/include/ \
85					LDFLAGS=-L$(MINI_DLNA_PATH)/libogg-1.1.4/src/.libs/ \
86					); \
87	fi
88flac:
89	if [ ! -f ./flac-1.2.1/Makefile ];then \
90	cd flac-1.2.1 && (./configure --host=$(HOST)  CC=$(CROSS_COMPILE)gcc \
91				CFLAGS=-I$(MINI_DLNA_PATH)/libogg-1.1.4/include/ \
92				LDFLAGS=-L$(MINI_DLNA_PATH)/libogg-1.1.4/src/.libs/ \
93				); \
94	fi
95
96libid3tag:
97	if [ ! -f ./libid3tag-0.15.0b/Makefile ];then \
98	cd libid3tag-0.15.0b && (./configure --host=$(HOST)  CC=$(CROSS_COMPILE)gcc \
99				CPPFLAGS=-I$(MINI_DLNA_PATH)/zlib-1.2.3/ \
100				LDFLAGS=-L$(MINI_DLNA_PATH)/zlib-1.2.3/ \
101				); \
102	fi
103clean:
104	for i in ${SUBDIRS}; do \
105		(cd $$i; make clean); \
106	done
107	rm ./lib/libz.so.1
108	rm ./lib/libvorbis.so.0
109	rm ./lib/libFLAC.so.8
110	rm ./lib/libogg.so.0
111	rm ./lib/libexif.so.12
112	rm ./lib/libavutil.so.49
113	rm ./lib/libavdevice.so.52
114	rm ./lib/libavformat.so.52
115	rm ./lib/libavcodec.so.52
116	rm ./lib/libsqlite3.so.0
117	rm ./lib/libjpeg.so.7
118	rm ./lib/libid3tag.so.0
119	rm ./lib/minidlna.exe
120copy: 
121	cp ./zlib-1.2.3/libz.so.1.2.3				./lib/libz.so.1 && \
122	cp ./libvorbis-1.2.3/lib/.libs/libvorbis.so.0.4.3	./lib/libvorbis.so.0 && \
123	cp ./flac-1.2.1/src/libFLAC/.libs/libFLAC.so.8.2.0	./lib/libFLAC.so.8 && \
124	cp ./libexif-0.6.19/libexif/.libs/libexif.so.12.3.1 	./lib/libexif.so.12  && \
125	cp ./libogg-1.1.4/src/.libs/libogg.so.0.6.0		./lib/libogg.so.0 && \
126	cp ./ffmpeg-0.5.1/libavutil/libavutil.so.49		./lib/libavutil.so.49 && \
127	cp ./ffmpeg-0.5.1/libavdevice/libavdevice.so.52		./lib/libavdevice.so.52 && \
128	cp ./ffmpeg-0.5.1/libavformat/libavformat.so.52		./lib/libavformat.so.52 && \
129	cp ./ffmpeg-0.5.1/libavcodec/libavcodec.so.52		./lib/libavcodec.so.52 && \
130	cp ./sqlite-3.6.22/.libs/libsqlite3.so.0.8.6 		./lib/libsqlite3.so.0 && \
131	cp ./jpeg-7/.libs/libjpeg.so.7.0.0			./lib/libjpeg.so.7 && \
132	cp ./libid3tag-0.15.0b/.libs/libid3tag.so.0.2.0 	./lib/libid3tag.so.0
133
134distclean:
135	cd ./libogg-1.1.4/	&& make distclean 
136	cd ./libexif-0.6.19/	&& make distclean
137	cd ./sqlite-3.6.22/	&& make distclean
138	cd ./libvorbis-1.2.3/	&& make distclean
139	cd ./libid3tag-0.15.0b/	&& make distclean
140	cd ./flac-1.2.1/	&& make distclean
141	cd ./zlib-1.2.3/	&& make clean
142	cd ./ffmpeg-0.5.1/	&& make clean
143	cd ./jpeg-7/		&& make clean
144	cd ./minidlna.03.14/		&& make clean
145	rm ./lib/*.so.*
146	rm ./lib/minidlna.exe
147
148install:
149	$(CROSS_COMPILE)strip ./lib/*
150	install -m 755 minidlna.03.14/minidlna.conf $(TARGETDIR)/usr/
151	install -m 755 lib/libz.so.1  $(TARGETDIR)/lib
152	install -m 755 lib/libvorbis.so.0 $(TARGETDIR)/lib
153	install -m 755 lib/libFLAC.so.8 $(TARGETDIR)/lib
154	install -m 755 lib/libexif.so.12 $(TARGETDIR)/lib
155	install -m 755 lib/libogg.so.0 $(TARGETDIR)/lib
156	install -m 755 lib/libavutil.so.49 $(TARGETDIR)/lib
157	install -m 755 lib/libavdevice.so.52 $(TARGETDIR)/lib
158	install -m 755 lib/libavformat.so.52 $(TARGETDIR)/lib
159	install -m 755 lib/libavcodec.so.52 $(TARGETDIR)/lib
160	install -m 755 lib/libsqlite3.so.0 $(TARGETDIR)/lib
161	install -m 755 lib/libjpeg.so.7 $(TARGETDIR)/lib
162	install -m 755 lib/libid3tag.so.0 $(TARGETDIR)/lib
163	install -m 755 lib/minidlna.exe $(TARGETDIR)/usr/sbin/
164
165
166