Browse code

Add generic rules for building helpers with HOSTCC

Originally committed as revision 20412 to svn://svn.ffmpeg.org/ffmpeg/trunk

Måns Rullgård authored on 2009/10/29 09:55:35
Showing 4 changed files
... ...
@@ -13,6 +13,7 @@ PROGS_G     = $(addsuffix _g$(EXESUF), $(PROGS-yes))
13 13
 OBJS        = $(addsuffix .o,          $(PROGS-yes)) cmdutils.o
14 14
 MANPAGES    = $(addprefix doc/, $(addsuffix .1, $(PROGS-yes)))
15 15
 TOOLS       = $(addprefix tools/, $(addsuffix $(EXESUF), cws2fws pktdumper probetest qt-faststart trasher))
16
+HOSTPROGS   = $(addprefix tests/, audiogen videogen rotozoom tiny_psnr)
16 17
 
17 18
 BASENAMES   = ffmpeg ffplay ffserver
18 19
 ALLPROGS    = $(addsuffix   $(EXESUF), $(BASENAMES))
... ...
@@ -47,7 +48,8 @@ $(PROGS): %$(EXESUF): %_g$(EXESUF)
47 47
 	$(STRIP) $@
48 48
 
49 49
 SUBDIR_VARS := OBJS FFLIBS CLEANFILES DIRS TESTPROGS EXAMPLES SKIPHEADERS \
50
-               ALTIVEC-OBJS MMX-OBJS NEON-OBJS X86-OBJS YASM-OBJS-FFT YASM-OBJS
50
+               ALTIVEC-OBJS MMX-OBJS NEON-OBJS X86-OBJS YASM-OBJS-FFT YASM-OBJS \
51
+               HOSTPROGS
51 52
 
52 53
 define RESET
53 54
 $(1) :=
... ...
@@ -324,9 +326,6 @@ tests/data/asynth1.sw: tests/audiogen$(HOSTEXESUF)
324 324
 	mkdir -p tests/data
325 325
 	$(BUILD_ROOT)/$< $@
326 326
 
327
-tests/%$(HOSTEXESUF): tests/%.c
328
-	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS)
329
-
330 327
 tests/seek_test$(EXESUF): tests/seek_test.o $(FF_DEP_LIBS)
331 328
 	$(LD) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
332 329
 
... ...
@@ -61,6 +61,8 @@ FFLDFLAGS   := $(addprefix -L$(BUILD_ROOT)/lib,$(ALLFFLIBS)) $(LDFLAGS)
61 61
 EXAMPLES  := $(addprefix $(SUBDIR),$(addsuffix -example$(EXESUF),$(EXAMPLES)))
62 62
 OBJS      := $(addprefix $(SUBDIR),$(OBJS))
63 63
 TESTPROGS := $(addprefix $(SUBDIR),$(addsuffix -test$(EXESUF),$(TESTPROGS)))
64
+HOSTOBJS  := $(addprefix $(SUBDIR),$(addsuffix .o,$(HOSTPROGS)))
65
+HOSTPROGS := $(addprefix $(SUBDIR),$(addsuffix $(HOSTEXESUF),$(HOSTPROGS)))
64 66
 
65 67
 DEP_LIBS := $(foreach NAME,$(FFLIBS),$(BUILD_ROOT_REL)/lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME))
66 68
 
... ...
@@ -68,6 +70,12 @@ ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)
68 68
 SKIPHEADERS = $(addprefix $(SUBDIR),$(SKIPHEADERS-))
69 69
 checkheaders: $(filter-out $(SKIPHEADERS:.h=.ho),$(ALLHEADERS:.h=.ho))
70 70
 
71
+$(HOSTOBJS): %.o: %.c
72
+	$(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
73
+
74
+$(HOSTPROGS): %$(HOSTEXESUF): %.o
75
+	$(HOSTCC) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS)
76
+
71 77
 DEPS := $(OBJS:.o=.d)
72 78
 depend dep: $(DEPS)
73 79
 
... ...
@@ -685,17 +685,16 @@ TESTPROGS = cabac dct eval fft h264 iirfilter rangecoder snow
685 685
 TESTPROGS-$(ARCH_X86) += x86/cpuid
686 686
 TESTPROGS-$(HAVE_MMX) += motion
687 687
 
688
+HOSTPROGS = costablegen
689
+
688 690
 DIRS = alpha arm bfin mlib ppc ps2 sh4 sparc x86
689 691
 
690
-CLEANFILES = sin_tables.c cos_tables.c costablegen$(HOSTEXESUF) *_tables.h *_tablegen$(HOSTEXESUF)
692
+CLEANFILES = sin_tables.c cos_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
691 693
 
692 694
 include $(SUBDIR)../subdir.mak
693 695
 
694 696
 $(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o
695 697
 
696
-$(SUBDIR)costablegen$(HOSTEXESUF): $(SUBDIR)costablegen.c
697
-	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS)
698
-
699 698
 $(SUBDIR)cos_tables.c: $(SUBDIR)costablegen$(HOSTEXESUF)
700 699
 	./$< > $@
701 700
 
... ...
@@ -36,7 +36,8 @@ $(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm
36 36
 
37 37
 clean::
38 38
 	rm -f $(addprefix $(SUBDIR),*-example$(EXESUF) *-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
39
-	    $(addprefix $(SUBDIR), $(foreach suffix,$(CLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS))))
39
+	    $(addprefix $(SUBDIR), $(foreach suffix,$(CLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS)))) \
40
+	    $(HOSTOBJS) $(HOSTPROGS)
40 41
 
41 42
 distclean:: clean
42 43
 	rm -f  $(addprefix $(SUBDIR),$(DISTCLEANSUFFIXES)) \