1 # LINUX Makefile made by A'rpi / Astral
2 # Some cleanup by LGB: * 'make -C dir' instead of 'cd dir;make;cd..'
3 # * for loops instead of linear sequence of make directories
4 # * some minor problems with make clean and distclean were corrected
9 LIBAV_INC-
$(CONFIG_LIBAVUTIL
) += -I.
/libavutil
10 LIBAV_INC-
$(CONFIG_LIBAVCODEC
) += -I.
/libavcodec
11 LIBAV_INC
+= $(LIBAV_INC-yes
)
13 CFLAGS
= $(OPTFLAGS
) -I.
$(LIBAV_INC
)
17 # Do not strip the binaries at installation
18 ifeq ($(STRIPBINARIES
),yes
)
22 SRCS_COMMON
= asxparser.c \
38 SRCS_COMMON-
$(UNRARLIB
) += unrarlib.c
40 SRCS_MPLAYER
= mplayer.c \
48 SRCS_MENCODER
= mencoder.c \
54 COMMON_LIBS
= libmpcodecs
/libmpcodecs.a \
56 libmpdemux
/libmpdemux.a \
58 libswscale
/libswscale.a \
61 LIBS_MPLAYER
= libvo
/libvo.a \
65 LIBS_MENCODER
= libmpcodecs
/libmpencoders.a \
66 libmpdemux
/libmpmux.a \
68 OBJS_MPLAYER
= $(SRCS_MPLAYER
:.c
=.o
)
69 OBJS_MENCODER
= $(SRCS_MENCODER
:.c
=.o
)
71 MPLAYER_DEPS
= $(OBJS_MPLAYER
) $(LIBS_MPLAYER
) $(COMMON_LIBS
)
72 MENCODER_DEPS
= $(OBJS_MENCODER
) $(LIBS_MENCODER
) $(COMMON_LIBS
)
88 COMMON_LIBS-
$(CONFIG_LIBAVFORMAT
) += libavformat
/libavformat.a
89 PARTS-
$(CONFIG_LIBAVFORMAT
) += libavformat
90 COMMON_LIBS-
$(CONFIG_LIBAVCODEC
) += libavcodec
/libavcodec.a
91 PARTS-
$(CONFIG_LIBAVCODEC
) += libavcodec
92 COMMON_LIBS-
$(CONFIG_LIBAVUTIL
) += libavutil
/libavutil.a
93 PARTS-
$(CONFIG_LIBAVUTIL
) += libavutil
94 COMMON_LIBS-
$(CONFIG_LIBPOSTPROC
) += libpostproc
/libpostproc.a
95 PARTS-
$(CONFIG_LIBPOSTPROC
) += libpostproc
96 COMMON_LIBS-
$(WIN32DLL
) += loader
/libloader.a
97 PARTS-
$(WIN32DLL
) += loader
98 COMMON_LIBS-
$(MP3LIB
) += mp3lib
/libMP3.a
99 PARTS-
$(MP3LIB
) += mp3lib
100 COMMON_LIBS-
$(LIBA52
) += liba52
/liba52.a
101 PARTS-
$(LIBA52
) += liba52
102 COMMON_LIBS-
$(LIBMPEG2
) += libmpeg2
/libmpeg2.a
103 PARTS-
$(LIBMPEG2
) += libmpeg2
104 COMMON_LIBS-
$(FAAD_INTERNAL
) += libfaad2
/libfaad2.a
105 PARTS-
$(FAAD_INTERNAL
) += libfaad2
106 COMMON_LIBS-
$(TREMOR_INTERNAL
) += tremor
/libvorbisidec.a
107 PARTS-
$(TREMOR_INTERNAL
) += tremor
108 LIBS_MPLAYER-
$(VIDIX
) += vidix
/libvidix.a
109 PARTS-
$(VIDIX
) += libdha vidix
110 COMMON_LIBS-
$(DVDREAD_INTERNAL
) += dvdread
/libdvdread.a
111 PARTS-
$(DVDREAD_INTERNAL
) += dvdread
112 COMMON_LIBS-
$(DVDCSS_INTERNAL
) += libdvdcss
/libdvdcss.a
113 PARTS-
$(DVDCSS_INTERNAL
) += libdvdcss
114 COMMON_LIBS-
$(CONFIG_ASS
) += libass
/libass.a
115 PARTS-
$(CONFIG_ASS
) += libass
116 LIBS_MPLAYER-
$(GUI
) += Gui
/libgui.a
118 LIBS_MPLAYER-
$(LIBMENU
) += libmenu
/libmenu.a
119 PARTS-
$(LIBMENU
) += libmenu
121 COMMON_LDFLAGS
+= $(EXTRA_LIB
)\
124 LDFLAGS_MPLAYER
= $(EXTRALIBS_MPLAYER
) \
127 LDFLAGS_MENCODER
= $(EXTRALIBS_MENCODER
) \
130 ALL_PRG-
$(MPLAYER
) += mplayer
$(EXESUF
)
131 ALL_PRG-
$(MENCODER
) += mencoder
$(EXESUF
)
133 SRCS_COMMON
+= $(SRCS_COMMON-yes
)
134 COMMON_LIBS
+= $(COMMON_LIBS-yes
)
135 LIBS_MPLAYER
+= $(LIBS_MPLAYER-yes
)
136 OBJS_MPLAYER
+= $(OBJS_MPLAYER-yes
)
137 PARTS
+= $(PARTS-yes
)
138 ALL_PRG
+= $(ALL_PRG-yes
)
140 COMMON_LIBS
+= osdep
/libosdep.a
148 $(CC
) -c
$(CFLAGS
) -o
$@
$<
153 dvdread
/libdvdread.a
:
156 libdvdcss
/libdvdcss.a
:
165 libmpdemux
/libmpdemux.a
:
166 $(MAKE
) -C libmpdemux libmpdemux.a
168 libmpdemux
/libmpmux.a
:
169 $(MAKE
) -C libmpdemux libmpmux.a
174 libmpcodecs
/libmpcodecs.a
:
175 $(MAKE
) -C libmpcodecs
177 libavutil
/libavutil.a
:
178 $(MAKE
) -C libavutil LIBPREF
=lib LIBSUF
=.a
180 libavcodec
/libavcodec.a
:
181 $(MAKE
) -C libavcodec LIBPREF
=lib LIBSUF
=.a
183 libpostproc
/libpostproc.a
:
184 $(MAKE
) -C libpostproc LIBPREF
=lib LIBSUF
=.a
186 libavformat
/libavformat.a
:
187 $(MAKE
) -C libavformat LIBPREF
=lib LIBSUF
=.a
189 libswscale
/libswscale.a
:
190 $(MAKE
) -C libswscale LIBPREF
=lib LIBSUF
=.a
196 $(MAKE
) -C libvo libvo.a
199 $(MAKE
) -C libvo libosd.a
213 tremor
/libvorbisidec.a
:
219 vidix
/libvidix.a
: libdha
/libdha.so
234 mplayer
$(EXESUF
): $(MPLAYER_DEPS
)
235 $(CC
) -o
$@
$^
$(LDFLAGS_MPLAYER
)
237 mencoder
$(EXESUF
): $(MENCODER_DEPS
)
238 $(CC
) -o
$@
$^
$(LDFLAGS_MENCODER
)
240 codec-cfg
$(EXESUF
): codec-cfg.c codec-cfg.h help_mp.h
241 $(HOST_CC
) -I.
-DCODECS2HTML codec-cfg.c
-o
$@
243 codecs.conf.h
: codec-cfg
$(EXESUF
) etc
/codecs.conf
244 .
/codec-cfg
$(EXESUF
) .
/etc
/codecs.conf
> $@
246 codec-cfg.o
: codecs.conf.h
248 codecs2html
$(EXESUF
): mp_msg.o
249 $(CC
) -DCODECS2HTML codec-cfg.c mp_msg.o
-o
$@
253 $(MAKE
) -C libdha
install
254 mkdir
-p
$(LIBDIR
)/mplayer
/vidix
255 -install -m
755 $(INSTALLSTRIP
) -p vidix
/drivers
/*.so
$(LIBDIR
)/mplayer
/vidix
257 $(INSTALL
) -d
$(BINDIR
)
258 $(INSTALL
) -m
755 $(INSTALLSTRIP
) mplayer
$(EXESUF
) \
259 $(BINDIR
)/mplayer
$(EXESUF
)
261 -ln
-sf mplayer
$(EXESUF
) $(BINDIR
)/gmplayer
$(EXESUF
)
263 $(INSTALL
) -d
$(MANDIR
)/man1
264 for i in
$(MAN_LANG
); do \
265 if
test "$$i" = en
; then \
266 $(INSTALL
) -c
-m
644 DOCS
/man
/en
/mplayer
.1 $(MANDIR
)/man1
/mplayer
.1 ; \
268 $(INSTALL
) -d
$(MANDIR
)/$$i/man1
; \
269 $(INSTALL
) -c
-m
644 DOCS
/man
/$$i/mplayer
.1 $(MANDIR
)/$$i/man1
/mplayer
.1 ; \
272 ifeq ($(MENCODER
),yes
)
273 $(INSTALL
) -m
755 $(INSTALLSTRIP
) mencoder
$(EXESUF
) \
274 $(BINDIR
)/mencoder
$(EXESUF
)
275 for i in
$(MAN_LANG
); do \
276 if
test "$$i" = en
; then \
277 cd
$(MANDIR
)/man1
&& ln
-sf mplayer
.1 mencoder
.1 ; \
279 cd
$(MANDIR
)/$$i/man1
&& ln
-sf mplayer
.1 mencoder
.1 ; \
283 @
$(INSTALL
) -d
$(DATADIR
)
284 @
$(INSTALL
) -d
$(DATADIR
)/font
286 @
$(INSTALL
) -d
$(DATADIR
)/skins
287 @echo
"*** Download skin(s) at http://www.mplayerhq.hu/dload.html"
288 @echo
"*** for GUI, and extract to $(DATADIR)/skins/"
289 @
$(INSTALL
) -d
$(prefix)/share
/pixmaps
290 $(INSTALL
) -m
644 etc
/mplayer.xpm
$(prefix)/share
/pixmaps
/mplayer.xpm
291 @
$(INSTALL
) -d
$(prefix)/share
/applications
292 $(INSTALL
) -m
644 etc
/mplayer.desktop
$(prefix)/share
/applications
/mplayer.desktop
294 @
$(INSTALL
) -d
$(CONFDIR
)
295 @if
test -f
$(CONFDIR
)/codecs.conf
; then mv
-f
$(CONFDIR
)/codecs.conf
$(CONFDIR
)/codecs.conf.old
; fi
298 -rm -f
$(BINDIR
)/mplayer
$(EXESUF
) $(BINDIR
)/gmplayer
$(EXESUF
)
299 -rm -f
$(BINDIR
)/mencoder
$(EXESUF
)
300 -rm -f
$(MANDIR
)/man1
/mencoder
.1 $(MANDIR
)/man1
/mplayer
.1
301 -rm -f
$(prefix)/share
/pixmaps
/mplayer.xpm
302 -rm -f
$(prefix)/share
/applications
/mplayer.desktop
303 for l in
$(MAN_LANG
); do \
304 if
test "$$l" != "en"; then \
305 rm -f
$(MANDIR
)/$$l/man1
/mplayer
.1 \
306 $(MANDIR
)/$$l/man1
/mencoder
.1 \
307 $(MANDIR
)/$$l/man1
/gmplayer
.1 ; \
310 $(MAKE
) -C libdha
uninstall
311 rm -f
$(LIBDIR
)/mplayer
/vidix
/*.so
312 -rmdir
-p
$(LIBDIR
)/mplayer
/vidix
313 @echo
"Uninstall completed"
319 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a clean; done
321 distclean: dirclean doxygen_clean
322 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a distclean; done
323 -rm -f
*~ mplayer
$(EXESUF
) mencoder
$(EXESUF
) \
324 codec-cfg
$(EXESUF
) codecs2html
$(EXESUF
) codecs.conf.h \
325 .depend configure.log config.mak config.h help_mp.h version.h
330 dep depend
: help_mp.h version.h
331 $(CC
) -MM
$(CFLAGS
) -DCODECS2HTML mplayer.c mencoder.c
$(SRCS_MPLAYER
) $(SRCS_MENCODER
) 1>.depend
332 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a dep
; done
334 # ./configure must be rerun if it changed
336 @echo
"############################################################"
337 @echo
"####### Please run ./configure again - it's changed! #######"
338 @echo
"############################################################"
340 # rebuild at every config.h/config.mak/Makefile change:
341 version.h
: config.h config.mak Makefile
342 .
/version.sh
`$(CC) -dumpversion`
345 doxygen DOCS
/tech
/Doxyfile
348 -rm -rf DOCS
/tech
/doxygen
350 help_mp.h
: help
/help_mp-en.h
$(HELP_FILE
)
351 @echo
'// WARNING! This is a generated file. Do NOT edit.' > help_mp.h
352 @echo
'// See the help/ subdir for the editable files.' >> help_mp.h
354 @echo
'#include "$(HELP_FILE)"' >> help_mp.h
356 iconv
-f UTF-8
-t
$(CHARSET
) "$(HELP_FILE)" >> help_mp.h
359 ifneq ($(HELP_FILE
),help
/help_mp-en.h
)
360 @echo
"Adding untranslated messages to help_mp.h"
361 @echo
'// untranslated messages from the English master file:' >> help_mp.h
362 @help
/help_diff.sh
$(HELP_FILE
) < help
/help_mp-en.h
>> help_mp.h
365 # explicit dependencies to force version.h to be built even if .depend is missing
366 mplayer.o mencoder.o vobsub.o
: version.h
368 # temporary measure to make sure help_mp.h is built. we desperately need correct deps!
369 $(MPLAYER_DEPS
) $(MENCODER_DEPS
): help_mp.h
372 # the following lines provide _partial_ dependency information
373 # for the 'library' directories under main dir, in order to cause
374 # the build process to recursively descend into them if something
375 # has changed. ideally this will be replaced with a single
376 # nonrecursive makefile for the whole project.
378 # Now all directories are recursed by default because these rules do not
379 # consider dependencies on files in other directories, while the recursively
380 # invoked Makefiles do. Conditional recursion only to the directories with
381 # changed files can be enabled by creating a file named ".norecurse" and
382 # optionally giving it a timestamp in the past. Directories whose .a files
383 # are newer than the timestamp and newer than other files in the directory
384 # will not be recursed.
387 libvo
/libvo.a
: .norecurse
$(wildcard libvo
/*.
[ch
])
388 libvo
/libosd.a
: .norecurse
$(wildcard libvo
/*.
[ch
])
389 libao2
/libao2.a
: .norecurse
$(wildcard libao2
/*.
[ch
])
390 osdep
/libosdep.a
: .norecurse
$(wildcard osdep
/*.
[ch
])
391 input
/libinput.a
: .norecurse
$(wildcard input
/*.
[ch
])
393 libmenu
/libmenu.a
: .norecurse
$(wildcard libmenu
/*.
[ch
])
394 libaf
/libaf.a
: .norecurse
$(wildcard libaf
/*.
[ch
])
395 dvdread
/libdvdread.a
: .norecurse
$(wildcard dvdread
/*.
[ch
])
396 libdvdcss
/libdvdcss.a
: .norecurse
$(wildcard libdvdcss
/*.
[ch
])
398 libmpdemux
/libmpdemux.a
: .norecurse
$(wildcard libmpdemux
/*.
[ch
])
399 libmpdemux
/libmpmux.a
: .norecurse
$(wildcard libmpdemux
/*.
[ch
])
400 stream
/stream.a
: .norecurse
$(wildcard stream
/*.
[ch
] stream
/*/*.
[ch
])
401 libmpcodecs
/libmpcodecs.a
: .norecurse
$(wildcard libmpcodecs
/*.
[ch
]) $(wildcard libmpcodecs
/native
/*.
[ch
])
402 libmpcodecs
/libmpencoders.a
: .norecurse
$(wildcard libmpcodecs
/*.
[ch
])
404 libavutil
/libavutil.a
: .norecurse
$(wildcard libavutil
/*.
[ch
])
405 libavcodec
/libavcodec.a
: .norecurse
$(wildcard libavcodec
/*.
[ch
] libavcodec
/*/*.
[chS
])
406 libavformat
/libavformat.a
: .norecurse
$(wildcard libavformat
/*.
[ch
])
407 libswscale
/libswscale.a
: .norecurse
$(wildcard libswscale
/*.
[ch
])
409 libmpeg2
/libmpeg2.a
: .norecurse
$(wildcard libmpeg2
/*.
[ch
])
410 liba52
/liba52.a
: .norecurse
$(wildcard liba52
/*.
[ch
])
411 mp3lib
/libMP3.a
: .norecurse
$(wildcard mp3lib
/*.
[ch
])
412 libfaad2
/libfaad2.a
: .norecurse
$(wildcard libfaad2
/*.
[ch
] libfaad2
/*/*.
[ch
])
414 loader
/libloader.a
: .norecurse
$(wildcard loader
/*.
[chSs
])
415 libdha
/libdha.so
: .norecurse
$(wildcard libdha
/*.
[ch
])
416 vidix
/libvidix.a
: .norecurse
$(wildcard vidix
/*.
[ch
])
417 Gui
/libgui.a
: .norecurse
$(wildcard Gui
/*.
[ch
] Gui
/*/*.
[ch
] Gui
/*/*/*.
[ch
])
419 libass
/libass.a
: .norecurse
$(wildcard libass
/*.
[ch
])
421 ifneq ($(wildcard .depend
),)