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
10 PRG_FIBMAP
= fibmap_mplayer
12 PRG_MENCODER
= mencoder
14 # Do not strip the binaries at installation
15 ifeq ($(STRIPBINARIES
),yes
)
19 # These subdirectories require installation due to binaries within them.
21 SUBDIRS
+= libdha vidix
22 DO_MAKE
= @ for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i $@
; done
25 SRCS_COMMON
= cpudetect.c codec-cfg.c spudec.c playtree.c playtreeparser.c asxparser.c vobsub.c subreader.c sub_cc.c find_sub.c m_config.c m_option.c parser-cfg.c m_struct.c
26 SRCS_MENCODER
= mencoder.c mp_msg-mencoder.c
$(SRCS_COMMON
) libao2
/afmt.c divx4_vbr.c libvo
/aclib.c libvo
/osd.c libvo
/sub.c libvo
/font_load.c libvo
/font_load_ft.c xvid_vbr.c parser-mecmd.c
27 SRCS_MPLAYER
= mplayer.c mp_msg.c
$(SRCS_COMMON
) mixer.c parser-mpcmd.c
29 ifeq ($(UNRARLIB
),yes
)
30 SRCS_COMMON
+= unrarlib.c
33 OBJS_MENCODER
= $(SRCS_MENCODER
:.c
=.o
)
34 OBJS_MPLAYER
= $(SRCS_MPLAYER
:.c
=.o
)
36 VO_LIBS
= $(AA_LIB
) $(X_LIB
) $(SDL_LIB
) $(GGI_LIB
) $(MP1E_LIB
) $(MLIB_LIB
) $(SVGA_LIB
) $(DIRECTFB_LIB
)
37 AO_LIBS
= $(ARTS_LIB
) $(ESD_LIB
) $(NAS_LIB
) $(SGIAUDIO_LIB
)
38 CODEC_LIBS
= $(AV_LIB
) $(FAME_LIB
) $(MAD_LIB
) $(VORBIS_LIB
) $(THEORA_LIB
) $(FAAD_LIB
) $(LIBLZO_LIB
) $(DECORE_LIB
) $(XVID_LIB
) $(PNG_LIB
) $(Z_LIB
) $(JPEG_LIB
) $(ALSA_LIB
) $(XMMS_LIB
) $(MATROSKA_LIB
)
39 COMMON_LIBS
= libmpcodecs
/libmpcodecs.a mp3lib
/libMP3.a liba52
/liba52.a libmpeg2
/libmpeg2.a
$(W32_LIB
) $(DS_LIB
) libaf
/libaf.a libmpdemux
/libmpdemux.a input
/libinput.a postproc
/libswscale.a osdep
/libosdep.a
$(CSS_LIB
) $(CODEC_LIBS
) $(FREETYPE_LIB
) $(TERMCAP_LIB
) $(CDPARANOIA_LIB
) $(MPLAYER_NETWORK_LIB
) $(WIN32_LIB
) $(GIF_LIB
) $(MACOSX_FRAMEWORKS
) $(SMBSUPPORT_LIB
) $(FRIBIDI_LIB
) $(FLAC_LIB
)
41 CFLAGS
= $(OPTFLAGS
) -Ilibmpdemux
-Iloader
-Ilibvo
$(FREETYPE_INC
) $(EXTRA_INC
) $(CDPARANOIA_INC
) $(SDL_INC
) $(X11_INC
) $(FRIBIDI_INC
) $(DVB_INC
) # -Wall
43 PARTS
= libmpdemux libmpcodecs mp3lib liba52 libmpeg2 libavcodec libao2 drivers osdep postproc input libvo libaf
44 ifeq ($(INTERNAL_FAAD
),yes
)
45 COMMON_LIBS
+= libfaad2
/libfaad2.a
65 PARTS
+= loader loader
/dshow loader
/dmo
70 ifneq ($(MPFLAC
),none
)
75 ifeq ($(MENCODER
),yes
)
76 ALL_PRG
+= $(PRG_MENCODER
)
79 ALL_PRG
+= $(PRG_FIBMAP
)
82 COMMON_DEPS
= $(W32_DEP
) $(DS_DEP
) $(MP1E_DEP
) $(AV_DEP
) libmpdemux
/libmpdemux.a libmpcodecs
/libmpcodecs.a libao2
/libao2.a liba52
/liba52.a mp3lib
/libMP3.a libmpeg2
/libmpeg2.a osdep
/libosdep.a postproc
/libswscale.a input
/libinput.a libvo
/libvo.a libaf
/libaf.a
84 ifeq ($(INTERNAL_FAAD
),yes
)
85 COMMON_DEPS
+= libfaad2
/libfaad2.a
88 COMMON_DEPS
+= libdha
/libdha.so vidix
/libvidix.a
91 COMMON_DEPS
+= libfame
/libfame.a
94 ifeq ($(DVDKIT_SHARED
),yes
)
95 COMMON_DEPS
+= libmpdvdkit2
/libmpdvdkit.so
97 COMMON_DEPS
+= libmpdvdkit2
/libmpdvdkit.a
101 ifeq ($(SHARED_PP
),yes
)
102 COMMON_DEPS
+= libavcodec
/libpostproc
/libpostproc.so
103 COMMON_LIBS
+= libavcodec
/libpostproc
/libpostproc.so
107 COMMON_DEPS
+= Gui
/libgui.a
108 GUI_LIBS
= Gui
/libgui.a
111 ifneq ($(MPFLAC
),none
)
112 COMMON_DEPS
+= libmpflac
/libmpflac.a
117 # .PHONY: $(COMMON_DEPS)
119 all: version.h
$(ALL_PRG
)
122 $(CC
) -c
$(CFLAGS
) -o
$@
$<
127 libmpdvdkit2
/libmpdvdkit.a
:
128 $(MAKE
) -C libmpdvdkit2
130 libmpdvdkit2
/libmpdvdkit.so
:
131 $(MAKE
) -C libmpdvdkit2 libmpdvdkit.so
139 libmpdemux
/libmpdemux.a
:
140 $(MAKE
) -C libmpdemux
142 libmpcodecs
/libmpcodecs.a
:
143 $(MAKE
) -C libmpcodecs
145 loader
/dshow
/libDS_Filter.a
:
146 $(MAKE
) -C loader
/dshow
148 loader
/dmo
/libDMO_Filter.a
:
149 $(MAKE
) -C loader
/dmo
151 libavcodec
/libavcodec.a
:
152 $(MAKE
) -C libavcodec LIBPREF
=lib LIBSUF
=.a
184 postproc
/libswscale.a
:
193 libavcodec
/libpostproc
/libpostproc.so
:
194 $(MAKE
) -C libavcodec
/libpostproc
196 libmpflac
/libmpflac.a
:
199 MPLAYER_DEP
= $(OBJS_MPLAYER
) $(COMMON_DEPS
)
201 ifeq ($(LIBMENU
),yes
)
202 MPLAYER_DEP
+= libmenu
/libmenu.a
203 MENU_LIBS
= libmenu
/libmenu.a
209 MENCODER_DEP
= $(OBJS_MENCODER
) $(COMMON_DEPS
)
212 VIDIX_LIBS
= vidix
/libvidix.a
217 $(PRG
): $(MPLAYER_DEP
)
218 .
/darwinfixlib.sh
$(MPLAYER_DEP
)
219 $(CC
) $(CFLAGS
) -o
$(PRG
) $(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
) $(ARCH_LIB
) $(I18NLIBS
) -lm
221 mplayer.exe.spec.c
: libmpcodecs
/libmpcodecs.a
222 winebuild
-fPIC
-o mplayer.exe.spec.c
-exe mplayer.exe
-mcui \
223 libmpcodecs
/ad_qtaudio.o libmpcodecs
/vd_qtvideo.o \
224 -L
/usr
/local
/lib
/wine
-lkernel32
226 mplayer.exe.so
: $(MPLAYER_DEP
) mplayer.exe.spec.c
227 $(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
-lm
229 mplayer_wine.so
: $(MPLAYER_DEP
)
230 .
/darwinfixlib.sh
$(MPLAYER_DEP
)
231 $(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
) -lm
233 $(PRG_FIBMAP
): fibmap_mplayer.o
234 $(CC
) -o
$(PRG_FIBMAP
) fibmap_mplayer.o
236 ifeq ($(MENCODER
),yes
)
237 $(PRG_MENCODER
): $(MENCODER_DEP
)
238 .
/darwinfixlib.sh
$(MENCODER_DEP
) libmpcodecs
/libmpencoders.a
239 $(CC
) $(CFLAGS
) -o
$(PRG_MENCODER
) $(OBJS_MENCODER
) libmpcodecs
/libmpencoders.a
$(ENCORE_LIB
) $(COMMON_LIBS
) $(EXTRA_LIB
) $(MLIB_LIB
) $(LIRC_LIB
) $(LIRCC_LIB
) $(ARCH_LIB
) $(I18NLIBS
) -lm
242 codecs.conf.h
: $(PRG_CFG
)
243 .
/$(PRG_CFG
) .
/etc
/codecs.conf
> $@
245 codec-cfg.o
: codecs.conf.h
247 # Every mplayer dependency depends on version.h, to force building version.h
248 # first (in serial mode) before any other of the dependencies for a parallel make
249 # run. This is necessary, because the make rule for version.h removes objects
250 # in a recursive "make distclean" and we must wait for this "make distclean" to
251 # finish before we can start building new object files.
252 $(MPLAYER_DEP
): version.h
253 $(MENCODER_DEP
): version.h
255 $(PRG_CFG
): version.h codec-cfg.c codec-cfg.h
256 $(CC
) $(CFLAGS
) -g codec-cfg.c mp_msg.c
-o
$(PRG_CFG
) -DCODECS2HTML
$(EXTRA_LIB
) $(I18NLIBS
)
262 if
test ! -d
$(BINDIR
) ; then mkdir
-p
$(BINDIR
) ; fi
263 $(INSTALL
) -m
755 $(INSTALLSTRIP
) $(PRG
) $(BINDIR
)/$(PRG
)
265 -ln
-sf
$(PRG
) $(BINDIR
)/gmplayer
267 if
test ! -d
$(MANDIR
)/man1
; then mkdir
-p
$(MANDIR
)/man1
; fi
268 for i in
$(LANGUAGES
); do \
269 if
test "$$i" = en
; then \
270 $(INSTALL
) -c
-m
644 DOCS
/en
/mplayer
.1 $(MANDIR
)/man1
/mplayer
.1 ; \
272 mkdir
-p
$(MANDIR
)/$$i/man1
; \
273 $(INSTALL
) -c
-m
644 DOCS
/$$i/mplayer
.1 $(MANDIR
)/$$i/man1
/mplayer
.1 ; \
276 ifeq ($(MENCODER
),yes
)
277 $(INSTALL
) -m
755 $(INSTALLSTRIP
) $(PRG_MENCODER
) $(BINDIR
)/$(PRG_MENCODER
)
278 for i in
$(LANGUAGES
); do \
279 if
test "$$i" = en
; then \
280 ln
-sf mplayer
.1 $(MANDIR
)/man1
/mencoder
.1 ; \
282 ln
-sf mplayer
.1 $(MANDIR
)/$$i/man1
/mencoder
.1 ; \
286 @if
test ! -d
$(DATADIR
) ; then mkdir
-p
$(DATADIR
) ; fi
287 @if
test ! -d
$(DATADIR
)/font
; then mkdir
-p
$(DATADIR
)/font
; fi
288 @if
test ! -f
$(DATADIR
)/font
/font.desc
; then \
289 echo
"*** Download font at http://www.mplayerhq.hu/homepage/dload.html" ; \
290 echo
"*** for OSD/Subtitles support and extract to $(DATADIR)/font/" ; \
293 @if
test ! -d
$(DATADIR
)/Skin
; then mkdir
-p
$(DATADIR
)/Skin
; fi
294 @echo
"*** Download skin(s) at http://www.mplayerhq.hu/homepage/dload.html"
295 @echo
"*** for GUI, and extract to $(DATADIR)/Skin/"
297 @if
test ! -d
$(CONFDIR
) ; then mkdir
-p
$(CONFDIR
) ; fi
298 @if
test -f
$(CONFDIR
)/codecs.conf
; then mv
-f
$(CONFDIR
)/codecs.conf
$(CONFDIR
)/codecs.conf.old
; fi
299 ifeq ($(DVDKIT_SHARED
),yes
)
300 ifeq ($(DVDKIT2
),yes
)
301 if
test ! -d
$(LIBDIR
) ; then mkdir
-p
$(LIBDIR
) ; fi
302 $(INSTALL
) -m
755 $(INSTALLSTRIP
) libmpdvdkit2
/libmpdvdkit.so
$(LIBDIR
)/libmpdvdkit.so
305 if
test ! -d
$(LIBDIR
) ; then mkdir
-p
$(LIBDIR
) ; fi
306 $(INSTALL
) -m
755 $(INSTALLSTRIP
) libmpdvdkit
/libmpdvdkit.so
$(LIBDIR
)/libmpdvdkit.so
310 ifeq ($(CSS_USE
),yes
)
311 @echo
"The following task requires root privileges. If it fails don't panic,"
312 @echo
"however it means you can't use fibmap_mplayer."
313 @echo
"Without this (or without running mplayer as root) you won't be"
314 @echo
"able to play encrypted DVDs."
315 -$(INSTALL
) -o
0 -g
0 -m
4755 $(INSTALLSTRIP
) $(PRG_FIBMAP
) $(BINDIR
)/$(PRG_FIBMAP
)
319 -rm -f
$(BINDIR
)/$(PRG
) $(BINDIR
)/gmplayer
$(MANDIR
)/man1
/mplayer
.1
320 -rm -f
$(BINDIR
)/$(PRG_FIBMAP
)
321 -rm -f
$(BINDIR
)/$(PRG_MENCODER
) $(MANDIR
)/man1
/mencoder
.1
322 @echo
"Uninstall completed"
325 -rm -f
*.o
*~
$(OBJS
) codecs.conf.h
328 -rm -f
*~
$(PRG
) $(PRG_FIBMAP
) $(PRG_MENCODER
) $(PRG_CFG
) $(OBJS
)
329 -rm -f
*.o
*.a .depend configure.log codecs.conf.h
330 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a distclean; done
331 -$(MAKE
) -C libavcodec
distclean LIBPREF
=lib LIBSUF
=.a
339 .
/version.sh
`$(CC) -dumpversion`
340 $(CC
) -MM
$(CFLAGS
) -DCODECS2HTML mplayer.c mencoder.c
$(SRCS_MPLAYER
) $(SRCS_MENCODER
) 1>.depend
341 @for a in
$(PARTS
); do
$(MAKE
) -C
$$a dep
; done
343 # ./configure must be run if it changed in CVS
345 @echo
"############################################################"
346 @echo
"####### Please run ./configure again - it's changed! #######"
347 @echo
"############################################################"
348 ifeq ($(wildcard .developer
),)
352 # do not rebuild after cvs commits if .developer file is present!
354 # rebuild at every config.h/config.mak change:
356 .
/version.sh
`$(CC) -dumpversion`
357 ifeq ($(wildcard .developer
),)
362 # rebuild at every CVS update or config/makefile change:
363 ifeq ($(wildcard .developer
),)
364 ifneq ($(wildcard CVS
/Entries
),)
365 version.h
: CVS
/Entries
367 version.h
: config.h config.mak Makefile
371 # include dependencies to get make to recurse into lib dirs,
372 # if the user desires such behavior
374 ifneq ($(wildcard .libdeps
),)
379 # include dependency files if they exist
381 ifneq ($(wildcard .depend
),)