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
12 ifeq ($(CONFIG_LIBAVUTIL
),yes
)
13 LIBAV_INC
+= -I.
/libavutil
15 ifeq ($(CONFIG_LIBAVCODEC
),yes
)
16 LIBAV_INC
+= -I.
/libavcodec
19 # Do not strip the binaries at installation
20 ifeq ($(STRIPBINARIES
),yes
)
24 # These subdirectories require installation due to binaries within them.
26 SUBDIRS
+= libdha vidix
27 DO_MAKE
= @ for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i $@
; done
30 SRCS_COMMON
= asxparser.c \
46 SRCS_MENCODER
= mencoder.c \
52 libvo
/font_load_ft.c \
58 SRCS_MPLAYER
= mplayer.c \
65 ifeq ($(UNRARLIB
),yes
)
66 SRCS_COMMON
+= unrarlib.c
69 OBJS_MENCODER
= $(SRCS_MENCODER
:.c
=.o
)
70 OBJS_MPLAYER
= $(SRCS_MPLAYER
:.c
=.o
)
83 AO_LIBS
= $(ARTS_LIB
) \
91 CODEC_LIBS
= $(AV_LIB
) \
110 COMMON_LIBS
= libmpcodecs
/libmpcodecs.a \
114 libmpdemux
/libmpdemux.a \
116 postproc
/libswscale.a \
123 $(MPLAYER_NETWORK_LIB
) \
126 $(MACOSX_FRAMEWORKS
) \
133 CFLAGS
= $(OPTFLAGS
) -I. \
149 ifeq ($(TOOLAME
),yes
)
150 CFLAGS
+= $(TOOLAME_EXTRAFLAGS
)
151 CODEC_LIBS
+= $(TOOLAME_LIB
)
154 ifeq ($(TWOLAME
),yes
)
155 CODEC_LIBS
+= $(TWOLAME_LIB
)
159 CODEC_LIBS
+= $(FAAC_LIB
)
180 ifeq ($(LIBMPEG2
),yes
)
183 ifeq ($(INTERNAL_FAAD
),yes
)
184 COMMON_LIBS
+= libfaad2
/libfaad2.a
188 PARTS
+= libdha vidix
193 ifeq ($(DVDKIT2
),yes
)
194 PARTS
+= libmpdvdkit2
204 PARTS
+= loader loader
/dshow loader
/dmo
206 ifeq ($(LIBMENU
),yes
)
214 ifeq ($(MENCODER
),yes
)
215 ALL_PRG
+= $(PRG_MENCODER
)
218 COMMON_DEPS
= $(W32_DEP
) \
222 libmpdemux
/libmpdemux.a \
223 libmpcodecs
/libmpcodecs.a \
226 postproc
/libswscale.a \
232 COMMON_DEPS
+= mp3lib
/libMP3.a
233 COMMON_LIBS
+= mp3lib
/libMP3.a
236 COMMON_DEPS
+= liba52
/liba52.a
237 COMMON_LIBS
+= liba52
/liba52.a
239 ifeq ($(LIBMPEG2
),yes
)
240 COMMON_DEPS
+= libmpeg2
/libmpeg2.a
241 COMMON_LIBS
+= libmpeg2
/libmpeg2.a
243 ifeq ($(INTERNAL_FAAD
),yes
)
244 COMMON_DEPS
+= libfaad2
/libfaad2.a
247 COMMON_DEPS
+= tremor
/libvorbisidec.a
248 COMMON_LIBS
+= tremor
/libvorbisidec.a
251 COMMON_DEPS
+= libdha
/libdha.so vidix
/libvidix.a
254 COMMON_DEPS
+= libfame
/libfame.a
256 ifeq ($(DVDKIT2
),yes
)
257 ifeq ($(DVDKIT_SHARED
),yes
)
258 COMMON_DEPS
+= libmpdvdkit2
/libmpdvdkit.so
260 COMMON_DEPS
+= libmpdvdkit2
/libmpdvdkit.a
265 COMMON_DEPS
+= Gui
/libgui.a
266 GUI_LIBS
= Gui
/libgui.a
271 #.PHONY: $(COMMON_DEPS)
273 all: version.h
$(ALL_PRG
)
276 $(CC
) -c
$(CFLAGS
) -o
$@
$<
281 libmpdvdkit2
/libmpdvdkit.a
:
282 $(MAKE
) -C libmpdvdkit2
284 libmpdvdkit2
/libmpdvdkit.so
:
285 $(MAKE
) -C libmpdvdkit2 libmpdvdkit.so
293 libmpdemux
/libmpdemux.a
:
294 $(MAKE
) -C libmpdemux
296 libmpcodecs
/libmpcodecs.a
:
297 $(MAKE
) -C libmpcodecs
299 loader
/dshow
/libDS_Filter.a
:
300 $(MAKE
) -C loader
/dshow
302 loader
/dmo
/libDMO_Filter.a
:
303 $(MAKE
) -C loader
/dmo
305 libavutil
/libavutil.a
:
306 $(MAKE
) -C libavutil LIBPREF
=lib LIBSUF
=.a SRC_PATH
=..
308 libavcodec
/libavcodec.a
:
309 $(MAKE
) -C libavcodec LIBPREF
=lib LIBSUF
=.a SRC_PATH
=..
311 libavcodec
/libpostproc
/libpostproc.a
:
312 $(MAKE
) -C libavcodec
/libpostproc LIBPREF
=lib LIBSUF
=.a SRC_PATH
=..
/..
314 libavformat
/libavformat.a
:
315 $(MAKE
) -C libavformat LIBPREF
=lib LIBSUF
=.a SRC_PATH
=..
335 tremor
/libvorbisidec.a
:
341 vidix
/libvidix.a
: libdha
/libdha.so
350 postproc
/libswscale.a
:
359 MPLAYER_DEP
= $(OBJS_MPLAYER
) $(COMMON_DEPS
)
361 ifeq ($(LIBMENU
),yes
)
362 MPLAYER_DEP
+= libmenu
/libmenu.a
363 MENU_LIBS
= libmenu
/libmenu.a
369 MENCODER_DEP
= $(OBJS_MENCODER
) $(COMMON_DEPS
) libmpcodecs
/libmpencoders.a
372 VIDIX_LIBS
= vidix
/libvidix.a
377 ifeq ($(TARGET_WIN32
),yes
)
378 OBJS_MPLAYER
+= osdep
/mplayer-rc.o
381 LIBS_MPLAYER
= libvo
/libvo.a \
399 $(PRG
): $(MPLAYER_DEP
)
400 ifeq ($(TARGET_WIN32
),yes
)
401 windres
-o osdep
/mplayer-rc.o osdep
/mplayer.rc
403 $(CC
) $(CFLAGS
) -o
$(PRG
) $(OBJS_MPLAYER
) $(LIBS_MPLAYER
)
405 mplayer.exe.spec.c
: libmpcodecs
/libmpcodecs.a
406 winebuild
-fPIC
-o mplayer.exe.spec.c
-exe mplayer.exe
-mcui \
407 libmpcodecs
/ad_qtaudio.o libmpcodecs
/vd_qtvideo.o \
408 -L
/usr
/local
/lib
/wine
-lkernel32
410 mplayer.exe.so
: $(MPLAYER_DEP
) mplayer.exe.spec.c
411 $(CC
) $(CFLAGS
) -Wall
-shared
-Wl
,-rpath
,/usr
/local
/lib
-Wl
,-Bsymbolic
-o mplayer.exe.so
$(OBJS_MPLAYER
) mplayer.exe.spec.c libvo
/libvo.a libao2
/libao2.a
$(MENU_LIBS
) $(VIDIX_LIBS
) $(GUI_LIBS
) $(COMMON_LIBS
) $(GTK_LIBS
) $(VO_LIBS
) $(AO_LIBS
) $(EXTRA_LIB
) $(LIRC_LIB
) $(LIRCC_LIB
) $(STATIC_LIB
) $(ARCH_LIB
) -lwine
$(MATH_LIB
)
413 mplayer_wine.so
: $(MPLAYER_DEP
)
414 $(CC
) $(CFLAGS
) -shared
-Wl
,-Bsymbolic
-o mplayer_wine.so mplayer_wine.spec.c
$(OBJS_MPLAYER
) libvo
/libvo.a libao2
/libao2.a
$(MENU_LIBS
) $(VIDIX_LIBS
) $(GUI_LIBS
) $(COMMON_LIBS
) $(GTK_LIBS
) $(VO_LIBS
) $(AO_LIBS
) $(EXTRA_LIB
) $(LIRC_LIB
) $(LIRCC_LIB
) $(STATIC_LIB
) -lwine
$(ARCH_LIB
) $(MATH_LIB
)
416 ifeq ($(MENCODER
),yes
)
417 LIBS_MENCODER
= libmpcodecs
/libmpencoders.a \
429 $(PRG_MENCODER
): $(MENCODER_DEP
)
430 $(CC
) $(CFLAGS
) -o
$(PRG_MENCODER
) $(OBJS_MENCODER
) $(LIBS_MENCODER
)
433 codecs.conf.h
: $(PRG_CFG
) etc
/codecs.conf
434 .
/$(PRG_CFG
) .
/etc
/codecs.conf
> $@
436 codec-cfg.o
: codecs.conf.h
438 # Every mplayer dependency depends on version.h, to force building version.h
439 # first (in serial mode) before any other of the dependencies for a parallel make
440 # run. This is necessary, because the make rule for version.h removes objects
441 # in a recursive "make distclean" and we must wait for this "make distclean" to
442 # finish before we can start building new object files.
443 # help_mp.h is also required by a lot of files, so force generating it early.
444 $(MPLAYER_DEP
): version.h help_mp.h
445 $(MENCODER_DEP
): version.h help_mp.h
447 $(PRG_CFG
): version.h codec-cfg.c codec-cfg.h
448 $(HOST_CC
) $(HOST_CFLAGS
) -I. codec-cfg.c mp_msg.c
-o
$(PRG_CFG
) -DCODECS2HTML
$(EXTRA_LIB
) $(EXTRA_INC
) $(I18NLIBS
)
454 if
test ! -d
$(BINDIR
) ; then mkdir
-p
$(BINDIR
) ; fi
455 $(INSTALL
) -m
755 $(INSTALLSTRIP
) $(PRG
) $(BINDIR
)/$(PRG
)
457 -ln
-sf
$(PRG
) $(BINDIR
)/gmplayer
459 if
test ! -d
$(MANDIR
)/man1
; then mkdir
-p
$(MANDIR
)/man1
; fi
460 for i in
$(MAN_LANG
); do \
461 if
test "$$i" = en
; then \
462 $(INSTALL
) -c
-m
644 DOCS
/man
/en
/mplayer
.1 $(MANDIR
)/man1
/mplayer
.1 ; \
464 mkdir
-p
$(MANDIR
)/$$i/man1
; \
465 $(INSTALL
) -c
-m
644 DOCS
/man
/$$i/mplayer
.1 $(MANDIR
)/$$i/man1
/mplayer
.1 ; \
468 ifeq ($(MENCODER
),yes
)
469 $(INSTALL
) -m
755 $(INSTALLSTRIP
) $(PRG_MENCODER
) $(BINDIR
)/$(PRG_MENCODER
)
470 for i in
$(MAN_LANG
); do \
471 if
test "$$i" = en
; then \
472 ln
-sf mplayer
.1 $(MANDIR
)/man1
/mencoder
.1 ; \
474 ln
-sf mplayer
.1 $(MANDIR
)/$$i/man1
/mencoder
.1 ; \
478 @if
test ! -d
$(DATADIR
) ; then mkdir
-p
$(DATADIR
) ; fi
479 @if
test ! -d
$(DATADIR
)/font
; then mkdir
-p
$(DATADIR
)/font
; fi
480 @if
test ! -f
$(DATADIR
)/font
/font.desc
; then \
481 echo
"*** Download font at http://www.mplayerhq.hu/dload.html" ; \
482 echo
"*** for OSD/Subtitles support and extract to $(DATADIR)/font/" ; \
485 @if
test ! -d
$(DATADIR
)/Skin
; then mkdir
-p
$(DATADIR
)/Skin
; fi
486 @echo
"*** Download skin(s) at http://www.mplayerhq.hu/dload.html"
487 @echo
"*** for GUI, and extract to $(DATADIR)/Skin/"
488 @if
test ! -d
$(prefix)/share
/pixmaps
; then mkdir
-p
$(prefix)/share
/pixmaps
; fi
489 $(INSTALL
) -m
644 Gui
/mplayer
/pixmaps
/mplayer-desktop.xpm
$(prefix)/share
/pixmaps
/mplayer-desktop.xpm
490 @if
test ! -d
$(prefix)/share
/applications
; then mkdir
-p
$(prefix)/share
/applications
; fi
491 $(INSTALL
) -m
644 etc
/mplayer.desktop
$(prefix)/share
/applications
/mplayer.desktop
493 @if
test ! -d
$(CONFDIR
) ; then mkdir
-p
$(CONFDIR
) ; fi
494 @if
test -f
$(CONFDIR
)/codecs.conf
; then mv
-f
$(CONFDIR
)/codecs.conf
$(CONFDIR
)/codecs.conf.old
; fi
495 ifeq ($(DVDKIT_SHARED
),yes
)
496 ifeq ($(DVDKIT2
),yes
)
497 if
test ! -d
$(LIBDIR
) ; then mkdir
-p
$(LIBDIR
) ; fi
498 $(INSTALL
) -m
755 $(INSTALLSTRIP
) libmpdvdkit2
/libmpdvdkit.so
$(LIBDIR
)/libmpdvdkit.so
501 if
test ! -d
$(LIBDIR
) ; then mkdir
-p
$(LIBDIR
) ; fi
502 $(INSTALL
) -m
755 $(INSTALLSTRIP
) libmpdvdkit
/libmpdvdkit.so
$(LIBDIR
)/libmpdvdkit.so
508 -rm -f
$(BINDIR
)/$(PRG
) $(BINDIR
)/gmplayer
$(MANDIR
)/man1
/mplayer
.1
509 -rm -f
$(BINDIR
)/$(PRG_MENCODER
) $(MANDIR
)/man1
/mencoder
.1
510 -rm -f
$(prefix)/share
/pixmaps
/mplayer-desktop.xpm
511 -rm -f
$(prefix)/share
/applications
/mplayer.desktop
512 -rm -f
$(LIBDIR
)/libmpdvdkit.so
513 for l in
$(MAN_LANG
); do \
514 if
test "$$l" != "en"; then \
515 rm -f
$(MANDIR
)/$$l/man1
/mplayer
.1 \
516 $(MANDIR
)/$$l/man1
/mencoder
.1 \
517 $(MANDIR
)/$$l/man1
/gmplayer
.1 ; \
523 @echo
"Uninstall completed"
526 -rm -f
*.o
*.a
*~ codecs.conf.h
528 distclean: clean doxygen_clean
529 -rm -f
*~
$(PRG
) $(PRG_MENCODER
) $(PRG_CFG
)
530 -rm -f .depend configure.log codecs.conf.h help_mp.h
531 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a distclean; done
539 .
/version.sh
`$(CC) -dumpversion`
540 $(CC
) -MM
$(CFLAGS
) -DCODECS2HTML mplayer.c mencoder.c
$(SRCS_MPLAYER
) $(SRCS_MENCODER
) 1>.depend
541 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a dep
; done
543 # ./configure must be run if it changed in CVS
545 @echo
"############################################################"
546 @echo
"####### Please run ./configure again - it's changed! #######"
547 @echo
"############################################################"
548 ifeq ($(wildcard .developer
),)
552 # do not rebuild after cvs commits if .developer file is present!
554 # rebuild at every config.h/config.mak change:
556 .
/version.sh
`$(CC) -dumpversion`
557 ifeq ($(wildcard .developer
),)
563 doxygen DOCS
/tech
/Doxyfile
566 -rm -rf DOCS
/tech
/doxygen
568 help_mp.h
: help
/help_mp-en.h
$(HELP_FILE
)
569 @echo
'// WARNING! This is a generated file. Do NOT edit.' > help_mp.h
570 @echo
'// See the help/ subdir for the editable files.' >> help_mp.h
572 @echo
'#include "$(HELP_FILE)"' >> help_mp.h
574 iconv
-f
`cat $(HELP_FILE).charset` -t
$(CHARSET
) "$(HELP_FILE)" >> help_mp.h
577 ifneq ($(HELP_FILE
),help
/help_mp-en.h
)
578 @echo
"Adding untranslated messages to help_mp.h"
579 @echo
'// untranslated messages from the English master file:' >> help_mp.h
580 @help
/help_diff.sh
$(HELP_FILE
) < help
/help_mp-en.h
>> help_mp.h
583 # rebuild at every CVS update or config/makefile change:
584 ifeq ($(wildcard .developer
),)
585 ifneq ($(wildcard CVS
/Entries
),)
586 version.h
: CVS
/Entries
588 version.h
: config.h config.mak Makefile
592 # include dependencies to get make to recurse into lib dirs,
593 # if the user desires such behavior
595 ifneq ($(wildcard .libdeps
),)
600 # include dependency files if they exist
602 ifneq ($(wildcard .depend
),)