瀏覽代碼

* make fullcycle added

peter 23 年之前
父節點
當前提交
03c85c0f75
共有 2 個文件被更改,包括 60 次插入18 次删除
  1. 25 10
      compiler/Makefile
  2. 35 8
      compiler/Makefile.fpc

+ 25 - 10
compiler/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2002/08/01]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2002/08/11]
 #
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx
@@ -202,6 +202,7 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/ext
 override PACKAGE_NAME=compiler
 override PACKAGE_VERSION=1.1
 unexport FPC_VERSION
+CYCLETARGETS=i386 powerpc
 ifdef ALPHA
 PPC_TARGET=alpha
 endif
@@ -225,6 +226,7 @@ ifndef PPC_OS
 PPC_OS=$(OS_TARGET)
 endif
 export PPC_OS
+CPU_UNITDIR=.
 UTILSDIR=../utils
 COMPILERUTILSDIR=utils
 ifndef FPCLANG
@@ -252,6 +254,9 @@ endif
 ifeq ($(PPC_TARGET),powerpc)
 CPUSUF=ppc
 endif
+ifeq ($(PPC_TARGET),x86_64)
+CPUSUF=x64
+endif
 NOCPUDEF=1
 ifeq ($(OS_TARGET),linux)
 ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
@@ -289,7 +294,7 @@ override TARGET_DIRS+=utils
 override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=$(PPC_TARGET)
 override COMPILER_UNITDIR+=$(PPC_TARGET) targets
-override COMPILER_TARGETDIR+=.
+override COMPILER_TARGETDIR+=$(CPU_UNITDIR)
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1426,13 +1431,13 @@ MAKEDEP=ppdep$(EXEEXT)
 MSG2INC=./msg2inc$(EXEEXT)
 .PHONY: alpha i386 m68k powerpc
 alpha:
-	$(MAKE) ALPHA=1 all
+	$(MAKE) PPC_TARGET=alpha CPU_UNITDIR=alpha exeonly
 i386:
-	$(MAKE) I386=1 all
+	$(MAKE) PPC_TARGET=i386 CPU_UNITDIR=i386 exeonly
 m68k:
-	$(MAKE) M68K=1 all
+	$(MAKE) PPC_TARGET=m68k CPU_UNITDIR=m68k exeonly
 powerpc:
-	$(MAKE) POWERPC=1 all
+	$(MAKE) PPC_TARGET=powerpc CPU_UNITDIR=powerpc exeonly
 .PHONY: all compiler echotime ppuclean execlean clean distclean
 all: $(EXENAME) $(addsuffix _all,$(TARGET_DIRS))
 compiler: $(EXENAME)
@@ -1456,8 +1461,11 @@ echotime:
 ppuclean:
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 execlean :
-	-$(DEL) fpc$(EXEEXT) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME)
-clean : execlean fpc_cleanall $(addsuffix _clean,$(TARGET_DIRS))
+	-$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME)
+$(addsuffix _clean,$(CYCLETARGETS)):
+	-$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
+	-$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
+clean : execlean fpc_cleanall $(addsuffix _clean,$(TARGET_DIRS)) $(addsuffix _clean,$(CYCLETARGETS))
 distclean: execlean fpc_cleanall $(addsuffix _distclean,$(TARGET_DIRS))
 	-$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
 $(MAKEDEP): $(UTILSDIR)/ppdep.pp
@@ -1468,19 +1476,21 @@ dependencies : $(MAKEDEP)
 ifdef USEDEPEND
 include depend
 endif
+.PHONY: exeonly msg
 $(MSG2INC): $(COMPILERUTILSDIR)/msg2inc.pp
 	$(COMPILER) -FE. $(COMPILERUTILSDIR)/msg2inc.pp
 msgtxt.inc: $(MSGFILE)
 	$(MAKE) $(MSG2INC)
 	$(MSG2INC) $(MSGFILE) msg msg
 msg: msgtxt.inc
+exeonly: $(EXENAME)
 ifndef COMPLETE
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
 	     $(wildcard targets/*.pas) $(wilcard targets/*.inc) \
 	     $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
 	$(COMPILER) pp.pas
 	$(EXECPPAS)
-	$(MOVE) $(PPEXENAME) $(EXENAME)
+	$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
 else
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
 	     $(wildcard targets/*.pas) $(wilcard targets/*.inc) \
@@ -1491,7 +1501,7 @@ $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
 	$(EXECPPAS)
 	$(COMPILER) pp.pas
 	$(EXECPPAS)
-	$(MOVE) $(PPEXENAME) $(EXENAME)
+	$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
 endif
 tokens.dat : $(wildcard *.pas) $(wildcard *.inc)
 	$(COMPILER) tokendat.pas
@@ -1560,6 +1570,11 @@ cycledep:
 	$(MAKE) cycle USEDEPEND=1
 cvstest:
 	$(MAKE) cycle 'LOCALOPT=-n -Se' 'RTLOPTS=-n -Se'
+full: fullcycle
+fullcycle:
+	$(MAKE) cycle
+	$(MAKE) ppuclean
+	$(MAKE) $(filter-out $(PPC_TARGET),$(CYCLETARGETS)) 'FPC=$(BASEDIR)/$(EXENAME)'
 htmldocs:
 	$(PASDOC) -p -h -o html$(PATHSEP)$(PPC_TARGET) -d fpc -d gdb -d $(PPC_TARGET) -u $(PPC_TARGET) $(PPC_TARGET)$(PATHSEP)*.pas targets$(PATHSEP)*.pas *.pas
 .PHONY: quickinstall install installsym

+ 35 - 8
compiler/Makefile.fpc

@@ -10,7 +10,7 @@ version=1.1
 dirs=utils
 
 [compiler]
-targetdir=.
+targetdir=$(CPU_UNITDIR)
 unitdir=$(PPC_TARGET) targets
 includedir=$(PPC_TARGET)
 
@@ -29,6 +29,9 @@ fpcdir=..
 # Don't export version it can change after the first compile
 unexport FPC_VERSION
 
+# Which platforms are ready for inclusion in the cycle
+CYCLETARGETS=i386 powerpc
+
 # Allow ALPHA, POWERPC, M68K, I386 defines for target cpu
 ifdef ALPHA
 PPC_TARGET=alpha
@@ -60,6 +63,9 @@ PPC_OS=$(OS_TARGET)
 endif
 export PPC_OS
 
+# Where to place the unit files.
+CPU_UNITDIR=.
+
 # RTL
 UTILSDIR=../utils
 
@@ -102,6 +108,9 @@ endif
 ifeq ($(PPC_TARGET),powerpc)
 CPUSUF=ppc
 endif
+ifeq ($(PPC_TARGET),x86_64)
+CPUSUF=x64
+endif
 
 # Do not define the default -d$(CPU_TARGET) because that
 # will conflict with our -d$(PPC_TARGET)
@@ -205,16 +214,16 @@ MSG2INC=./msg2inc$(EXEEXT)
 .PHONY: alpha i386 m68k powerpc
 
 alpha:
-        $(MAKE) ALPHA=1 all
+        $(MAKE) PPC_TARGET=alpha CPU_UNITDIR=alpha all
 
 i386:
-        $(MAKE) I386=1 all
+        $(MAKE) PPC_TARGET=i386 CPU_UNITDIR=i386 all
 
 m68k:
-        $(MAKE) M68K=1 all
+        $(MAKE) PPC_TARGET=m68k CPU_UNITDIR=m68k all
 
 powerpc:
-        $(MAKE) POWERPC=1 all
+        $(MAKE) PPC_TARGET=powerpc CPU_UNITDIR=powerpc all
 
 
 #####################################################################
@@ -252,9 +261,13 @@ ppuclean:
         -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 
 execlean :
-        -$(DEL) fpc$(EXEEXT) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME)
+        -$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME)
+
+$(addsuffix _clean,$(CYCLETARGETS)):
+        -$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
+        -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
 
-clean : execlean fpc_cleanall $(addsuffix _clean,$(TARGET_DIRS))
+clean : execlean fpc_cleanall $(addsuffix _clean,$(TARGET_DIRS)) $(addsuffix _clean,$(CYCLETARGETS))
 
 distclean: execlean fpc_cleanall $(addsuffix _distclean,$(TARGET_DIRS))
         -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
@@ -300,7 +313,7 @@ $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
              $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
         $(COMPILER) pp.pas
         $(EXECPPAS)
-        $(MOVE) $(PPEXENAME) $(EXENAME)
+        $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(COMPILER_TARGETDIR)/$(EXENAME)
 else
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
              $(wildcard targets/*.pas) $(wilcard targets/*.inc) \
@@ -439,6 +452,20 @@ cycledep:
 cvstest:
         $(MAKE) cycle 'LOCALOPT=-n -Se' 'RTLOPTS=-n -Se'
 
+##########################
+# Full cycle
+#
+# 1. build a compiler using cycle
+# 2. remove all .ppufiles
+# 3. build all supported cross compilers
+#
+
+full: fullcycle
+
+fullcycle:
+        $(MAKE) cycle
+        $(MAKE) ppuclean
+        $(MAKE) $(CYCLETARGETS) 'FPC=$(BASEDIR)/$(EXENAME)'
 
 #####################################################################
 # Docs