]> git.saurik.com Git - apple/coreosmakefiles.git/blobdiff - ReleaseControl/Common.make
CoreOSMakefiles-63.tar.gz
[apple/coreosmakefiles.git] / ReleaseControl / Common.make
index 25d16a8cdd36e098a9e614c94a1cd8c81a1fba22..0c5fda20e757bd6ca92d9d7487a0356bd59dbcd8 100644 (file)
@@ -45,19 +45,14 @@ include $(CoreOSMakefiles)/Standard/Standard.make
 # Some reasonable defaults for RC variables
 ##
 
-RC_ARCHS   = ppc i386
+RC_ARCHS   = $(shell for i in `file /usr/lib/libSystem.B.dylib | grep 'shared library ' | sed 's|.*shared library ||'`; do $(CC) -arch $$i -E -x c /dev/null > /dev/null 2>&1 && echo $$i; done)
 RC_RELEASE = unknown
 RC_VERSION = unknown
 
-ifeq ($(COPY_SOURCES),YES)
-SRCROOT = /tmp/$(Project)/Sources
-else
-SRCROOT = $(shell pwd)
-endif
-
-OBJROOT = /tmp/$(Project)/Build
-SYMROOT = /tmp/$(Project)/Debug
-DSTROOT = /tmp/$(Project)/Release
+SRCROOT = /tmp/$(ProjectName)/Sources
+OBJROOT = /tmp/$(ProjectName)/Build
+SYMROOT = /tmp/$(ProjectName)/Debug
+DSTROOT = /tmp/$(ProjectName)/Release
 
 ##
 # My variables
@@ -87,27 +82,41 @@ BuildDirectory = $(OBJROOT)
 CC_Archs      = $(RC_ARCHS:%=-arch %)
 #CPP_Defines += -DPROJECT_VERSION=\"$(Project)-$(Version)\"
 
-Extra_CC_Flags += $(RC_CFLAGS)
-
-Environment =   CFLAGS="$(CFLAGS)"     \
-              CCFLAGS="$(CXXFLAGS)"    \
-             CXXFLAGS="$(CXXFLAGS)"    \
-              LDFLAGS="$(LDFLAGS)"     \
-             $(Extra_Environment)
+ifneq "$(strip $(CFLAGS))" ""
+Environment += CFLAGS="$(CFLAGS)"
+endif
+ifneq "$(strip $(CXXFLAGS))" ""
+Environment += CCFLAGS="$(CXXFLAGS)" CXXFLAGS="$(CXXFLAGS)"
+endif
+ifneq "$(strip $(LDFLAGS))" ""
+Environment += LDFLAGS="$(LDFLAGS)"
+endif
+ifneq "$(strip $(CPPFLAGS))" ""
+Environment += CPPFLAGS="$(CPPFLAGS)"
+endif
+Environment += $(Extra_Environment)
 
 VPATH=$(Sources)
 
+ManPageDirectories = /usr/share/man
+
 ##
 # Targets
 ##
 
-.PHONY: all install installhdrs install_headers lazy_installsrc lazy_install_source installsrc install_source build clean recurse
+.PHONY: all install installhdrs install_headers lazy_installsrc lazy_install_source installsrc install_source build clean recurse _targetconfig
 
 all: build
 
 $(DSTROOT): install
 
-install:: install_headers build
+install:: _targetconfig install_headers build
+
+_targetconfig::
+       @PRODUCT="`tconf --product 2>/dev/null`" ; \
+       if [ -z "$$PRODUCT" ]; then \
+       echo "Error: TargetConfig not defined" ; exit 1 ; \
+       else echo "TargetConfig: $$PRODUCT" ; fi
 
 # For RC
 installhdrs:: install_headers
@@ -126,7 +135,7 @@ ifneq ($(wildcard $(PAX)),)
 else
        $(_v) $(TAR) cf - . | (cd "$(SRCROOT)" ; $(TAR) xfp -)
 endif
-       $(_v) $(FIND) "$(SRCROOT)" $(Find_Cruft) | $(XARGS) $(RMDIR)
+       $(_v) $(FIND) "$(SRCROOT)" $(Find_Cruft) -depth -exec $(RMDIR) "{}" \;
 endif
 
 ifndef ShadowTestFile
@@ -152,7 +161,7 @@ build:: lazy_install_source
 
 clean::
        @echo "Cleaning $(Project)..."
-       $(_v) $(RMDIR) -f "$(BuildDirectory)"
+       $(_v) $(RMDIR) -f "$(BuildDirectory)" || true
 
 $(Passed_Targets) $(Extra_Passed_Targets):
        $(_v) umask $(Install_Mask) ; $(MAKE) -C $(BuildDirectory) $(Environment) $@
@@ -161,11 +170,20 @@ recurse:
 ifdef SubProjects
        $(_v) for SubProject in $(SubProjects); do                              \
                $(MAKE) -C $$SubProject $(TARGET)                               \
+                       OBJROOT=$(OBJROOT)                                      \
+                       SYMROOT=$(SYMROOT)                                      \
+                       DSTROOT=$(DSTROOT)                                      \
                        BuildDirectory=$(BuildDirectory)/$${SubProject}         \
                               Sources=$(Sources)/$${SubProject}                \
-                      CoreOSMakefiles=$(CoreOSMakefiles);                      \
+                      CoreOSMakefiles=$(CoreOSMakefiles) || exit 1 ;           \
              done
 endif
 
 rshowvar: showvar
        $(_v) $(MAKE) recurse TARGET=rshowvar
+
+compress_man_pages:
+ifneq "$(strip $(ManPageDirectories))" ""
+       @echo "Compressing man pages for $(Project)..."
+       $(_v) $(COMPRESSMANPAGES) $(ManPageDirectories)
+endif