diff options
Diffstat (limited to 'moz/makefile.mk')
-rw-r--r-- | moz/makefile.mk | 248 |
1 files changed, 6 insertions, 242 deletions
diff --git a/moz/makefile.mk b/moz/makefile.mk index a30c87ec1dcb..e7c8528d6516 100644 --- a/moz/makefile.mk +++ b/moz/makefile.mk @@ -53,20 +53,6 @@ LD_LIBRARY_PATH!:=$(LD_LIBRARY_PATH)$(PATH_SEPERATOR)$(PKGCONFIG_ROOT)$/lib DISABLE_MOZ_EXECUTABLE=TRUE .EXPORT : DISABLE_MOZ_EXECUTABLE -.IF "$(OS)"=="AIX" -LDFLAGS+:=$(LINKFLAGS) $(LINKFLAGSRUNPATH_OOO) -.EXPORT : LDFLAGS -.ENDIF - -.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" # ----- pkg-config end ------- @@ -79,34 +65,20 @@ PATCH_FILES = \ seamonkey-source-$(MOZILLA_VERSION).patch \ patches/dtoa.patch \ patches/respect_disable_pango.patch \ - patches/arm_build_fix.patch \ patches/link_fontconfig.patch \ patches/brokenmakefile.patch \ - patches/aix_build_fix.patch \ patches/libpr0n_build_fix.patch \ - patches/macosx_build_fix.patch \ - patches/nss-linux3.patch \ patches/clang_add_nsCaseInsensitiveStringComparator_default_constructor.patch \ patches/clang_missing_this_pointers.patch \ patches/seamonkey-1.1.14.source-macosx10.6and7.patch \ - patches/ssl-linux-no_as_needed_linker_option.patch # 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 \ @@ -146,19 +118,6 @@ MOZILLA_CONFIGURE_FLAGS += --disable-tests \ MOZILLA_CONFIGURE_FLAGS += \ --with-nss-prefix=$(OUTDIR) \ --with-nspr-prefix=$(OUTDIR) - -.IF "$(OS)"=="MACOSX" -# help the linker to resolve @loader_path to the solver (needed at least for 10.4 / XCode 2.5) -LDFLAGS+=$(foreach,name,$(echo nspr4 nss3 nssutil3 plc4 plds4) -Wl,-dylib_file,@loader_path/lib$(name).dylib:$(OUTDIR)/lib/lib$(name).dylib) -.ENDIF -.ENDIF - -# how can we do it only on Debian/Ubuntu? -.IF "$(OS)"=="LINUX" -.IF "$(COM)"=="GCC" -LDFLAG_NO_AS_NEEDED=-Wl,--no-as-needed -.EXPORT : LDFLAG_NO_AS_NEEDED -.ENDIF .ENDIF #disable profilelocking to share profile with mozilla @@ -166,25 +125,6 @@ LDFLAG_NO_AS_NEEDED=-Wl,--no-as-needed #disable gnomevfs to remove the needed of gnome develop files #disable others to save build times -.IF "$(GUI)"=="UNX" -.IF "$(GUIBASE)"=="aqua" -MOZILLA_CONFIGURE_FLAGS+= \ - --with-macos-sdk=$(MACOSX_SDK_PATH) \ - --disable-glibtest \ - --enable-macos-target=$(MACOSX_DEPLOYMENT_TARGET) \ - --disable-libxul \ - --prefix=/@.__________________________________________________$(EXTRPATH) -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) @@ -194,42 +134,9 @@ CONFIGURE_ACTION=$(null,$(MOZ_ARCH) $(NULL) $(MOZ_CROSSCOMPILE)) ../configure $( 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" -.ENDIF - -.IF "$(COM)" == "GCC" -CXXFLAGS+=-fpermissive -.IF "$(OS)$(CPUNAME)" == "LINUXPOWERPC64" -CXXFLAGS+=-mminimal-toc -.ENDIF -.EXPORT : CXXFLAGS -.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) @@ -245,67 +152,40 @@ 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 ------------------------------------------------------ .IF "$(BUILD_MOZAB)"=="" all: + @echo "Never Build Mozilla but copy runtime files $(MSVC80_DLL_DIR) ." @echo "Never Build Mozilla but copy runtime files." @@-$(MKDIR) $(OUT)$/zipped - $(COPY) $(MOZ_ZIP_INC) $(OUT)$/zipped$/ - $(COPY) $(MOZ_ZIP_LIB) $(OUT)$/zipped$/ - $(COPY) $(MOZ_ZIP_RUNTIME) $(OUT)$/zipped$/ + $(COPY) $(TARFILE_LOCATION)$/$(MOZ_ZIP_INC) $(PRJ)$/zipped$/ + $(COPY) $(TARFILE_LOCATION)$/$(MOZ_ZIP_LIB) $(PRJ)$/zipped$/ + $(COPY) $(TARFILE_LOCATION)$/$(MOZ_ZIP_RUNTIME) $(PRJ)$/zipped$/ +.IF "$(EXTMSV80)"!="" $(COPY) $(MSVC80_MNFST) $(EXTMSV80)$/Microsoft.VC80.CRT.manifest $(COPY) $(MSVC80_DLL_DIR)$/msvcp80.dll $(EXTMSV80)$/ $(COPY) $(MSVC80_DLL_DIR)$/msvcr80.dll $(EXTMSV80)$/ .ENDIF +.ENDIF .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 \ @@ -321,32 +201,8 @@ $(MISC)$/remove_build.flag : $(PATCH_FILES) $(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 @@ -358,100 +214,8 @@ $(MISC)$/build$/moztools.unpack : $(PRJ)$/download$/$(MOZTOOLS_ZIPFILE_NAME) $(MISC)$/build$/moztools.complete : $(MISC)$/build$/moztools.unpack $(TOUCH) $(MISC)$/build$/moztools.complete -.ENDIF -.ENDIF # "$(GUI)"=="WNT" zip: \ $(MISC)$/CREATETARBALL -.IF "$(GUIBASE)"=="aqua" && "$(CREATE_UNIVERSAL_MAC_MOZ_ZIP)"!="" -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 |