diff options
author | Mans Rullgard <mans@mansr.com> | 2011-06-28 18:45:13 +0100 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-06-29 09:14:56 +0100 |
commit | 5e27ec28f0aa263fc6af60ea88677e2c40631920 (patch) | |
tree | b3a4e30d26dad20d77effee6f3ba962da50fbc69 | |
parent | da55ee6ccc05efdd9006bb8c31db9012a3326857 (diff) | |
download | ffmpeg-5e27ec28f0aa263fc6af60ea88677e2c40631920.tar.gz |
build: create output directories as needed
Signed-off-by: Mans Rullgard <mans@mansr.com>
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | common.mak | 6 | ||||
-rwxr-xr-x | configure | 31 | ||||
-rw-r--r-- | doc/Makefile | 3 |
4 files changed, 20 insertions, 27 deletions
@@ -122,9 +122,11 @@ alltools: $(TOOLS) tools/%$(EXESUF): tools/%.o $(LD) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS) -tools/%.o: tools/%.c +tools/%.o: tools/%.c | tools $(CC) $(CPPFLAGS) $(CFLAGS) -c $(CC_O) $< +OBJDIRS += tools + -include $(wildcard tools/*.d) VERSION_SH = $(SRC_PATH)/version.sh @@ -185,6 +187,9 @@ check: test checkheaders include $(SRC_PATH)/doc/Makefile include $(SRC_PATH)/tests/Makefile +$(sort $(OBJDIRS)): + $(Q)mkdir -p $@ + # Dummy rule to stop make trying to rebuild removed or renamed headers %.h: @: diff --git a/common.mak b/common.mak index 19be4a6949..bd210462b9 100644 --- a/common.mak +++ b/common.mak @@ -34,6 +34,12 @@ $(HOSTOBJS): %.o: %.c $(HOSTPROGS): %$(HOSTEXESUF): %.o $(HOSTCC) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS) +$(OBJS): | $(dir $(OBJS)) +$(HOSTOBJS): | $(dir $(HOSTOBJS)) +$(TESTOBJS): | $(dir $(TESTOBJS)) + +OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS)) + CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver DISTCLEANSUFFIXES = *.pc LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp @@ -875,9 +875,9 @@ apply(){ } cp_if_changed(){ - cmp -s "$1" "$2" && - echo "$2 is unchanged" || - cp -f "$1" "$2" + cmp -s "$1" "$2" && echo "$2 is unchanged" && return + mkdir -p "$(dirname $2)" + cp -f "$1" "$2" } # CONFIG_LIST contains configurable options, while HAVE_LIST is for @@ -1675,10 +1675,8 @@ DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -MM' # find source path if test -f configure; then source_path=. - disable source_path_used else source_path=$(cd $(dirname "$0"); pwd) - enable source_path_used echo "$source_path" | grep -q '[[:blank:]]' && die "Out of tree builds are impossible with whitespace in source path." test -e "$source_path/config.h" && @@ -3180,27 +3178,7 @@ echo "License: $license" echo "Creating config.mak and config.h..." -# build tree in object directory if source path is different from current one -if enabled source_path_used; then - DIRS=" - doc - libavcodec - libavcodec/$arch - libavdevice - libavfilter - libavfilter/$arch - libavformat - libavutil - libavutil/$arch - libpostproc - libswscale - libswscale/$arch - tests - tools - " - map 'mkdir -p $v' $DIRS; - $ln_s "$source_path/Makefile" . -fi +test -e Makefile || $ln_s "$source_path/Makefile" . config_files="$TMPH config.mak" @@ -3379,6 +3357,7 @@ version=$3 libs=$4 requires=$5 enabled ${name#lib} || return 0 +mkdir -p $name cat <<EOF > $name/$name.pc prefix=$prefix exec_prefix=\${prefix} diff --git a/doc/Makefile b/doc/Makefile index da46cce647..01960b74b0 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -24,6 +24,9 @@ doc/%.1: TAG = MAN doc/%.1: doc/%.pod $(M)pod2man --section=1 --center=" " --release=" " $< > $@ +$(DOCS): | doc +OBJDIRS += doc + install-progs-$(CONFIG_DOC): install-man install-man: $(MANPAGES) |