comparison Makefile @ 35914:209180129a45

build: Split object files from link libraries in generic executable rule. This avoids a host of problems when GNU Make starts mucking with -l flags.
author diego
date Tue, 19 Mar 2013 10:42:26 +0000
parents 635f18a8e27d
children a428cba73765
comparison
equal deleted inserted replaced
35913:635f18a8e27d 35914:209180129a45
795 # rebuild version.h each time the working copy is updated 795 # rebuild version.h each time the working copy is updated
796 version.h: version.sh $(wildcard .svn/entries .git/logs/HEAD) 796 version.h: version.sh $(wildcard .svn/entries .git/logs/HEAD)
797 ./$< `$(CC) -dumpversion` 797 ./$< `$(CC) -dumpversion`
798 798
799 %$(EXESUF): %.c 799 %$(EXESUF): %.c
800 $(CC) $(CC_DEPFLAGS) $(CFLAGS) -o $@ $^ 800 $(CC) $(CC_DEPFLAGS) $(CFLAGS) -o $@ $^ $(LIBS)
801 801
802 %.ho: %.h 802 %.ho: %.h
803 $(CC) $(CFLAGS) -Wno-unused -c -o $@ -x c $< 803 $(CC) $(CFLAGS) -Wno-unused -c -o $@ -x c $<
804 804
805 checkheaders: $(ALLHEADERS:.h=.ho) 805 checkheaders: $(ALLHEADERS:.h=.ho)
1007 1007
1008 1008
1009 1009
1010 ###### tests / tools ####### 1010 ###### tests / tools #######
1011 1011
1012 TEST_OBJS = mp_msg.o mp_fifo.o osdep/$(GETCH) osdep/$(TIMER) -ltermcap -lm 1012 MP_MSG_LIBS = -ltermcap -lm
1013 1013 MP_MSG_OBJS = mp_msg.o mp_fifo.o osdep/$(GETCH) osdep/$(TIMER)
1014 libvo/aspecttest$(EXESUF): libvo/aspect.o libvo/geometry.o $(TEST_OBJS) 1014
1015 1015 libvo/aspecttest$(EXESUF): libvo/aspect.o libvo/geometry.o $(MP_MSG_OBJS)
1016 LOADER_TEST_OBJS = $(SRCS_WIN32_EMULATION:.c=.o) $(SRCS_QTX_EMULATION:.S=.o) ffmpeg/libavutil/libavutil.a osdep/mmap_anon.o cpudetect.o path.o $(TEST_OBJS) 1016 libvo/aspecttest$(EXESUF): LIBS = $(MP_MSG_LIBS)
1017
1018 LOADER_TEST_OBJS = $(SRCS_WIN32_EMULATION:.c=.o) $(SRCS_QTX_EMULATION:.S=.o) ffmpeg/libavutil/libavutil.a osdep/mmap_anon.o cpudetect.o path.o $(MP_MSG_OBJS)
1017 1019
1018 loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): CFLAGS += -g 1020 loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): CFLAGS += -g
1019 loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): $(LOADER_TEST_OBJS) 1021 loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): $(LOADER_TEST_OBJS)
1020 1022
1021 TESTS-$(ARCH_X86_32) += loader/qtx/list loader/qtx/qtxload 1023 TESTS-$(ARCH_X86_32) += loader/qtx/list loader/qtx/qtxload
1042 1044
1043 toolsclean: 1045 toolsclean:
1044 -rm -f $(call ADD_ALL_EXESUFS,$(ALLTOOLS)) 1046 -rm -f $(call ADD_ALL_EXESUFS,$(ALLTOOLS))
1045 -rm -f TOOLS/realcodecs/*.so.6.0 1047 -rm -f TOOLS/realcodecs/*.so.6.0
1046 1048
1047 TOOLS/bmovl-test$(EXESUF): -lSDL_image 1049 TOOLS/bmovl-test$(EXESUF): LIBS = -lSDL_image
1048 1050
1049 TOOLS/subrip$(EXESUF): path.o sub/vobsub.o sub/spudec.o sub/unrar_exec.o \ 1051 TOOLS/subrip$(EXESUF): path.o sub/vobsub.o sub/spudec.o sub/unrar_exec.o \
1050 ffmpeg/libswscale/libswscale.a ffmpeg/libavutil/libavutil.a $(TEST_OBJS) 1052 ffmpeg/libswscale/libswscale.a ffmpeg/libavutil/libavutil.a $(MP_MSG_OBJS)
1051 1053 TOOLS/subrip$(EXESUF): LIBS = $(MP_MSG_LIBS)
1052 TOOLS/vfw2menc$(EXESUF): -lwinmm -lole32 1054
1055 TOOLS/vfw2menc$(EXESUF): LIBS = -lwinmm -lole32
1053 1056
1054 mplayer-nomain.o: mplayer.c 1057 mplayer-nomain.o: mplayer.c
1055 $(CC) $(CFLAGS) -DDISABLE_MAIN -c -o $@ $< 1058 $(CC) $(CFLAGS) -DDISABLE_MAIN -c -o $@ $<
1056 1059
1057 TOOLS/netstream$(EXESUF): TOOLS/netstream.c 1060 TOOLS/netstream$(EXESUF): TOOLS/netstream.c