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 CFLAGS
= -I.
-I.
/libavutil
$(OPTFLAGS
)
11 CFLAGS-
$(CONFIG_LIBAVCODEC
) += -I.
/libavcodec
12 CFLAGS
+= $(CFLAGS-yes
)
14 COMMON_LDFLAGS
+= $(EXTRA_LIB
)\
17 LDFLAGS_MPLAYER
= $(EXTRALIBS_MPLAYER
) \
20 LDFLAGS_MENCODER
= $(EXTRALIBS_MENCODER
) \
23 SRCS_COMMON
= asxparser.c \
40 SRCS_COMMON-
$(UNRARLIB
) += unrarlib.c
42 SRCS_MPLAYER
= mplayer.c \
51 SRCS_MENCODER
= mencoder.c \
56 COMMON_LIBS
= libmpcodecs
/libmpcodecs.a \
58 libmpdemux
/libmpdemux.a \
60 libswscale
/libswscale.a \
63 COMMON_LIBS-
$(CONFIG_LIBAVFORMAT
) += libavformat
/libavformat.a
64 COMMON_LIBS-
$(CONFIG_LIBAVCODEC
) += libavcodec
/libavcodec.a
65 COMMON_LIBS-
$(CONFIG_LIBAVUTIL
) += libavutil
/libavutil.a
66 COMMON_LIBS-
$(CONFIG_LIBPOSTPROC
) += libpostproc
/libpostproc.a
67 COMMON_LIBS-
$(WIN32DLL
) += loader
/libloader.a
68 COMMON_LIBS-
$(MP3LIB
) += mp3lib
/libmp3.a
69 COMMON_LIBS-
$(LIBA52
) += liba52
/liba52.a
70 COMMON_LIBS-
$(LIBMPEG2
) += libmpeg2
/libmpeg2.a
71 COMMON_LIBS-
$(FAAD_INTERNAL
) += libfaad2
/libfaad2.a
72 COMMON_LIBS-
$(TREMOR_INTERNAL
) += tremor
/libvorbisidec.a
73 COMMON_LIBS-
$(DVDREAD_INTERNAL
) += dvdread
/libdvdread.a
74 COMMON_LIBS-
$(DVDCSS_INTERNAL
) += libdvdcss
/libdvdcss.a
75 COMMON_LIBS-
$(CONFIG_ASS
) += libass
/libass.a
77 LIBS_MPLAYER
= libvo
/libvo.a \
81 LIBS_MPLAYER-
$(VIDIX
) += vidix
/libvidix.a
82 LIBS_MPLAYER-
$(GUI
) += Gui
/libgui.a
83 LIBS_MPLAYER-
$(LIBMENU
) += libmenu
/libmenu.a
85 LIBS_MENCODER
= libmpcodecs
/libmpencoders.a \
86 libmpdemux
/libmpmux.a \
88 # Having this in libosdep.a is not enough.
89 OBJS_MPLAYER-
$(TARGET_WIN32
) += osdep
/mplayer-rc.o
91 ALL_PRG-
$(MPLAYER
) += mplayer
$(EXESUF
)
92 ALL_PRG-
$(MENCODER
) += mencoder
$(EXESUF
)
94 OBJS_COMMON
= $(SRCS_COMMON
:.c
=.o
)
95 OBJS_MPLAYER
= $(SRCS_MPLAYER
:.c
=.o
)
96 OBJS_MENCODER
= $(SRCS_MENCODER
:.c
=.o
)
98 SRCS_COMMON
+= $(SRCS_COMMON-yes
)
99 COMMON_LIBS
+= $(COMMON_LIBS-yes
)
100 LIBS_MPLAYER
+= $(LIBS_MPLAYER-yes
)
101 OBJS_MPLAYER
+= $(OBJS_MPLAYER-yes
)
102 PARTS
+= $(PARTS-yes
)
103 ALL_PRG
+= $(ALL_PRG-yes
)
105 COMMON_LIBS
+= osdep
/libosdep.a
107 MPLAYER_DEPS
= $(OBJS_MPLAYER
) $(OBJS_COMMON
) $(LIBS_MPLAYER
) $(COMMON_LIBS
)
108 MENCODER_DEPS
= $(OBJS_MENCODER
) $(OBJS_COMMON
) $(LIBS_MENCODER
) $(COMMON_LIBS
)
110 INSTALL_TARGETS-
$(MPLAYER
) += install-mplayer install-mplayer-man
111 INSTALL_TARGETS-
$(MENCODER
) += install-mencoder install-mplayer-man
112 INSTALL_TARGETS-
$(GUI
) += install-gui
113 INSTALL_TARGETS
+= $(INSTALL_TARGETS-yes
)
150 dvdread
/libdvdread.a
:
153 libdvdcss
/libdvdcss.a
:
162 libmpdemux
/libmpdemux.a
:
163 $(MAKE
) -C libmpdemux libmpdemux.a
165 libmpdemux
/libmpmux.a
:
166 $(MAKE
) -C libmpdemux libmpmux.a
171 libmpcodecs
/libmpcodecs.a
:
172 $(MAKE
) -C libmpcodecs
174 libavutil
/libavutil.a
:
177 libavcodec
/libavcodec.a
:
178 $(MAKE
) -C libavcodec
180 libpostproc
/libpostproc.a
:
181 $(MAKE
) -C libpostproc
183 libavformat
/libavformat.a
:
184 $(MAKE
) -C libavformat
186 libswscale
/libswscale.a
:
187 $(MAKE
) -C libswscale
193 $(MAKE
) -C libvo libvo.a
196 $(MAKE
) -C libvo libosd.a
210 tremor
/libvorbisidec.a
:
223 $(MAKE
) -C osdep mplayer-rc.o
231 mplayer
$(EXESUF
): $(MPLAYER_DEPS
)
232 $(CC
) -o
$@
$^
$(LDFLAGS_MPLAYER
)
234 mencoder
$(EXESUF
): $(MENCODER_DEPS
)
235 $(CC
) -o
$@
$^
$(LDFLAGS_MENCODER
)
237 codec-cfg
$(EXESUF
): codec-cfg.c codec-cfg.h help_mp.h
238 $(HOST_CC
) -I.
-DCODECS2HTML
$< -o
$@
240 codecs.conf.h
: codec-cfg
$(EXESUF
) etc
/codecs.conf
241 .
/codec-cfg
$(EXESUF
) .
/etc
/codecs.conf
> $@
243 codec-cfg.o
: codecs.conf.h
245 codecs2html
$(EXESUF
): mp_msg.o
246 $(CC
) -DCODECS2HTML codec-cfg.c
$^
-o
$@
248 codec-cfg-test
$(EXESUF
): codecs.conf.h codec-cfg.h mp_msg.o osdep
/getch2.o
249 $(CC
) -I.
-DTESTING codec-cfg.c mp_msg.o osdep
/getch2.o
-ltermcap
-o
$@
251 install: install-dirs
$(INSTALL_TARGETS
)
254 $(INSTALL
) -d
$(BINDIR
)
255 $(INSTALL
) -d
$(DATADIR
)
256 $(INSTALL
) -d
$(MANDIR
)/man1
257 $(INSTALL
) -d
$(CONFDIR
)
258 if
test -f
$(CONFDIR
)/codecs.conf
; then mv
-f
$(CONFDIR
)/codecs.conf
$(CONFDIR
)/codecs.conf.old
; fi
260 install-mplayer
: mplayer
$(EXESUF
)
261 $(INSTALL
) -m
755 $(INSTALLSTRIP
) mplayer
$(EXESUF
) $(BINDIR
)
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
/ ; \
268 $(INSTALL
) -d
$(MANDIR
)/$$i/man1
; \
269 $(INSTALL
) -c
-m
644 DOCS
/man
/$$i/mplayer
.1 $(MANDIR
)/$$i/man1
/ ; \
273 install-mencoder
: mencoder
$(EXESUF
)
274 $(INSTALL
) -m
755 $(INSTALLSTRIP
) mencoder
$(EXESUF
) $(BINDIR
)
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 ; \
284 -ln
-sf mplayer
$(EXESUF
) $(BINDIR
)/gmplayer
$(EXESUF
)
285 $(INSTALL
) -d
$(DATADIR
)/skins
286 @echo
"*** Download skin(s) at http://www.mplayerhq.hu/design7/dload.html"
287 @echo
"*** for GUI, and extract to $(DATADIR)/skins/"
288 $(INSTALL
) -d
$(prefix)/share
/pixmaps
289 $(INSTALL
) -m
644 etc
/mplayer.xpm
$(prefix)/share
/pixmaps
/
290 $(INSTALL
) -d
$(prefix)/share
/applications
291 $(INSTALL
) -m
644 etc
/mplayer.desktop
$(prefix)/share
/applications
/
294 -rm -f
$(BINDIR
)/mplayer
$(EXESUF
) $(BINDIR
)/gmplayer
$(EXESUF
)
295 -rm -f
$(BINDIR
)/mencoder
$(EXESUF
)
296 -rm -f
$(MANDIR
)/man1
/mencoder
.1 $(MANDIR
)/man1
/mplayer
.1
297 -rm -f
$(prefix)/share
/pixmaps
/mplayer.xpm
298 -rm -f
$(prefix)/share
/applications
/mplayer.desktop
299 for l in
$(MAN_LANG
); do \
300 if
test "$$l" != "en"; then \
301 rm -f
$(MANDIR
)/$$l/man1
/mplayer
.1 \
302 $(MANDIR
)/$$l/man1
/mencoder
.1 \
303 $(MANDIR
)/$$l/man1
/gmplayer
.1 ; \
307 dep depend
: help_mp.h version.h codecs.conf.h
308 $(CC
) -MM
$(CFLAGS
) $(SRCS_MPLAYER
) $(SRCS_MENCODER
) $(SRCS_COMMON
) 1>.depend
309 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a dep
; done
313 -rm -f mplayer
$(EXESUF
) mencoder
$(EXESUF
) codec-cfg
$(EXESUF
) \
314 codecs2html
$(EXESUF
) codec-cfg-test
$(EXESUF
) cpuinfo
$(EXESUF
) \
315 codecs.conf.h help_mp.h version.h
316 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a clean; done
318 distclean: clean doxygen_clean
319 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a distclean; done
320 -rm -f .depend configure.log config.mak config.h
325 # ./configure must be rerun if it changed
327 @echo
"############################################################"
328 @echo
"####### Please run ./configure again - it's changed! #######"
329 @echo
"############################################################"
331 # rebuild at every config.h/config.mak/Makefile change:
332 version.h
: config.h config.mak Makefile
333 .
/version.sh
`$(CC) -dumpversion`
336 doxygen DOCS
/tech
/Doxyfile
339 -rm -rf DOCS
/tech
/doxygen
341 help_mp.h
: help
/help_mp-en.h
$(HELP_FILE
)
342 @echo
'// WARNING! This is a generated file. Do NOT edit.' > help_mp.h
343 @echo
'// See the help/ subdir for the editable files.' >> help_mp.h
345 @echo
'#include "$(HELP_FILE)"' >> help_mp.h
347 iconv
-f UTF-8
-t
$(CHARSET
) "$(HELP_FILE)" >> help_mp.h
350 ifneq ($(HELP_FILE
),help
/help_mp-en.h
)
351 @echo
"Adding untranslated messages to help_mp.h"
352 @echo
'// untranslated messages from the English master file:' >> help_mp.h
353 @help
/help_diff.sh
$(HELP_FILE
) < help
/help_mp-en.h
>> help_mp.h
356 # explicit dependencies to force version.h to be built even if .depend is missing
357 mplayer.o mencoder.o vobsub.o
: version.h
359 # temporary measure to make sure help_mp.h is built. we desperately need correct deps!
360 $(MPLAYER_DEPS
) $(MENCODER_DEPS
): help_mp.h
363 # the following lines provide _partial_ dependency information
364 # for the 'library' directories under main dir, in order to cause
365 # the build process to recursively descend into them if something
366 # has changed. ideally this will be replaced with a single
367 # nonrecursive makefile for the whole project.
369 # Now all directories are recursed by default because these rules do not
370 # consider dependencies on files in other directories, while the recursively
371 # invoked Makefiles do. Conditional recursion only to the directories with
372 # changed files can be enabled by creating a file named ".norecurse" and
373 # optionally giving it a timestamp in the past. Directories whose .a files
374 # are newer than the timestamp and newer than other files in the directory
375 # will not be recursed.
378 libvo
/libvo.a
: .norecurse
$(wildcard libvo
/*.
[ch
])
379 libvo
/libosd.a
: .norecurse
$(wildcard libvo
/*.
[ch
])
380 libao2
/libao2.a
: .norecurse
$(wildcard libao2
/*.
[ch
])
381 osdep
/libosdep.a
: .norecurse
$(wildcard osdep
/*.
[ch
])
382 input
/libinput.a
: .norecurse
$(wildcard input
/*.
[ch
])
384 libmenu
/libmenu.a
: .norecurse
$(wildcard libmenu
/*.
[ch
])
385 libaf
/libaf.a
: .norecurse
$(wildcard libaf
/*.
[ch
])
386 dvdread
/libdvdread.a
: .norecurse
$(wildcard dvdread
/*.
[ch
])
387 libdvdcss
/libdvdcss.a
: .norecurse
$(wildcard libdvdcss
/*.
[ch
])
389 libmpdemux
/libmpdemux.a
: .norecurse
$(wildcard libmpdemux
/*.
[ch
])
390 libmpdemux
/libmpmux.a
: .norecurse
$(wildcard libmpdemux
/*.
[ch
])
391 stream
/stream.a
: .norecurse
$(wildcard stream
/*.
[ch
] stream
/*/*.
[ch
])
392 libmpcodecs
/libmpcodecs.a
: .norecurse
$(wildcard libmpcodecs
/*.
[ch
]) $(wildcard libmpcodecs
/native
/*.
[ch
])
393 libmpcodecs
/libmpencoders.a
: .norecurse
$(wildcard libmpcodecs
/*.
[ch
])
395 libavutil
/libavutil.a
: .norecurse
$(wildcard libavutil
/*.
[ch
])
396 libavcodec
/libavcodec.a
: .norecurse
$(wildcard libavcodec
/*.
[ch
] libavcodec
/*/*.
[chS
])
397 libavformat
/libavformat.a
: .norecurse
$(wildcard libavformat
/*.
[ch
])
398 libswscale
/libswscale.a
: .norecurse
$(wildcard libswscale
/*.
[ch
])
400 libmpeg2
/libmpeg2.a
: .norecurse
$(wildcard libmpeg2
/*.
[ch
])
401 liba52
/liba52.a
: .norecurse
$(wildcard liba52
/*.
[ch
])
402 mp3lib
/libmp3.a
: .norecurse
$(wildcard mp3lib
/*.
[ch
])
403 libfaad2
/libfaad2.a
: .norecurse
$(wildcard libfaad2
/*.
[ch
] libfaad2
/*/*.
[ch
])
405 loader
/libloader.a
: .norecurse
$(wildcard loader
/*.
[chSs
])
406 vidix
/libvidix.a
: .norecurse
$(wildcard vidix
/*.
[ch
])
407 Gui
/libgui.a
: .norecurse
$(wildcard Gui
/*.
[ch
] Gui
/*/*.
[ch
] Gui
/*/*/*.
[ch
])
409 libass
/libass.a
: .norecurse
$(wildcard libass
/*.
[ch
])
413 .PHONY
: all install* uninstall clean distclean strip dep depend
414 .PHONY
: doxygen doxygen_clean