OSDN Git Service

BuildSystem: fix darwin/xcode to avoid double-configure/build after svn up
authorkonablend <konablend@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sun, 19 Apr 2009 01:47:13 +0000 (01:47 +0000)
committerkonablend <konablend@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sun, 19 Apr 2009 01:47:13 +0000 (01:47 +0000)
- build system automagically rebuilds certain files from libhb upwards after
  an svn up to maintain accurate repository information in binaries; if building
  with xcode the process was inadvertantly repeated on subsequent 'make'.
- enhanced make/xcodemake to record the user's environment when shunted through
  xcode. this should help in diagnosing build issues from Xcode.app in the future.

git-svn-id: svn://localhost/HandBrake/trunk@2344 b64f7644-9d1e-0410-96f1-a4d463321fa5

make/configure.py
make/include/main.rules
make/xcodemake

index ba08941..8c33bec 100644 (file)
@@ -1248,9 +1248,9 @@ try:
     else:
         doc.add( 'BUILD.cross.prefix', '' )
 
-    doc.add( 'BUILD.method',       'terminal' )
-    doc.add( 'BUILD.date',         time.strftime('%c') )
-    doc.add( 'BUILD.arch',         arch.mode.mode )
+    doc.add( 'BUILD.method', 'terminal' )
+    doc.add( 'BUILD.date',   time.strftime('%c') )
+    doc.add( 'BUILD.arch',   arch.mode.mode )
 
     doc.addBlank()
     doc.add( 'CONF.method', options.conf_method )
index 2b288ab..132567c 100644 (file)
@@ -4,7 +4,8 @@
 ###############################################################################
 
 ## file-wide conditional to use xcode rules if xcode=1 method=terminal
-ifeq ($(FEATURE.xcode):$(BUILD.method),1:terminal)
+## xcodemake will set BUILD.method != terminal to prevent infinite recursion
+ifeq (1:terminal,$(FEATURE.xcode):$(BUILD.method))
     include $(SRC/)macosx/module.xcode
 else
 
@@ -40,12 +41,12 @@ include $(MODULES:%=$(SRC/)%/module.rules)
 
 ## target which causes re-configure if project-root is svn update'd
 $(BUILD/)GNUmakefile: $(wildcard $(SRC/).svn/entries)
-       $(SRC/)configure --force $(CONF.args)
+       $(SRC/)configure --force --conf-method=$(CONF.method) $(CONF.args)
 
 ## target useful to force reconfigure; only helpful for build-system development
 .PHONY: reconfigure
 reconfigure:
-       $(SRC/)configure --force $(CONF.args)
+       $(SRC/)configure --force --conf-method=$(CONF.method) $(CONF.args)
 
 ###############################################################################
 
index 4854ec2..93c927c 100755 (executable)
@@ -92,6 +92,14 @@ else
     jobs=--jobs=$EXTERNAL_JOBS
 fi
 
+## log environment as provided by Xcode
+logdir=$EXTERNAL_BUILD/log
+if [ ! -d $logdir ]; then
+    mkdir -p $logdir
+fi
+env | sort > $logdir/xcodemake.env.txt
+
 ## pull the trigger
+## must set BUILD.method != terminal to prevent inifinite recursion
 set -x
 exec make -C $EXTERNAL_BUILD BUILD.method=xcode $jobs $goals $EXTERNAL_VARS