Browse code

enable version.h to be created from subdirs

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

Måns Rullgård authored on 2008/06/20 01:57:38
Showing 4 changed files
... ...
@@ -67,14 +67,6 @@ ffserver_g$(EXESUF): FF_LDFLAGS += $(FFSERVERLDFLAGS)
67 67
 %_g$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
68 68
 	$(CC) $(FF_LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS)
69 69
 
70
-SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
71
-ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
72
-version.h: $(SVN_ENTRIES)
73
-endif
74
-
75
-version.h:
76
-	$(SRC_PATH)/version.sh $(SRC_PATH)
77
-
78 70
 output_example$(EXESUF): output_example.o $(FF_DEP_LIBS)
79 71
 	$(CC) $(CFLAGS) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
80 72
 
... ...
@@ -9,10 +9,16 @@ vpath %.c $(SRC_DIR)
9 9
 vpath %.h $(SRC_DIR)
10 10
 vpath %.S $(SRC_DIR)
11 11
 
12
+ifeq ($(SRC_DIR),$(SRC_PATH_BARE))
13
+BUILD_ROOT_REL = .
14
+else
15
+BUILD_ROOT_REL = ..
16
+endif
17
+
12 18
 ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
13 19
 
14
-CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
15
-         -D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) $(OPTFLAGS)
20
+CFLAGS := -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
21
+          -D_ISOC9X_SOURCE -I$(BUILD_ROOT_REL) -I$(SRC_PATH) $(OPTFLAGS)
16 22
 
17 23
 %.o: %.c
18 24
 	$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
... ...
@@ -34,6 +40,14 @@ CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
34 34
 
35 35
 %$(EXESUF): %.c
36 36
 
37
+SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
38
+ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
39
+$(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES)
40
+endif
41
+
42
+$(BUILD_ROOT_REL)/version.h:
43
+	$(SRC_PATH)/version.sh $(SRC_PATH) $@
44
+
37 45
 install: install-libs install-headers
38 46
 
39 47
 uninstall: uninstall-libs uninstall-headers
... ...
@@ -969,7 +969,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
969 969
 LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
970 970
 
971 971
 # gcc stupidly only outputs the basename of targets with -MM
972
-DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed -e "/^\#.*/d" -e "1s,^,$(@D)/,"'
972
+DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed -e "/^\#.*/d" -e "1s,^,$(@D)/," -e "s,[[:space:]]version\\.h,\$$(BUILD_ROOT_REL)/&,"'
973 973
 
974 974
 # find source path
975 975
 source_path="`dirname \"$0\"`"
... ...
@@ -20,5 +20,5 @@ OLD_REVISION=`cat version.h 2> /dev/null`
20 20
 
21 21
 # Update version.h only on revision changes to avoid spurious rebuilds
22 22
 if test "$NEW_REVISION" != "$OLD_REVISION"; then
23
-    echo "$NEW_REVISION" > version.h
23
+    echo "$NEW_REVISION" > "$2"
24 24
 fi