mirror of
https://github.com/mpv-player/mpv
synced 2025-01-16 12:02:39 +00:00
30ffaf0e5f
This should be improved: add compile check to configure (with sth. from encore2.h I guess), seperate divxdecore and encore as only one of them could possibly be installed, add ifdefs to code so it doesn't spit errors about missing headers if no divx4 is present. (I don't currently have installed divx4 so I only did the quick hack for first). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2704 b3059339-0415-0410-9bf9-f77b7e298cf2
215 lines
6.5 KiB
Makefile
215 lines
6.5 KiB
Makefile
# LINUX Makefile made by A'rpi / Astral
|
|
# Some cleanup by LGB: * 'make -C dir' instead of 'cd dir;make;cd..'
|
|
# * for loops instead of linear sequence of make directories
|
|
# * some minor problems with make clean and distclean were corrected
|
|
# * DVD support
|
|
|
|
include config.mak
|
|
|
|
PRG = mplayer
|
|
PRG_HQ = mplayerHQ
|
|
PRG_AVIP = aviparse
|
|
PRG_FIBMAP = fibmap_mplayer
|
|
PRG_TV = tvision
|
|
PRG_CFG = codec-cfg
|
|
PRG_MENCODER = mencoder
|
|
|
|
#prefix = /usr/local
|
|
BINDIR = ${prefix}/bin
|
|
# BINDIR = /usr/local/bin
|
|
|
|
# a BSD compatible 'install' program
|
|
INSTALL = install
|
|
|
|
SRCS_MENCODER = divx4_vbr.c mencoder.c libvo/aclib.c libvo/img_format.c ima4.c xacodec.c cpudetect.c mp_msg.c ac3-iec958.c dec_audio.c dec_video.c codec-cfg.c cfgparser.c
|
|
OBJS_MENCODER = $(SRCS_MENCODER:.c=.o)
|
|
|
|
SRCS_MPLAYER = mplayer.c ima4.c xacodec.c cpudetect.c mp_msg.c ac3-iec958.c find_sub.c dec_audio.c dec_video.c codec-cfg.c subreader.c lirc_mp.c cfgparser.c mixer.c spudec.c
|
|
OBJS_MPLAYER = $(SRCS_MPLAYER:.c=.o)
|
|
CFLAGS = $(OPTFLAGS) -Ilibmpdemux -Iloader -Ilibvo $(EXTRA_INC) $(MADLIB_INC) # -Wall
|
|
A_LIBS = -Lmp3lib -lMP3 -Llibac3 -lac3 $(ALSA_LIB) $(ESD_LIB) $(MADLIB_LIB) $(SGI_AUDIO_LIB)
|
|
VO_LIBS = -Llibvo -lvo $(MLIB_LIB) $(X_LIBS)
|
|
OSDEP_LIBS = -Llinux -losdep
|
|
PP_LIBS = -Lpostproc -lpostproc
|
|
XA_LIBS = -Lxa -lxa
|
|
|
|
# SRCS = $(SRCS_MENCODER) $(SRCS_MPLAYER)
|
|
# OBJS = $(OBJS_MENCODER) $(OBJS_MPLAYER)
|
|
|
|
PARTS = libmpdemux mp3lib libac3 libmpeg2 opendivx libavcodec libvo libao2 drivers drivers/syncfb linux postproc xa
|
|
|
|
ifeq ($(GUI),yes)
|
|
PARTS += Gui
|
|
endif
|
|
|
|
ifneq ($(W32_LIB),)
|
|
PARTS += loader loader/DirectShow
|
|
SRCS_MPLAYER += dll_init.c
|
|
SRCS_MENCODER += dll_init.c
|
|
# SRCS += dll_init.c
|
|
endif
|
|
LOADER_DEP = $(W32_DEP) $(DS_DEP)
|
|
LIB_LOADER = $(W32_LIB) $(DS_LIB)
|
|
|
|
ALL_PRG = $(PRG)
|
|
ifeq ($(CSS_USE),yes)
|
|
ALL_PRG += $(PRG_FIBMAP)
|
|
endif
|
|
|
|
.SUFFIXES: .cc .c .o
|
|
|
|
# .PHONY: all clean
|
|
|
|
all: $(ALL_PRG)
|
|
|
|
# $(PRG_AVIP)
|
|
|
|
.c.o:
|
|
$(CC) -c $(CFLAGS) -o $@ $<
|
|
|
|
COMMONLIBS = libmpdemux/libmpdemux.a libvo/libvo.a libao2/libao2.a libac3/libac3.a mp3lib/libMP3.a libmpeg2/libmpeg2.a opendivx/libdecore.a linux/libosdep.a postproc/libpostproc.a xa/libxa.a
|
|
|
|
loader/libloader.a:
|
|
$(MAKE) -C loader
|
|
|
|
libmpdemux/libmpdemux.a:
|
|
$(MAKE) -C libmpdemux
|
|
|
|
loader/DirectShow/libDS_Filter.a:
|
|
$(MAKE) -C loader/DirectShow
|
|
|
|
libavcodec/libavcodec.a:
|
|
$(MAKE) -C libavcodec
|
|
|
|
libmpeg2/libmpeg2.a:
|
|
$(MAKE) -C libmpeg2
|
|
|
|
libvo/libvo.a:
|
|
$(MAKE) -C libvo
|
|
|
|
libao2/libao2.a:
|
|
$(MAKE) -C libao2
|
|
|
|
libac3/libac3.a:
|
|
$(MAKE) -C libac3
|
|
|
|
mp3lib/libMP3.a:
|
|
$(MAKE) -C mp3lib
|
|
|
|
opendivx/libdecore.a:
|
|
$(MAKE) -C opendivx
|
|
|
|
# encore/libencore.a:
|
|
# $(MAKE) -C encore
|
|
|
|
Gui/libgui.a:
|
|
$(MAKE) -C Gui
|
|
|
|
linux/libosdep.a:
|
|
$(MAKE) -C linux
|
|
|
|
postproc/libpostproc.a:
|
|
$(MAKE) -C postproc
|
|
|
|
xa/libxa.a:
|
|
$(MAKE) -C xa
|
|
|
|
MPLAYER_DEP = $(OBJS_MPLAYER) $(LOADER_DEP) $(AV_DEP) $(COMMONLIBS)
|
|
MENCODER_DEP = $(OBJS_MENCODER) $(LOADER_DEP) $(AV_DEP) $(COMMONLIBS)
|
|
|
|
ifeq ($(GUI),yes)
|
|
MPLAYER_DEP += Gui/libgui.a
|
|
MENCODER_DEP += Gui/libgui.a
|
|
endif
|
|
|
|
$(PRG): $(MPLAYER_DEP)
|
|
$(CC) -rdynamic $(CFLAGS) -o $(PRG) $(OBJS_MPLAYER) -Llibmpdemux -lmpdemux $(XMM_LIBS) $(LIRC_LIBS) $(LIB_LOADER) $(AV_LIB) -Llibmpeg2 -lmpeg2 -Llibao2 -lao2 $(A_LIBS) $(VO_LIBS) $(CSS_LIB) $(GUI_LIBS) $(ARCH_LIBS) $(OSDEP_LIBS) $(PP_LIBS) $(XA_LIBS) $(DECORE_LIBS) $(TERMCAP_LIB) -lm
|
|
|
|
$(PRG_FIBMAP): fibmap_mplayer.o
|
|
$(CC) -o $(PRG_FIBMAP) fibmap_mplayer.o
|
|
|
|
$(PRG_MENCODER): $(MENCODER_DEP)
|
|
$(CC) -rdynamic $(CFLAGS) -o $(PRG_MENCODER) $(OBJS_MENCODER) -Llibmpdemux -lmpdemux $(X_LIBS) $(XMM_LIBS) $(LIB_LOADER) $(AV_LIB) -lmp3lame -Llibmpeg2 -lmpeg2 $(A_LIBS) $(CSS_LIB) $(GUI_LIBS) $(ARCH_LIBS) $(OSDEP_LIBS) $(PP_LIBS) $(XA_LIBS) $(DECORE_LIBS) $(TERMCAP_LIB) -lm
|
|
|
|
# $(PRG_HQ): depfile mplayerHQ.o $(OBJS) loader/libloader.a libmpeg2/libmpeg2.a opendivx/libdecore.a $(COMMONLIBS) encore/libencore.a
|
|
# $(CC) $(CFLAGS) -o $(PRG_HQ) mplayerHQ.o $(OBJS) $(XMM_LIBS) $(LIRC_LIBS) $(A_LIBS) -lm $(TERMCAP_LIB) -Lloader -lloader -ldl -Llibmpeg2 -lmpeg2 -Lopendivx -ldecore $(VO_LIBS) -Lencore -lencore -lpthread
|
|
|
|
# $(PRG_AVIP): depfile aviparse.o $(OBJS) loader/libloader.a $(COMMONLIBS)
|
|
# $(CC) $(CFLAGS) -o $(PRG_AVIP) aviparse.o $(OBJS) $(A_LIBS) -lm $(TERMCAP_LIB) -Lloader -lloader -ldl $(VO_LIBS) -lpthread
|
|
|
|
#$(PRG_TV): depfile tvision.o $(OBJS) $(COMMONLIBS)
|
|
# $(CC) $(CFLAGS) -o $(PRG_TV) tvision.o $(OBJS) -lm $(TERMCAP_LIB) $(VO_LIBS)
|
|
|
|
# Every mplayer dependancy depends on version.h, to force building version.h
|
|
# first (in serial mode) before any other of the dependancies for a parallel make
|
|
# run. This is necessary, because the make rule for version.h removes objects
|
|
# in a recursive "make distclean" and we must wait for this "make distclean" to
|
|
# finish before be can start builing new object files.
|
|
$(MPLAYER_DEP): version.h
|
|
$(MENCODER_DEP): version.h
|
|
|
|
$(PRG_CFG): version.h codec-cfg.c codec-cfg.h
|
|
$(CC) $(CFLAGS) -g codec-cfg.c -o $(PRG_CFG) -DCODECS2HTML
|
|
|
|
install: $(ALL_PRG)
|
|
if test ! -d $(BINDIR) ; then mkdir -p $(BINDIR) ; fi
|
|
$(INSTALL) -m 755 -s $(PRG) $(BINDIR)/$(PRG)
|
|
ifeq ($(GUI),yes)
|
|
-ln -sf $(BINDIR)/$(PRG) $(BINDIR)/gmplayer
|
|
endif
|
|
if test ! -d $(prefix)/man/man1 ; then mkdir -p $(prefix)/man/man1; fi
|
|
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(prefix)/man/man1/mplayer.1
|
|
ifeq ($(CSS_USE),yes)
|
|
@echo "Following task requires root privs. If it fails don't panic"
|
|
@echo "however it means you can't use fibmap_mplayer."
|
|
@echo "Without this (or without running mplayer as root) you won't be"
|
|
@echo "able to play encrypted DVDs."
|
|
-$(INSTALL) -o 0 -g 0 -m 4755 -s $(PRG_FIBMAP) $(BINDIR)/$(PRG_FIBMAP)
|
|
endif
|
|
|
|
uninstall:
|
|
rm -f $(BINDIR)/$(PRG)
|
|
rm -f $(BINDIR)/gmplayer
|
|
rm -f $(prefix)/man/man1/mplayer.1
|
|
rm -f $(BINDIR)/$(PRG_FIBMAP)
|
|
@echo "Uninstall completed"
|
|
|
|
clean:
|
|
rm -f *.o *~ $(OBJS)
|
|
|
|
distclean:
|
|
rm -f *~ $(PRG) $(PRG_FIBMAP) $(PRG_HQ) $(PRG_AVIP) $(PRG_TV) $(OBJS) $(PRG_MENCODER) *.o *.a .depend
|
|
@for a in $(PARTS); do $(MAKE) -C $$a distclean; done
|
|
|
|
dep: depend
|
|
|
|
depend:
|
|
./version.sh
|
|
$(CC) -MM $(CFLAGS) mplayer.c mencoder.c $(SRCS_MPLAYER) $(SRCS_MENCODER) 1>.depend
|
|
@for a in $(PARTS); do $(MAKE) -C $$a dep; done
|
|
|
|
# ./configure must be run if it changed in CVS
|
|
config.h: configure
|
|
@echo "############################################################"
|
|
@echo "####### Please run ./configure again - it's changed! #######"
|
|
@echo "############################################################"
|
|
@exit 1
|
|
|
|
# rebuild at every config.h/config.mak change:
|
|
version.h: config.h config.mak Makefile
|
|
./version.sh
|
|
$(MAKE) distclean
|
|
$(MAKE) depend
|
|
|
|
# rebuild at every CVS update:
|
|
ifneq ($(wildcard CVS/Entries),)
|
|
version.h: CVS/Entries
|
|
endif
|
|
|
|
#
|
|
# include dependency files if they exist
|
|
#
|
|
ifneq ($(wildcard .depend),)
|
|
include .depend
|
|
endif
|