Przeglądaj źródła

* tests: When cross-testing, if possible, use the "ppc" native compiler to build fpmake. It solves PPU incompatibility errors.

git-svn-id: trunk@44048 -
yury 5 lat temu
rodzic
commit
3a31391c39
2 zmienionych plików z 31 dodań i 12 usunięć
  1. 12 6
      tests/tstunits/Makefile
  2. 19 6
      tests/tstunits/Makefile.fpc

+ 12 - 6
tests/tstunits/Makefile

@@ -1947,20 +1947,26 @@ ifeq ($(OS_TARGET),msdos)
 override TESTOPT+=-CX
 endif
 TESTCOMPILER:=$(FPC) $(TESTOPT)
+FPCFPMAKE=$(NATIVE_FPC)
 ifdef CROSSCOMPILE
 override CROSSOPT:=$(OPT)
 override OPT=
 override BUILDFULLNATIVE=
+DEV_FPC=$(wildcard $(CURDIR)/../../compiler/ppc$(SRCEXEEXT))
+ifneq ($(DEV_FPC), )
+  FPCFPMAKE=$(DEV_FPC)
 endif
+endif
+export FPCFPMAKE
 DUMMYINSTALLDIR=$(BASEDIR)/tmp
 INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
 rtl-stamp.$(FULL_TARGET):
 ifneq ($(inOS2),)
-	$(MAKE) -C ../../rtl all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+	$(MAKE) -C ../../rtl all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC)
 else
-	$(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+	$(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC)
 endif
-	$(MAKE) -C ../../rtl install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+	$(MAKE) -C ../../rtl install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC)
 	$(ECHO) Compiled > rtl-stamp.$(FULL_TARGET)
 cleanrtl:
 	$(DELTREE) $(COMPILER_TARGETDIR)
@@ -1993,11 +1999,11 @@ INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPIL
 PACKAGESDIR=$(FPCDIR)/packages
 packages-stamp.$(FULL_TARGET):
 ifneq ($(inOS2),)
-	$(MAKE) -C ../../packages all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+	$(MAKE) -C ../../packages all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC)
 else
-	$(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+	$(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC)
 endif
-	$(MAKE) -C ../../packages install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+	$(MAKE) -C ../../packages install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC)
 	$(ECHO) Compiled > packages-stamp.$(FULL_TARGET)
 cleanpackages:
 	$(DELTREE) $(COMPILER_TARGETDIR)

+ 19 - 6
tests/tstunits/Makefile.fpc

@@ -36,12 +36,25 @@ override TESTOPT+=-CX
 endif
 TESTCOMPILER:=$(FPC) $(TESTOPT)
 
+FPCFPMAKE=$(NATIVE_FPC)
+
 ifdef CROSSCOMPILE
 override CROSSOPT:=$(OPT)
 override OPT=
 override BUILDFULLNATIVE=
+
+# Check if there is a native compiler (ppc) which is built during building a cross-compiler.
+DEV_FPC=$(wildcard $(CURDIR)/../../compiler/ppc$(SRCEXEEXT))
+ifneq ($(DEV_FPC), )
+  # Use this native compiler to build fpmake, since RTL is already compiled by this compiler
+  # and using an other native compiler may produce PPU incompatibility errors.
+  FPCFPMAKE=$(DEV_FPC)
 endif
 
+endif
+
+export FPCFPMAKE
+
 #############################
 # RTL
 #
@@ -51,11 +64,11 @@ INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPIL
 
 rtl-stamp.$(FULL_TARGET):
 ifneq ($(inOS2),)
-        $(MAKE) -C ../../rtl all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+        $(MAKE) -C ../../rtl all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC)
 else
-        $(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+        $(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC)
 endif
-        $(MAKE) -C ../../rtl install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+        $(MAKE) -C ../../rtl install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC)
         $(ECHO) Compiled > rtl-stamp.$(FULL_TARGET)
 
 cleanrtl:
@@ -108,11 +121,11 @@ PACKAGESDIR=$(FPCDIR)/packages
 
 packages-stamp.$(FULL_TARGET):
 ifneq ($(inOS2),)
-        $(MAKE) -C ../../packages all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+        $(MAKE) -C ../../packages all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)" FPC=$(FPC)
 else
-        $(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+        $(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)' FPC=$(FPC)
 endif
-        $(MAKE) -C ../../packages install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC) FPCFPMAKE=$(NATIVE_FPC)
+        $(MAKE) -C ../../packages install $(INSTALLOPT) OPT= CROSSOPT= FPC=$(FPC)
         $(ECHO) Compiled > packages-stamp.$(FULL_TARGET)
 
 cleanpackages: