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 SRCS_COMMON
= asxparser.c \
40 SRCS_MENCODER
= mencoder.c \
46 libvo
/font_load_ft.c \
52 SRCS_MPLAYER
= mplayer.c \
60 ifeq ($(UNRARLIB
),yes
)
61 SRCS_COMMON
+= unrarlib.c
64 OBJS_MENCODER
= $(SRCS_MENCODER
:.c
=.o
)
65 OBJS_MPLAYER
= $(SRCS_MPLAYER
:.c
=.o
)
78 ifeq ($(EXTERNAL_VIDIX
),yes
)
79 VO_LIBS
+= $(EXTERNAL_VIDIX_LIB
)
82 AO_LIBS
= $(ARTS_LIB
) \
90 CODEC_LIBS
= $(AV_LIB
) \
109 COMMON_LIBS
= libmpcodecs
/libmpcodecs.a \
113 libmpdemux
/libmpdemux.a \
114 postproc
/libswscale.a \
121 $(MPLAYER_NETWORK_LIB
) \
125 $(MACOSX_FRAMEWORKS
) \
131 CFLAGS
= $(OPTFLAGS
) -I. \
147 ifeq ($(TOOLAME
),yes
)
148 CFLAGS
+= $(TOOLAME_EXTRAFLAGS
)
149 CODEC_LIBS
+= $(TOOLAME_LIB
)
152 ifeq ($(TWOLAME
),yes
)
153 CODEC_LIBS
+= $(TWOLAME_LIB
)
157 CODEC_LIBS
+= $(FAAC_LIB
)
179 ifeq ($(LIBMPEG2
),yes
)
182 ifeq ($(INTERNAL_FAAD
),yes
)
183 COMMON_LIBS
+= libfaad2
/libfaad2.a
187 PARTS
+= libdha vidix
192 ifeq ($(DVDKIT2
),yes
)
193 PARTS
+= libmpdvdkit2
200 PARTS
+= loader loader
/dshow loader
/dmo
202 ifeq ($(LIBMENU
),yes
)
210 ifeq ($(MENCODER
),yes
)
211 ALL_PRG
+= $(PRG_MENCODER
)
214 COMMON_DEPS
= $(W32_DEP
) \
218 libmpdemux
/libmpdemux.a \
219 libmpcodecs
/libmpcodecs.a \
222 postproc
/libswscale.a \
228 COMMON_DEPS
+= mp3lib
/libMP3.a
229 COMMON_LIBS
+= mp3lib
/libMP3.a
232 COMMON_DEPS
+= liba52
/liba52.a
233 COMMON_LIBS
+= liba52
/liba52.a
235 ifeq ($(LIBMPEG2
),yes
)
236 COMMON_DEPS
+= libmpeg2
/libmpeg2.a
237 COMMON_LIBS
+= libmpeg2
/libmpeg2.a
239 ifeq ($(INTERNAL_FAAD
),yes
)
240 COMMON_DEPS
+= libfaad2
/libfaad2.a
243 COMMON_DEPS
+= tremor
/libvorbisidec.a
244 COMMON_LIBS
+= tremor
/libvorbisidec.a
247 COMMON_DEPS
+= libdha
/libdha.so vidix
/libvidix.a
250 COMMON_DEPS
+= libfame
/libfame.a
252 ifeq ($(DVDKIT2
),yes
)
253 COMMON_DEPS
+= libmpdvdkit2
/libmpdvdkit.a
257 COMMON_DEPS
+= Gui
/libgui.a
258 GUI_LIBS
= Gui
/libgui.a
263 #.PHONY: $(COMMON_DEPS)
268 $(CC
) -c
$(CFLAGS
) -o
$@
$<
273 libmpdvdkit2
/libmpdvdkit.a
:
274 $(MAKE
) -C libmpdvdkit2
282 libmpdemux
/libmpdemux.a
:
283 $(MAKE
) -C libmpdemux
285 libmpcodecs
/libmpcodecs.a
:
286 $(MAKE
) -C libmpcodecs
288 loader
/dshow
/libDS_Filter.a
:
289 $(MAKE
) -C loader
/dshow
291 loader
/dmo
/libDMO_Filter.a
:
292 $(MAKE
) -C loader
/dmo
294 libavutil
/libavutil.a
:
295 $(MAKE
) -C libavutil LIBPREF
=lib LIBSUF
=.a
297 libavcodec
/libavcodec.a
:
298 $(MAKE
) -C libavcodec LIBPREF
=lib LIBSUF
=.a
300 libpostproc
/libpostproc.a
:
301 $(MAKE
) -C libpostproc LIBPREF
=lib LIBSUF
=.a
303 libavformat
/libavformat.a
:
304 $(MAKE
) -C libavformat LIBPREF
=lib LIBSUF
=.a
324 tremor
/libvorbisidec.a
:
330 vidix
/libvidix.a
: libdha
/libdha.so
339 postproc
/libswscale.a
:
348 MPLAYER_DEP
= $(OBJS_MPLAYER
) $(COMMON_DEPS
)
350 ifeq ($(LIBMENU
),yes
)
351 MPLAYER_DEP
+= libmenu
/libmenu.a
352 MENU_LIBS
= libmenu
/libmenu.a
358 MENCODER_DEP
= $(OBJS_MENCODER
) $(COMMON_DEPS
) libmpcodecs
/libmpencoders.a
361 VIDIX_LIBS
= vidix
/libvidix.a
366 ifeq ($(TARGET_WIN32
),yes
)
367 OBJS_MPLAYER
+= osdep
/mplayer-rc.o
370 LIBS_MPLAYER
= libvo
/libvo.a \
388 $(PRG
): $(MPLAYER_DEP
)
389 ifeq ($(TARGET_WIN32
),yes
)
390 windres
-o osdep
/mplayer-rc.o osdep
/mplayer.rc
392 $(CC
) $(CFLAGS
) -o
$(PRG
) $(OBJS_MPLAYER
) $(LIBS_MPLAYER
)
394 mplayer.exe.spec.c
: libmpcodecs
/libmpcodecs.a
395 winebuild
-fPIC
-o mplayer.exe.spec.c
-exe mplayer.exe
-mcui \
396 libmpcodecs
/ad_qtaudio.o libmpcodecs
/vd_qtvideo.o \
397 -L
/usr
/local
/lib
/wine
-lkernel32
399 mplayer.exe.so
: $(MPLAYER_DEP
) mplayer.exe.spec.c
400 $(CC
) $(CFLAGS
) -Wall
-shared \
401 -Wl
,-rpath
,/usr
/local
/lib
-Wl
,-Bsymbolic \
402 -o mplayer.exe.so
$(OBJS_MPLAYER
) mplayer.exe.spec.c \
403 libvo
/libvo.a libao2
/libao2.a
$(MENU_LIBS
) $(VIDIX_LIBS
) \
404 $(GUI_LIBS
) $(COMMON_LIBS
) $(GTK_LIBS
) $(VO_LIBS
) \
405 $(AO_LIBS
) $(EXTRA_LIB
) $(LIRC_LIB
) $(LIRCC_LIB
) \
406 $(STATIC_LIB
) $(ARCH_LIB
) -lwine
$(MATH_LIB
) \
408 mplayer_wine.so
: $(MPLAYER_DEP
)
409 $(CC
) $(CFLAGS
) -shared
-Wl
,-Bsymbolic
-o mplayer_wine.so \
410 mplayer_wine.spec.c
$(OBJS_MPLAYER
) libvo
/libvo.a \
411 libao2
/libao2.a
$(MENU_LIBS
) $(VIDIX_LIBS
) $(GUI_LIBS
) \
412 $(COMMON_LIBS
) $(GTK_LIBS
) $(VO_LIBS
) $(AO_LIBS
) \
413 $(EXTRA_LIB
) $(LIRC_LIB
) $(LIRCC_LIB
) $(STATIC_LIB
) \
414 -lwine
$(ARCH_LIB
) $(MATH_LIB
) \
416 ifeq ($(MENCODER
),yes
)
417 LIBS_MENCODER
= libmpcodecs
/libmpencoders.a \
428 $(PRG_MENCODER
): $(MENCODER_DEP
)
429 $(CC
) $(CFLAGS
) -o
$(PRG_MENCODER
) $(OBJS_MENCODER
) $(LIBS_MENCODER
)
432 codecs.conf.h
: $(PRG_CFG
) etc
/codecs.conf
433 .
/$(PRG_CFG
) .
/etc
/codecs.conf
> $@
435 codec-cfg.o
: codecs.conf.h
437 codecs2html
: mp_msg.o
438 $(CC
) -DCODECS2HTML codec-cfg.c mp_msg.o
-o
$@
440 $(PRG_CFG
): codec-cfg.c codec-cfg.h help_mp.h
441 $(HOST_CC
) $(HOST_CFLAGS
) -I. codec-cfg.c
-o
$(PRG_CFG
) \
442 -DCODECS2HTML
$(EXTRA_LIB
) $(EXTRA_INC
)
446 $(MAKE
) -C libdha
install
447 $(MAKE
) -C vidix
install
449 $(INSTALL
) -d
$(BINDIR
)
450 $(INSTALL
) -m
755 $(INSTALLSTRIP
) $(PRG
) $(BINDIR
)/$(PRG
)
452 -ln
-sf
$(PRG
) $(BINDIR
)/gmplayer
454 $(INSTALL
) -d
$(MANDIR
)/man1
455 for i in
$(MAN_LANG
); do \
456 if
test "$$i" = en
; then \
457 $(INSTALL
) -c
-m
644 DOCS
/man
/en
/mplayer
.1 $(MANDIR
)/man1
/mplayer
.1 ; \
459 $(INSTALL
) -d
$(MANDIR
)/$$i/man1
; \
460 $(INSTALL
) -c
-m
644 DOCS
/man
/$$i/mplayer
.1 $(MANDIR
)/$$i/man1
/mplayer
.1 ; \
463 ifeq ($(MENCODER
),yes
)
464 $(INSTALL
) -m
755 $(INSTALLSTRIP
) $(PRG_MENCODER
) $(BINDIR
)/$(PRG_MENCODER
)
465 for i in
$(MAN_LANG
); do \
466 if
test "$$i" = en
; then \
467 ln
-sf mplayer
.1 $(MANDIR
)/man1
/mencoder
.1 ; \
469 ln
-sf mplayer
.1 $(MANDIR
)/$$i/man1
/mencoder
.1 ; \
473 @
$(INSTALL
) -d
$(DATADIR
)
474 @
$(INSTALL
) -d
$(DATADIR
)/font
475 @if
test ! -f
$(DATADIR
)/font
/font.desc
; then \
476 echo
"*** Download font at http://www.mplayerhq.hu/dload.html" ; \
477 echo
"*** for OSD/Subtitles support and extract to $(DATADIR)/font/" ; \
480 @
$(INSTALL
) -d
$(DATADIR
)/skins
481 @echo
"*** Download skin(s) at http://www.mplayerhq.hu/dload.html"
482 @echo
"*** for GUI, and extract to $(DATADIR)/skins/"
483 @
$(INSTALL
) -d
$(prefix)/share
/pixmaps
484 $(INSTALL
) -m
644 etc
/mplayer.xpm
$(prefix)/share
/pixmaps
/mplayer.xpm
485 @
$(INSTALL
) -d
$(prefix)/share
/applications
486 $(INSTALL
) -m
644 etc
/mplayer.desktop
$(prefix)/share
/applications
/mplayer.desktop
488 @
$(INSTALL
) -d
$(CONFDIR
)
489 @if
test -f
$(CONFDIR
)/codecs.conf
; then mv
-f
$(CONFDIR
)/codecs.conf
$(CONFDIR
)/codecs.conf.old
; fi
492 -rm -f
$(BINDIR
)/$(PRG
) $(BINDIR
)/gmplayer
$(MANDIR
)/man1
/mplayer
.1
493 -rm -f
$(BINDIR
)/$(PRG_MENCODER
) $(MANDIR
)/man1
/mencoder
.1
494 -rm -f
$(prefix)/share
/pixmaps
/mplayer.xpm
495 -rm -f
$(prefix)/share
/applications
/mplayer.desktop
496 for l in
$(MAN_LANG
); do \
497 if
test "$$l" != "en"; then \
498 rm -f
$(MANDIR
)/$$l/man1
/mplayer
.1 \
499 $(MANDIR
)/$$l/man1
/mencoder
.1 \
500 $(MANDIR
)/$$l/man1
/gmplayer
.1 ; \
504 $(MAKE
) -C libdha
uninstall
505 $(MAKE
) -C vidix
uninstall
507 @echo
"Uninstall completed"
510 -rm -f
*.o
*.a
*~ codecs.conf.h
512 distclean: clean doxygen_clean
513 -rm -f
*~
$(PRG
) $(PRG_MENCODER
) $(PRG_CFG
)
514 -rm -f .depend configure.log codecs.conf.h help_mp.h
515 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a distclean; done
523 $(CC
) -MM
$(CFLAGS
) -DCODECS2HTML mplayer.c mencoder.c
$(SRCS_MPLAYER
) $(SRCS_MENCODER
) 1>.depend
524 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a dep
; done
526 # ./configure must be run if it changed in CVS
528 @echo
"############################################################"
529 @echo
"####### Please run ./configure again - it's changed! #######"
530 @echo
"############################################################"
532 # rebuild at every config.h/config.mak change:
534 .
/version.sh
`$(CC) -dumpversion`
537 doxygen DOCS
/tech
/Doxyfile
540 -rm -rf DOCS
/tech
/doxygen
542 help_mp.h
: help
/help_mp-en.h
$(HELP_FILE
)
543 @echo
'// WARNING! This is a generated file. Do NOT edit.' > help_mp.h
544 @echo
'// See the help/ subdir for the editable files.' >> help_mp.h
546 @echo
'#include "$(HELP_FILE)"' >> help_mp.h
548 iconv
-f
`cat $(HELP_FILE).charset` -t
$(CHARSET
) "$(HELP_FILE)" >> help_mp.h
551 ifneq ($(HELP_FILE
),help
/help_mp-en.h
)
552 @echo
"Adding untranslated messages to help_mp.h"
553 @echo
'// untranslated messages from the English master file:' >> help_mp.h
554 @help
/help_diff.sh
$(HELP_FILE
) < help
/help_mp-en.h
>> help_mp.h
557 # rebuild at every CVS update or config/makefile change:
558 #ifneq ($(wildcard CVS/Entries),)
559 #version.h: CVS/Entries
561 version.h
: config.h config.mak Makefile
563 # explicit dependencies to force version.h to be built even if .depend is missing
564 mplayer.o mencoder.o vobsub.o
: version.h
566 # temporary measure to make sure help_mp.h is built. we desperately need correct deps!
567 $(MPLAYER_DEP
) $(MENCODER_DEP
): help_mp.h
570 # the following lines provide _partial_ dependency information
571 # for the 'library' directories under main dir, in order to cause
572 # the build process to recursively descend into them if something
573 # has changed. ideally this will be replaced with a single
574 # nonrecursive makefile for the whole project.
577 libvo
/libvo.a
: $(wildcard libvo
/*.
[ch
])
578 libao2
/libao2.a
: $(wildcard libao2
/*.
[ch
])
579 osdep
/libosdep.a
: $(wildcard osdep
/*.
[ch
])
580 input
/libinput.a
: $(wildcard input
/*.
[ch
])
582 libmenu
/libmenu.a
: $(wildcard libmenu
/*.
[ch
])
583 libaf
/libaf.a
: $(wildcard libaf
/*.
[ch
])
584 libmpdvdkit2
/libmpdvdkit.a
: $(wildcard libmpdvdkit2
/*.
[ch
])
586 libmpdemux
/libmpdemux.a
: $(wildcard libmpdemux
/*.
[ch
] libmpdemux
/*/*.
[ch
])
587 libmpcodecs
/libmpcodecs.a
: $(wildcard libmpcodecs
/*.
[ch
]) $(wildcard libmpcodecs
/native
/*.
[ch
])
588 libmpcodecs
/libmpencoders.a
: $(wildcard libmpcodecs
/*.
[ch
])
590 libavutil
/libavutil.a
: $(wildcard libavutil
/*.
[ch
])
591 libavcodec
/libavcodec.a
: $(wildcard libavcodec
/*.
[ch
] libavcodec
/*/*.
[chS
])
592 libavformat
/libavformat.a
: $(wildcard libavformat
/*.
[ch
])
593 postproc
/libswscale.a
: $(wildcard postproc
/*.
[ch
])
595 libmpeg2
/libmpeg2.a
: $(wildcard libmpeg2
/*.
[ch
])
596 liba52
/liba52.a
: $(wildcard liba52
/*.
[ch
])
597 mp3lib
/libMP3.a
: $(wildcard mp3lib
/*.
[ch
])
598 libfaad2
/libfaad2.a
: $(wildcard libfaad2
/*.
[ch
] libfaad2
/*/*.
[ch
])
600 loader
/libloader.a
: $(wildcard loader
/*.
[chSs
])
601 loader
/dmo
/libDMO_Filter.a
: $(wildcard loader
/dmo
/*.
[ch
])
602 loader
/dshow
/libDS_Filter.a
: $(wildcard loader
/dshow
/*.
[ch
])
604 libdha
/libdha.so
: $(wildcard libdha
/*.
[ch
])
605 vidix
/libvidix.a
: $(wildcard vidix
/*.
[ch
])
606 Gui
/libgui.a
: $(wildcard Gui
/*.
[ch
] Gui
/*/*.
[ch
] Gui
/*/*/*.
[ch
])
609 # include dependency files if they exist
611 ifneq ($(wildcard .depend
),)