| #************************************************************** |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #************************************************************** |
| |
| |
| |
| PRJ=. |
| |
| PRJNAME=ooo_mozab |
| TARGET=ooo_mozab |
| |
| # --- Settings ----------------------------------------------------- |
| |
| .INCLUDE : settings.mk |
| |
| # --- Files -------------------------------------------------------- |
| |
| .IF "$(WITH_MOZILLA)"=="NO" |
| |
| all: |
| @echo Support for mozilla is disabled. |
| |
| .ELIF "$(BUILD_MOZAB)"=="" |
| |
| all: |
| @echo Use of internal mozilla is disabled. |
| |
| .ELSE |
| |
| |
| # ----- pkg-config start ------- |
| .INCLUDE .IGNORE : pkgroot.mk |
| .IF "$(PKGCONFIG_ROOT)"!="" |
| PKG_CONFIG:=$(PKGCONFIG_ROOT)$/bin$/pkg-config |
| PKG_CONFIG_PATH:=$(PKGCONFIG_ROOT)$/lib$/pkgconfig |
| .IF "$(LD_LIBRARY_PATH)"=="" # assume empty implies unset |
| LD_LIBRARY_PATH!:=$(PKGCONFIG_ROOT)$/lib |
| .ELSE |
| LD_LIBRARY_PATH!:=$(LD_LIBRARY_PATH)$(PATH_SEPERATOR)$(PKGCONFIG_ROOT)$/lib |
| .ENDIF |
| .EXPORT : PKG_CONFIG_PATH PKG_CONFIG LD_LIBRARY_PATH |
| .ENDIF # "$(PKGCONFIG_ROOT)"!="" |
| |
| # reduce prerequisites by disabling mozilla binary |
| DISABLE_MOZ_EXECUTABLE=TRUE |
| .EXPORT : DISABLE_MOZ_EXECUTABLE |
| |
| .IF "$(SYSBASE)"!="" && "$(OS)" == "LINUX" |
| ## hmm... rather gcc specific switches... |
| CFLAGS:=-isystem $(SYSBASE)/usr/include -B$(SYSBASE)/usr/lib |
| LDFLAGS:= -Wl,--unresolved-symbols=ignore-in-shared-libs -L$(SYSBASE)/lib -L$(SYSBASE)/usr/lib -L$(SYSBASE)/usr/X11R6/lib |
| SYSBASE_X11:=--x-includes=$(SYSBASE)/usr/include/X11 --x-libraries=$(SYSBASE)/usr/X11R6/lib |
| MOZ_ENABLE_COREXFONTS=1 |
| MOZILLA_CONFIGURE_FLAGS +=--disable-xft |
| .EXPORT : CFLAGS LDFLAGS MOZ_ENABLE_COREXFONTS |
| .ENDIF # "$(SYSBASE)"!="" && "$(OS)" == "LINUX" |
| |
| .IF "$(SYSBASE)"!="" && "$(OS)" == "MACOSX" |
| PKGCONFIG_ROOT!:=$(ENV_ROOT)$/macports-1.7.0 |
| PKG_CONFIG:=$(PKGCONFIG_ROOT)$/bin$/pkg-config |
| PKG_CONFIG_PATH:=$(PKGCONFIG_ROOT)$/lib$/pkgconfig |
| .EXPORT : PKG_CONFIG_PATH PKG_CONFIG |
| # hmm... rather gcc specific switches... |
| CFLAGS:=-isystem $(SYSBASE)/usr/include -B$(SYSBASE)/usr/lib -B$(SYSBASE)/usr/lib/system -L$(ENV_ROOT)/macports-1.7.0/lib -lmathCommon |
| LDFLAGS:=-L$(SYSBASE)/lib -L$(SYSBASE)/usr/lib -L$(SYSBASE)/usr/lib/system |
| XLDOPTS:= -B$(SYSBASE)/usr/lib -B$(SYSBASE)/usr/lib/system -lmathCommon |
| .EXPORT : CFLAGS LDFLAGS XLDOPTS |
| .ENDIF # "$(SYSBASE)"!="" && "$(OS)" == "MACOSX" |
| |
| # ----- pkg-config end ------- |
| |
| MOZILLA_VERSION=1.1.14 |
| TARFILE_NAME=seamonkey-$(MOZILLA_VERSION).source |
| TARFILE_MD5=a169ab152209200a7bad29a275cb0333 |
| |
| TARFILE_ROOTDIR=mozilla |
| PATCH_FILES = \ |
| seamonkey-source-$(MOZILLA_VERSION).patch \ |
| patches/gcc46.patch \ |
| patches/dtoa.patch \ |
| patches/respect_disable_pango.patch \ |
| patches/arm_build_fix.patch \ |
| patches/link_fontconfig.patch \ |
| patches/brokenmakefile.patch |
| |
| .IF "$(OS)"=="LINUX" |
| PATCH_FILES+=patches/nss_linux.patch |
| .ENDIF |
| |
| # This file is needed for the W32 build when BUILD_MOZAB is set |
| # (currently only vc8/vs2005 is supported when BUILD_MOZAB is set) |
| .IF "$(COM)"=="GCC" |
| LIBIDL_VC71_ZIPFILE_NAME*=vc71-libIDL-0.6.8-bin.zip |
| LIBGLIB_VC71_ZIPFILE_NAME*=vc71-glib-1.2.10-bin.zip |
| MOZTOOLS_ZIPFILE_NAME*=wintools.zip |
| .ELSE |
| MOZTOOLS_ZIPFILE_NAME*=vc8-moztools.zip |
| .ENDIF |
| |
| ADDITIONAL_FILES=mailnews$/addrbook$/src$/nsAbMD5sum.cpp |
| |
| CONFIGURE_DIR= |
| .IF "$(GUIBASE)"!="aqua" |
| MOZILLA_CONFIGURE_FLAGS += $(SYSBASE_X11) |
| .ENDIF |
| |
| MOZILLA_CONFIGURE_FLAGS += --disable-tests \ |
| --enable-application=suite \ |
| --enable-ldap \ |
| --enable-crypto \ |
| --enable-optimize \ |
| --enable-strip \ |
| --disable-profilelocking \ |
| --disable-activex \ |
| --disable-activex-scripting \ |
| --disable-gnomevfs \ |
| --disable-debug \ |
| --disable-xprint \ |
| --disable-postscript \ |
| --without-system-zlib \ |
| --disable-installer \ |
| --disable-accessibility \ |
| --disable-xpfe-components \ |
| --disable-mathml \ |
| --disable-oji \ |
| --disable-profilesharing \ |
| --disable-boehm \ |
| --disable-jsloader \ |
| --disable-canvas \ |
| --disable-freetype2 \ |
| --disable-gnomeui \ |
| --disable-image-encoders \ |
| --disable-plugins \ |
| --disable-printing \ |
| --disable-pango \ |
| --enable-extensions="pref" |
| |
| #.IF "$(GUI)"!="WNT" |
| #MOZILLA_CONFIGURE_FLAGS += --enable-system-cairo |
| #.ENDIF |
| |
| #disable profilelocking to share profile with mozilla |
| #disable activex and activex-scripting to remove the dependence of Microsoft_SDK\src\mfc\atlbase.h |
| #disable gnomevfs to remove the needed of gnome develop files |
| #disable others to save build times |
| |
| .IF "$(GUI)"=="UNX" |
| .IF "$(GUIBASE)"=="aqua" |
| MACDEVSDK*=/Developer/SDKs/MacOSX10.4u.sdk |
| MOZILLA_CONFIGURE_FLAGS+= \ |
| --with-macos-sdk=$(MACDEVSDK) \ |
| --disable-glibtest \ |
| --enable-macos-target=10.4 \ |
| --disable-libxul |
| DEFAULT_MOZILLA_TOOLKIT=mac |
| .ELSE |
| #We do not need mozilla ui, but libIDL version are decided by default toolkit. |
| #default-toolkit=xlib need libIDL < 0.68 |
| #default-toolkit=gtk2 need libIDL > 0.8 (know as libIDL2) |
| DEFAULT_MOZILLA_TOOLKIT*=gtk2 |
| .ENDIF # "$(GUIBASE)"=="aqua" |
| MOZILLA_CONFIGURE_FLAGS+= --enable-default-toolkit=$(DEFAULT_MOZILLA_TOOLKIT) |
| .ENDIF |
| |
| # create a objdir build = build files in a seperate directory, not in the sourcetree directly |
| CONFIGURE_DIR=$(CPU)_objdir |
| BUILD_DIR=$(CONFIGURE_DIR) |
| MOZ_CROSSCOMPILE=CROSS_COMPILE=1 CC="$(CC) -arch $(MOZ_ARCH)" CXX="$(CXX) -arch $(MOZ_ARCH)" AR=ar |
| |
| CONFIGURE_ACTION=$(null,$(MOZ_ARCH) $(NULL) $(MOZ_CROSSCOMPILE)) ../configure $(MOZILLA_CONFIGURE_FLAGS) |
| |
| BUILD_ACTION:=$(GNUMAKE) -j$(EXTMAXPROCESS) |
| |
| .IF "$(GUI)"=="UNX" |
| .IF "$(COMNAME)"=="sunpro5" |
| CXXFLAGS:=-features=tmplife |
| .IF "$(CPU)"=="U" |
| CXXFLAGS+=-m64 |
| .ENDIF |
| .EXPORT : CXXFLAGS |
| .ENDIF # "$(COMNAME)"=="sunpro5" |
| .IF "$(COM)$(OS)$(CPUNAME)" == "GCCLINUXPOWERPC64" |
| CXXFLAGS:=-mminimal-toc |
| .EXPORT : CXXFLAGS |
| .ENDIF |
| .ENDIF |
| |
| .IF "$(OS)"=="SOLARIS" && "$(CPUNAME)"=="SPARC" && "$(CPU)"=="U" |
| PKG_CONFIG_PATH=/usr/lib/64/pkgconfig |
| .EXPORT: PKG_CONFIG_PATH |
| MAKE=/usr/sfw/bin/gmake |
| .EXPORT: MAKE |
| CFLAGS=-I/usr/sfw/include |
| .EXPORT: CFLAGS |
| .ENDIF |
| .IF "$(COM)"=="C52" && "$(CPUNAME)"=="SPARC" && "$(CPU)"=="U" |
| CFLAGS=-m64 |
| ASFLAGS=-m64 |
| .EXPORT: CFLAGS ASFLAGS |
| .ENDIF |
| |
| MOZDIR=$(MISC)$/build$/seamonkey |
| MOZTARGET=$(OS)$(COM)$(CPU) |
| |
| .IF "$(GUI)"=="WNT" |
| # "Our" build environment uses "NO" for the environment variable that |
| # indicate if system libraries should be used, the mozilla build uses |
| # "" in this case. This conflicts (at least for W32) with mozilla (1.7b) |
| # because it disables the library checks for msvc so that |
| # --without-system-* is not evaluated. To build the included libraries |
| # the affected variables have to be empty and not NO. |
| .IF "$(SYSTEM_ZLIB)"=="NO" |
| SYSTEM_ZLIB:= |
| .EXPORT : SYSTEM_ZLIB |
| .ENDIF |
| .IF "$(SYSTEM_JPEG)"=="NO" |
| SYSTEM_JPEG:= |
| .EXPORT : SYSTEM_JPEG |
| .ENDIF |
| |
| # For W32-tcsh CC and CXX must not contain the wrapper, and W32-4nt ( in |
| # some cases ) doesn't work with DOS path notation when building mozilla. |
| .IF "$(COM)"=="GCC" |
| CC:=$(CC:s/guw.exe //:s/ -mno-cygwin//) |
| CXX:=$(CXX:s/guw.exe //:s/ -mno-cygwin//) |
| CPP:=$(CC) -E |
| LD:=ld |
| LIBS:=-lsupc++ |
| .EXPORT : CPP LIBS |
| .ELSE |
| CC:=cl.exe |
| CXX:=cl.exe |
| .ENDIF |
| |
| # Variables to install/use our own wintools |
| .IF "$(COM)"=="GCC" |
| MOZTOOLSUNPACK:=$(MISC)$/build$/moztoolsunpack |
| MOZTOOLSINST:=$(MISC)$/build$/moztoolsinst |
| .ELSE |
| MOZTOOLS_EXTRACT:=$(MISC)$/build$/moztools |
| .ENDIF |
| .IF "$(COM)"=="GCC" |
| MOZ_TOOLS_DOS:=$(shell @cygpath -ad "$(MISC)")\build\moztoolsinst |
| PATH!:=$(PATH):$(shell @cygpath $(MOZ_TOOLS_DOS))/bin:$(shell @cygpath $(MOZ_TOOLS_DOS))/vc71/bin |
| SET_MOZ_TOOLS_INSTALL_BAT:=export "MOZ_TOOLS=$(MOZ_TOOLS_DOS)" |
| .ELSE |
| MOZ_TOOLS_DOS:=$(shell @cygpath -ad "$(MISC)")\build\moztools\vc8-moztools |
| PATH!:=$(shell @cygpath $(MOZ_TOOLS_DOS))/bin:$(PATH) |
| .ENDIF |
| |
| MOZ_TOOLS:=$(subst,\,/ $(MOZ_TOOLS_DOS)) |
| .IF "$(COM)"=="GCC" |
| GLIB_PREFIX:=$(MOZ_TOOLS)/vc71 |
| LIBIDL_PREFIX:=$(MOZ_TOOLS)/vc71 |
| .EXPORT : GLIB_PREFIX LIBIDL_PREFIX |
| .ENDIF |
| |
| .EXPORT : PATH MOZ_TOOLS |
| .ENDIF # "$(GUI)"=="WNT" |
| |
| # --- Targets ------------------------------------------------------ |
| |
| .INCLUDE : set_ext.mk |
| .INCLUDE : target.mk |
| .INCLUDE : tg_ext.mk |
| |
| .IF "$(GUI)"=="WNT" |
| NEEDWINTOOLSFLAGFILE:=$(MISC)$/build$/moztools.complete |
| .ENDIF # "$(GUI)"=="WNT" |
| |
| ALLTAR: $(NEEDWINTOOLSFLAGFILE) \ |
| $(MISC)$/remove_build.flag \ |
| extract_mozab_files |
| |
| $(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE) : $(MISC)$/remove_build.flag |
| |
| # Since you never know what will be in a patch (for example, it may already |
| # patch at configure level), we remove the entire package directory if a patch |
| # is newer. |
| $(MISC)$/remove_build.flag : $(PATCH_FILES) |
| $(REMOVE_PACKAGE_COMMAND) |
| $(TOUCH) $(MISC)$/remove_build.flag |
| |
| # Unpack/setup Windows build tools |
| .IF "$(GUI)"=="WNT" |
| $(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE) : $(MISC)$/build$/moztools.complete |
| |
| .IF "$(COM)"=="GCC" |
| $(MISC)$/build$/moztools.unpack : $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME) |
| -$(RENAME) $(MOZTOOLSUNPACK) $(MOZTOOLSUNPACK)_removeme |
| -$(RENAME) $(MOZTOOLSINST) $(MOZTOOLSINST)_removeme |
| -rm -rf $(MOZTOOLSUNPACK)_removeme $(MOZTOOLSINST)_removeme |
| @-$(MKDIRHIER) $(MOZTOOLSUNPACK) |
| unzip $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME) -d $(MOZTOOLSUNPACK) |
| $(TOUCH) $(MISC)$/build$/moztools.unpack |
| |
| $(MISC)$/build$/moztools.install : $(MISC)$/build$/moztools.unpack |
| cd $(MOZTOOLSUNPACK)$/buildtools$/windows && $(SET_MOZ_TOOLS_INSTALL_BAT) && cmd /c install.bat |
| $(TOUCH) $(MISC)$/build$/moztools.install |
| |
| $(MISC)$/build$/moztools.complete : \ |
| $(MISC)$/build$/moztools.install \ |
| $(PRJ)$/download$/$(LIBIDL_VC71_ZIPFILE_NAME) \ |
| $(PRJ)$/download$/$(LIBGLIB_VC71_ZIPFILE_NAME) |
| unzip $(PRJ)$/download$/$(LIBIDL_VC71_ZIPFILE_NAME) -d $(MOZTOOLSINST) |
| unzip $(PRJ)$/download$/$(LIBGLIB_VC71_ZIPFILE_NAME) -d $(MOZTOOLSINST) |
| # chmod is also needed for W32-4nt build (when cygwin unzip is used) |
| -chmod -R +x $(MOZTOOLSINST)$/vc71$/bin |
| $(TOUCH) $(MISC)$/build$/moztools.complete |
| .ELSE |
| $(MISC)$/build$/moztools.unpack : $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME) |
| -$(RENAME) $(MOZTOOLS_EXTRACT) $(MOZTOOLS_EXTRACT)_removeme |
| -rm -rf $(MOZTOOLS_EXTRACT)_removeme |
| @-$(MKDIRHIER) $(MOZTOOLS_EXTRACT) |
| unzip $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME) -d $(MOZTOOLS_EXTRACT) |
| # chmod is also needed for W32-4nt build (when cygwin unzip is used) |
| -chmod -R +x $(MOZTOOLS_EXTRACT)$/vc8-moztools$/bin |
| $(TOUCH) $(MISC)$/build$/moztools.unpack |
| |
| $(MISC)$/build$/moztools.complete : $(MISC)$/build$/moztools.unpack |
| $(TOUCH) $(MISC)$/build$/moztools.complete |
| .ENDIF |
| .ENDIF # "$(GUI)"=="WNT" |
| |
| zip: \ |
| $(MISC)$/CREATETARBALL |
| |
| .IF "$(GUIBASE)"=="aqua" |
| MOZ_ARCH=$(eq,$(CPU),I i386 ppc) |
| MOZILLA_CONFIGURE_FLAGS+=$(eq,$(CPU),I --target=i386-apple-darwin8 --target=powerpc-apple-darwin8) |
| |
| force_clean : |
| @$(IFEXIST) $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE) $(THEN) echo 'ERROR: get rid of your outputdir first (or refactor the makefiles to allow incremental creation of prebuilt zips). Remember to copy already created zips to a safe place '; exit 1 $(FI) |
| |
| zip_intel .SEQUENTIAL: force_clean $(MISC)$/CREATETARBALL |
| |
| zip_ppc .SEQUENTIAL: force_clean $(MISC)$/CREATETARBALL |
| |
| # target-conditionals, when building target -> Macro is set |
| zip_intel ?= MOZ_ARCH=i386 |
| zip_intel ?= MOZILLA_CONFIGURE_FLAGS+=--target=i386-apple-darwin8 |
| zip_intel ?= CPU=I |
| |
| zip_ppc ?= MOZ_ARCH=ppc |
| zip_ppc ?= MOZILLA_CONFIGURE_FLAGS+=--target=powerpc-apple-darwin8 |
| zip_ppc ?= CPU=P |
| |
| zip_universal: $(OUT)$/zipped$/$(OS)$(COM)UBinc.zip $(OUT)$/zipped$/$(OS)$(COM)UBlib.zip $(OUT)$/zipped$/$(OS)$(COM)UBruntime.zip |
| @echo "All zips created successfully - copy from $(OUT)$/zipped to \$$SRC_ROOT/moz/zipped and use --disable-build-mozilla to use them" |
| |
| $(OUT)$/zipped$/$(OS)$(COM)UBinc.zip : zipped$/$(OS)$(COM)Pinc.zip zipped$/$(OS)$(COM)Iinc.zip |
| @echo "setting up for $@" |
| @rm -rf $(MISC)$/UB_inc |
| @$(MKDIRHIER) $(MISC)$/UB_inc$/intel |
| @$(MKDIR) $(MISC)$/UB_inc$/ppc |
| @$(MKDIR) $(MISC)$/UB_inc$/uni |
| @unzip -q zipped$/$(OS)$(COM)Pinc.zip -d $(MISC)$/UB_inc$/ppc |
| @unzip -q zipped$/$(OS)$(COM)Iinc.zip -d $(MISC)$/UB_inc$/intel |
| # use one of the two as basis for the universal one - (saves manually creating directories/copying identical files) |
| @unzip -q zipped$/$(OS)$(COM)Pinc.zip -d $(MISC)$/UB_inc$/uni |
| # add safety-warning to host-autogenerated headers (aren't used anywhere in OOo currently, but doesn't hurt to be safe |
| # bail out on everything that differs and is not a *.h file |
| @echo "flagging endian-specific headers with #error.." |
| @diff --brief -r $(MISC)$/UB_inc$/ppc $(MISC)$/UB_inc$/intel | awk \ |
| '/^Only in/ {{print; print "ERROR - file sets differ!"; exit 1}} \ |
| /^Files .*\.h differ$$/ {{target="$(MISC)$/UB_inc$/uni$/" substr($$2,length("$(MISC)$/UB_inc$/ppc")+2); \ |
| system("echo \"#error use native moz-zips, this header is endian-specific!\" | cat - " $$2 " > " target); next}} \ |
| {{print; print "ERROR - unexpected files encountered!"; exit 2}}' |
| @cd $(MISC)$/UB_inc$/uni ; zip -q -r ..$/$(@:f) * |
| @$(MKDIRHIER) $(@:d) |
| @$(MV) $(MISC)$/UB_inc$/$(@:f) $@ |
| @echo "successfully created $@" |
| |
| $(OUT)$/zipped$/$(OS)$(COM)UBlib.zip : zipped$/$(OS)$(COM)Plib.zip zipped$/$(OS)$(COM)Ilib.zip |
| @echo "setting up for $@" |
| @rm -rf $(MISC)$/UB_lib |
| @$(MKDIRHIER) $(MISC)$/UB_lib$/intel |
| @$(MKDIR) $(MISC)$/UB_lib$/ppc |
| @$(MKDIR) $(MISC)$/UB_lib$/uni |
| @unzip -q zipped$/$(OS)$(COM)Plib.zip -d $(MISC)$/UB_lib$/ppc |
| @unzip -q zipped$/$(OS)$(COM)Ilib.zip -d $(MISC)$/UB_lib$/intel |
| # use lipo on .a and .dylib files - bail out on anything else |
| @echo "creating universal binaries from libs..." |
| @diff --brief -s -r $(MISC)$/UB_lib$/ppc $(MISC)$/UB_lib$/intel | awk \ |
| '/^Only in/ {{print "ERROR - file sets differ!"; print; exit 1}} \ |
| /^Files .*\.(a|dylib) differ$$/ {{target="$(MISC)$/UB_lib$/uni$/" substr($$2,length("$(MISC)$/UB_lib$/ppc")+2); \ |
| if(0!=system("lipo -create -arch ppc "$$2" -arch i386 "$$4" -output " target)) exit 11; next}} \ |
| {{print; print "ERROR - unexpected files encountered!"; exit 2}}' |
| @cd $(MISC)$/UB_lib$/uni ; zip -q -r ..$/$(@:f) * |
| @$(MKDIRHIER) $(@:d) |
| @$(MV) $(MISC)$/UB_lib$/$(@:f) $@ |
| @echo "successfully created $@" |
| |
| $(OUT)$/zipped$/$(OS)$(COM)UBruntime.zip : zipped$/$(OS)$(COM)Pruntime.zip zipped$/$(OS)$(COM)Iruntime.zip |
| @echo "setting up for $@" |
| @rm -rf $(MISC)$/UB_runtime |
| @$(MKDIRHIER) $(MISC)$/UB_runtime$/intel |
| @$(MKDIR) $(MISC)$/UB_runtime$/ppc |
| @$(MKDIR) $(MISC)$/UB_runtime$/uni |
| @unzip -q zipped$/$(OS)$(COM)Pruntime.zip -d $(MISC)$/UB_runtime$/ppc |
| @unzip -q zipped$/$(OS)$(COM)Iruntime.zip -d $(MISC)$/UB_runtime$/intel |
| # use one of the two as basis for the universal one - (saves manually creating directories/copying identical files) |
| @unzip -q zipped$/$(OS)$(COM)Pruntime.zip -d $(MISC)$/UB_runtime$/uni |
| # @line -comments in autogenerated files: contains path of source-file, ignore different objdirs |
| @echo "creating universal binaries from libs..." |
| @diff --brief -I "^//@line [0-9][0-9]*" -r $(MISC)$/UB_runtime$/ppc $(MISC)$/UB_runtime$/intel | awk \ |
| '/^Only in/ {{print; print "ERROR - file sets differ!"; exit 1}} \ |
| /^Files .*\.dylib differ$$/ {{target="$(MISC)$/UB_runtime$/uni$/" substr($$2,length("$(MISC)$/UB_runtime$/ppc")+2); \ |
| if(0!=system("lipo -create -arch ppc "$$2" -arch i386 "$$4" -output " target)) exit 11; next}} \ |
| {{print; print "ERROR - unexpected files encountered!"; exit 2}}' |
| @cd $(MISC)$/UB_lib$/uni ; zip -q -r ..$/$(@:f) * |
| @$(MKDIRHIER) $(@:d) |
| @$(MV) $(MISC)$/UB_lib$/$(@:f) $@ |
| @echo "successfully created $@" |
| |
| .ENDIF # $(GUIBASE)=="aqua" |
| |
| .INCLUDE : extractfiles.mk |
| |
| .ENDIF |