From d43b7dd56b2a4bbd6160de296f5af71fee8dce9b Mon Sep 17 00:00:00 2001 From: "mark%moxienet.com" Date: Thu, 23 Feb 2006 19:30:43 +0000 Subject: [PATCH] 322578 Support ppc<->x86 cross builds for Mac OS X. Core cross-compile support. r=bsmedberg r=cls sr=bryner a/1.8=shaver a/1.8.0=dveditz git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@191055 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/Makefile.in | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/mozilla/js/src/Makefile.in b/mozilla/js/src/Makefile.in index 79b9eca7390..1198200e3e4 100644 --- a/mozilla/js/src/Makefile.in +++ b/mozilla/js/src/Makefile.in @@ -373,14 +373,32 @@ ifdef HOST_NSPR_MDCPUCFG HOST_CC := $(HOST_CC) -DMDCPUCFG=$(TARGET_NSPR_MDCPUCFG) endif +ifdef CROSS_COMPILE +# jscpucfg needs to know when it's supposed to produce a config for the target +JSCPUCFG_DEFINES = -DCROSS_COMPILE=1 + +# This is incredibly hacky. Darwin NSPR uses the same MDCPUCFG for multiple +# processors, and determines which processor to configure for based on +# #ifdef i386. This macro is among the NSPR defines, but is also automatically +# defined by the compiler when building for i386. It therefore needs to be +# defined here if targeting i386, and explicitly undefined otherwise. +ifeq ($(OS_ARCH),Darwin) +ifeq ($(TARGET_CPU),powerpc) +DEFINES += -Ui386 +else +DEFINES += -Di386=1 +endif +endif +endif + ifeq ($(OS_ARCH),QNX) ifneq ($(OS_TARGET),NTO) # QNX's compiler apparently can't build a binary directly from a source file. jscpucfg.o: jscpucfg.c Makefile.in - $(HOST_CC) $(HOST_CFLAGS) -c $(DEFINES) $(NSPR_CFLAGS) -o $@ $< + $(HOST_CC) $(HOST_CFLAGS) -c $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) -o $@ $< jscpucfg: jscpucfg.o - $(HOST_CC) $(HOST_CFLAGS) $(DEFINES) -o $@ $< + $(HOST_CC) $(HOST_CFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) -o $@ $< endif else ifeq ($(OS_ARCH),WINCE) @@ -388,7 +406,7 @@ jscpucfg$(HOST_BIN_SUFFIX): echo no need to build jscpucfg $< else jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.c Makefile.in - $(HOST_CC) $(HOST_CFLAGS) $(DEFINES) $(NSPR_CFLAGS) $(OUTOPTION)$@ $< + $(HOST_CC) $(HOST_CFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) $(OUTOPTION)$@ $< endif endif