From c9e6bc8d49807919db5ea8806588601350bc5a1c Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 4 Dec 2011 15:33:55 +0000 Subject: [PATCH] + support for building jvm-java compiler/rtl via top-level make CPU_TARGET=jvm OS_TARGET=java all ("make install" does not yet fully work: the classes under rtl/units/jvm-java/org/freepascal/rtl aren't installed yet) git-svn-id: branches/jvmbackend@19747 - --- Makefile | 43 ++++++++++++++-- Makefile.fpc | 26 ++++++++-- compiler/Makefile | 56 +++++++++++++++++++-- compiler/Makefile.fpc | 26 ++++++++-- compiler/utils/Makefile | 27 +++++++++- rtl/Makefile | 108 +++++++++++++++++++++------------------- rtl/Makefile.fpc | 1 + rtl/java/Makefile | 4 +- 8 files changed, 222 insertions(+), 69 deletions(-) diff --git a/Makefile b/Makefile index 9a1208e911..a1b701de36 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/11] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/12/04] # default: help -MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux +MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux jvm-java BSDs = freebsd netbsd openbsd darwin UNIXs = linux $(BSDs) solaris qnx haiku LIMIT83fs = go32v2 os2 emx watcom @@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX ifndef CROSSBINDIR ifdef CROSSCOMPILE ifndef DARWIN2DARWIN +ifneq ($(CPU_TARGET),jvm) BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- endif endif endif endif +endif UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) ifeq ($(UNITSDIR),) UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) @@ -329,11 +331,18 @@ endif ifeq ($(CPU_TARGET),armeb) PPSUF=arm endif +ifeq ($(CPU_TARGET),jvm) +PPSUF=jvm +endif ifdef CROSSCOMPILE +ifneq ($(CPU_TARGET),jvm) PPPRE=ppcross else PPPRE=ppc endif +else +PPPRE=ppc +endif PPNEW=$(BASEDIR)/compiler/$(PPPRE)$(PPSUF)$(SRCEXEEXT) endif ifneq ($(wildcard install),) @@ -399,6 +408,7 @@ IDE=1 endif endif endif +BuildOnlyBaseCPUs=jvm ifeq ($(FULL_TARGET),i386-linux) override TARGET_DIRS+=compiler rtl utils packages ide installer endif @@ -588,6 +598,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override TARGET_DIRS+=compiler rtl utils packages ide installer endif +ifeq ($(FULL_TARGET),jvm-java) +override TARGET_DIRS+=compiler rtl utils packages ide installer +endif override INSTALL_FPCPACKAGE=y ifdef REQUIRE_UNITSDIR override UNITSDIR+=$(REQUIRE_UNITSDIR) @@ -940,6 +953,12 @@ EXEEXT=.dol SHAREDLIBEXT=.so SHORTSUFFIX=wii endif +ifeq ($(OS_TARGET),java) +OEXT=.class +ASMEXT=.j +SHAREDLIBEXT=.jar +SHORTSUFFIX=java +endif else ifeq ($(OS_TARGET),go32v1) PPUEXT=.pp1 @@ -2361,6 +2380,14 @@ TARGET_DIRS_PACKAGES=1 TARGET_DIRS_IDE=1 TARGET_DIRS_INSTALLER=1 endif +ifeq ($(FULL_TARGET),jvm-java) +TARGET_DIRS_COMPILER=1 +TARGET_DIRS_RTL=1 +TARGET_DIRS_UTILS=1 +TARGET_DIRS_PACKAGES=1 +TARGET_DIRS_IDE=1 +TARGET_DIRS_INSTALLER=1 +endif ifdef TARGET_DIRS_COMPILER compiler_all: $(MAKE) -C compiler all @@ -2669,7 +2696,13 @@ compiler_cycle: $(MAKE) -C compiler cycle BUILDSTAMP=build-stamp.$(FULL_TARGET) .PHONY: all clean distclean build buildbase install installbase installother zipinstallbase zipinstallotherzipinstall singlezipinstall +ifeq ( $findstring($CPU_TAGET,$BuildOnlyBaseCPUs),) all: build +install: installall +else +all: buildbase +install: installbase +endif clean: $(addsuffix _distclean,$(TARGET_DIRS)) -$(DEL) build-stamp.* -$(DEL) base.build-stamp.* @@ -2698,7 +2731,7 @@ base.$(BUILDSTAMP): $(MAKE) rtl_clean $(CLEANOPTS) $(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS) $(ECHOREDIR) Build > base.$(BUILDSTAMP) -installbase: +installbase: base.$(BUILDSTAMP) $(MKDIR) $(INSTALL_BASEDIR) $(MKDIR) $(INSTALL_BINDIR) $(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS) @@ -2717,9 +2750,11 @@ zipinstallother: ifdef IDE $(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) endif -install: $(BUILDSTAMP) +installall: $(BUILDSTAMP) $(MAKE) installbase $(INSTALLOPTS) +ifeq ( $(findstring($CPU_TARGET, BuildOnlyBaseCPUs)),) $(MAKE) installother $(INSTALLOPTS) +endif singlezipinstall: zipinstall zipinstall: $(BUILDSTAMP) $(MAKE) fpc_zipinstall ZIPTARGET=install FULLZIPNAME=fpc-$(PACKAGE_VERSION).$(TARGETSUFFIX) $(INSTALLOPTS) diff --git a/Makefile.fpc b/Makefile.fpc index 2ab13a38a7..1e36d2956d 100644 --- a/Makefile.fpc +++ b/Makefile.fpc @@ -60,13 +60,21 @@ endif ifeq ($(CPU_TARGET),armeb) PPSUF=arm endif +ifeq ($(CPU_TARGET),jvm) +PPSUF=jvm +endif -# cross compilers uses full cpu_target, not just ppc-suffix. +# cross compilers uses full cpu_target, not just ppc-suffix +# (except if the target cannot run a native compiler) ifdef CROSSCOMPILE +ifneq ($(CPU_TARGET),jvm) PPPRE=ppcross else PPPRE=ppc endif +else +PPPRE=ppc +endif PPNEW=$(BASEDIR)/compiler/$(PPPRE)$(PPSUF)$(SRCEXEEXT) endif @@ -157,6 +165,9 @@ endif endif endif +# CPU targets for which we only build the compiler/rtl +BuildOnlyBaseCPUs=jvm + [rules] .NOTPARALLEL: @@ -206,7 +217,14 @@ BUILDSTAMP=build-stamp.$(FULL_TARGET) .PHONY: all clean distclean build buildbase install installbase installother zipinstallbase zipinstallotherzipinstall singlezipinstall + +ifeq ( $findstring($CPU_TAGET,$BuildOnlyBaseCPUs),) all: build +install: installall +else +all: buildbase +install: installbase +endif clean: $(addsuffix _distclean,$(TARGET_DIRS)) -$(DEL) build-stamp.* @@ -246,7 +264,7 @@ base.$(BUILDSTAMP): $(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS) $(ECHOREDIR) Build > base.$(BUILDSTAMP) -installbase: +installbase: base.$(BUILDSTAMP) # create dirs $(MKDIR) $(INSTALL_BASEDIR) $(MKDIR) $(INSTALL_BINDIR) @@ -272,9 +290,11 @@ ifdef IDE endif -install: $(BUILDSTAMP) +installall: $(BUILDSTAMP) $(MAKE) installbase $(INSTALLOPTS) +ifeq ( $(findstring($CPU_TARGET, BuildOnlyBaseCPUs)),) $(MAKE) installother $(INSTALLOPTS) +endif singlezipinstall: zipinstall zipinstall: $(BUILDSTAMP) diff --git a/compiler/Makefile b/compiler/Makefile index 38aeb25897..27d1876304 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -1,8 +1,8 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/11] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/12/04] # default: all -MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux +MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux jvm-java BSDs = freebsd netbsd openbsd darwin UNIXs = linux $(BSDs) solaris qnx haiku LIMIT83fs = go32v2 os2 emx watcom @@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX ifndef CROSSBINDIR ifdef CROSSCOMPILE ifndef DARWIN2DARWIN +ifneq ($(CPU_TARGET),jvm) BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- endif endif endif endif +endif UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) ifeq ($(UNITSDIR),) UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) @@ -453,6 +455,12 @@ OPTWPOPERFORM+=-Owsymbolliveness endif endif endif +ifeq ($(CPU_TARGET),jvm) +NoNativeBinaries=1 +endif +ifneq ($(OS_TARGET),embedded) +NoNativeBinaries=1 +endif ifeq ($(FULL_TARGET),i386-linux) override TARGET_DIRS+=utils endif @@ -642,6 +650,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override TARGET_DIRS+=utils endif +ifeq ($(FULL_TARGET),jvm-java) +override TARGET_DIRS+=utils +endif ifeq ($(FULL_TARGET),i386-linux) override TARGET_PROGRAMS+=pp endif @@ -831,6 +842,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override TARGET_PROGRAMS+=pp endif +ifeq ($(FULL_TARGET),jvm-java) +override TARGET_PROGRAMS+=pp +endif override INSTALL_FPCPACKAGE=y ifeq ($(FULL_TARGET),i386-linux) override COMPILER_INCLUDEDIR+=$(CPC_TARGET) @@ -1021,6 +1035,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override COMPILER_INCLUDEDIR+=$(CPC_TARGET) endif +ifeq ($(FULL_TARGET),jvm-java) +override COMPILER_INCLUDEDIR+=$(CPC_TARGET) +endif ifeq ($(FULL_TARGET),i386-linux) override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR) endif @@ -1210,6 +1227,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR) endif +ifeq ($(FULL_TARGET),jvm-java) +override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR) +endif ifeq ($(FULL_TARGET),i386-linux) override COMPILER_TARGETDIR+=. endif @@ -1399,6 +1419,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override COMPILER_TARGETDIR+=. endif +ifeq ($(FULL_TARGET),jvm-java) +override COMPILER_TARGETDIR+=. +endif ifeq ($(FULL_TARGET),i386-linux) override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET) endif @@ -1588,6 +1611,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET) endif +ifeq ($(FULL_TARGET),jvm-java) +override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET) +endif ifdef REQUIRE_UNITSDIR override UNITSDIR+=$(REQUIRE_UNITSDIR) endif @@ -1939,6 +1965,12 @@ EXEEXT=.dol SHAREDLIBEXT=.so SHORTSUFFIX=wii endif +ifeq ($(OS_TARGET),java) +OEXT=.class +ASMEXT=.j +SHAREDLIBEXT=.jar +SHORTSUFFIX=java +endif else ifeq ($(OS_TARGET),go32v1) PPUEXT=.pp1 @@ -2553,6 +2585,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) REQUIRE_PACKAGES_RTL=1 endif +ifeq ($(FULL_TARGET),jvm-java) +REQUIRE_PACKAGES_RTL=1 +endif ifdef REQUIRE_PACKAGES_RTL PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_RTL),) @@ -3364,6 +3399,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) TARGET_DIRS_UTILS=1 endif +ifeq ($(FULL_TARGET),jvm-java) +TARGET_DIRS_UTILS=1 +endif ifdef TARGET_DIRS_UTILS utils_all: $(MAKE) -C utils all @@ -3473,7 +3511,11 @@ EXENAME=ppc$(CPUSUF)$(EXEEXT) endif PPEXENAME=pp$(EXEEXT) TEMPNAME=ppc$(SRCEXEEXT) +ifneq ($(CPUSUF),jvm) PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT) +else +PPCROSSNAME=ppc$(CPUSUF)$(SRCEXEEXT) +endif TEMPNAME1=ppc1$(EXEEXT) TEMPNAME2=ppc2$(EXEEXT) TEMPNAME3=ppc3$(EXEEXT) @@ -3670,7 +3712,7 @@ cycle: $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler ifndef CROSSINSTALL $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' rtlclean rtl -ifneq ($(OS_TARGET),embedded) +ifndef NoNativeBinaries $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' cycleclean compiler endif endif @@ -3696,7 +3738,13 @@ PPCCPULOCATION=$(INSTALL_BASEDIR) else PPCCPULOCATION=$(INSTALL_BINDIR) endif -quickinstall: $(addsuffix _install,$(TARGET_DIRS)) +ifndef NoNativeBinaries +quickinstall: quickinstall_withutils +else +quickinstall: quickinstall_base +endif +quickinstall_withutils: $(addsuffix _install,$(TARGET_DIRS)) quickinstall_base +quickinstall_base: ifneq ($(INSTALLEXEFILE),) ifdef UPXPROG -$(UPXPROG) $(INSTALLEXEFILE) diff --git a/compiler/Makefile.fpc b/compiler/Makefile.fpc index b6d7758d5a..5fcee7b9d2 100644 --- a/compiler/Makefile.fpc +++ b/compiler/Makefile.fpc @@ -259,6 +259,14 @@ endif endif endif +# Don't compile a native compiler & utilities for JVM and embedded +# targets +ifeq ($(CPU_TARGET),jvm) +NoNativeBinaries=1 +endif +ifneq ($(OS_TARGET),embedded) +NoNativeBinaries=1 +endif [rules] ##################################################################### @@ -306,7 +314,11 @@ EXENAME=ppc$(CPUSUF)$(EXEEXT) endif PPEXENAME=pp$(EXEEXT) TEMPNAME=ppc$(SRCEXEEXT) +ifneq ($(CPUSUF),jvm) PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT) +else +PPCROSSNAME=ppc$(CPUSUF)$(SRCEXEEXT) +endif TEMPNAME1=ppc1$(EXEEXT) TEMPNAME2=ppc2$(EXEEXT) TEMPNAME3=ppc3$(EXEEXT) @@ -612,8 +624,8 @@ cycle: # ppc (target native) ifndef CROSSINSTALL $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' rtlclean rtl -# building a native compiler for embedded targets is not possible -ifneq ($(OS_TARGET),embedded) +# building a native compiler for JVM and embedded targets is not possible +ifndef NoNativeBinaries $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' cycleclean compiler endif endif @@ -668,8 +680,16 @@ else PPCCPULOCATION=$(INSTALL_BINDIR) endif +ifndef NoNativeBinaries +quickinstall: quickinstall_withutils +else +quickinstall: quickinstall_base +endif + # This will only install the ppcXXX executable, not the message files etc. -quickinstall: $(addsuffix _install,$(TARGET_DIRS)) +quickinstall_withutils: $(addsuffix _install,$(TARGET_DIRS)) quickinstall_base + +quickinstall_base: # Install ppcXXX executable, for a cross installation we install # the ppcrossXXX as ppcXXX. The target native build ppcXXX is not used # for this installation type diff --git a/compiler/utils/Makefile b/compiler/utils/Makefile index 4c7aa316d9..b8b3692c6a 100644 --- a/compiler/utils/Makefile +++ b/compiler/utils/Makefile @@ -1,8 +1,8 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/11] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/12/04] # default: all -MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux +MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux jvm-java BSDs = freebsd netbsd openbsd darwin UNIXs = linux $(BSDs) solaris qnx haiku LIMIT83fs = go32v2 os2 emx watcom @@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX ifndef CROSSBINDIR ifdef CROSSCOMPILE ifndef DARWIN2DARWIN +ifneq ($(CPU_TARGET),jvm) BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- endif endif endif endif +endif UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) ifeq ($(UNITSDIR),) UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) @@ -481,6 +483,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins endif +ifeq ($(FULL_TARGET),jvm-java) +override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins +endif ifeq ($(FULL_TARGET),i386-linux) override CLEAN_UNITS+=ppu crc usubst endif @@ -670,6 +675,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override CLEAN_UNITS+=ppu crc usubst endif +ifeq ($(FULL_TARGET),jvm-java) +override CLEAN_UNITS+=ppu crc usubst +endif override INSTALL_FPCPACKAGE=y ifeq ($(FULL_TARGET),i386-linux) override COMPILER_UNITDIR+=.. @@ -860,6 +868,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override COMPILER_UNITDIR+=.. endif +ifeq ($(FULL_TARGET),jvm-java) +override COMPILER_UNITDIR+=.. +endif ifeq ($(FULL_TARGET),i386-linux) override COMPILER_SOURCEDIR+=.. endif @@ -1049,6 +1060,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override COMPILER_SOURCEDIR+=.. endif +ifeq ($(FULL_TARGET),jvm-java) +override COMPILER_SOURCEDIR+=.. +endif override SHARED_BUILD=n override SHARED_BUILD=n ifdef REQUIRE_UNITSDIR @@ -1402,6 +1416,12 @@ EXEEXT=.dol SHAREDLIBEXT=.so SHORTSUFFIX=wii endif +ifeq ($(OS_TARGET),java) +OEXT=.class +ASMEXT=.j +SHAREDLIBEXT=.jar +SHORTSUFFIX=java +endif else ifeq ($(OS_TARGET),go32v1) PPUEXT=.pp1 @@ -2016,6 +2036,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) REQUIRE_PACKAGES_RTL=1 endif +ifeq ($(FULL_TARGET),jvm-java) +REQUIRE_PACKAGES_RTL=1 +endif ifdef REQUIRE_PACKAGES_RTL PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_RTL),) diff --git a/rtl/Makefile b/rtl/Makefile index a11b6f5e75..b08c1f6624 100644 --- a/rtl/Makefile +++ b/rtl/Makefile @@ -1,5 +1,5 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/11] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/12/04] # default: all MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux jvm-java @@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX ifndef CROSSBINDIR ifdef CROSSCOMPILE ifndef DARWIN2DARWIN +ifneq ($(CPU_TARGET),jvm) BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- endif endif endif endif +endif UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) ifeq ($(UNITSDIR),) UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) @@ -324,9 +326,6 @@ endif ifeq ($(FULL_TARGET),i386-netware) override TARGET_DIRS+=netware endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_DIRS+=wdosx -endif ifeq ($(FULL_TARGET),i386-darwin) override TARGET_DIRS+=darwin endif @@ -468,6 +467,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) override TARGET_DIRS+=linux endif +ifeq ($(FULL_TARGET),jvm-java) +override TARGET_DIRS+=java +endif override INSTALL_FPCPACKAGE=y override INSTALL_CREATEPACKAGEFPC=y ifdef REQUIRE_UNITSDIR @@ -822,6 +824,8 @@ SHAREDLIBEXT=.so SHORTSUFFIX=wii endif ifeq ($(OS_TARGET),java) +OEXT=.class +ASMEXT=.j SHAREDLIBEXT=.jar SHORTSUFFIX=java endif @@ -1772,9 +1776,6 @@ endif ifeq ($(FULL_TARGET),i386-netware) TARGET_DIRS_NETWARE=1 endif -ifeq ($(FULL_TARGET),i386-wdosx) -TARGET_DIRS_WDOSX=1 -endif ifeq ($(FULL_TARGET),i386-darwin) TARGET_DIRS_DARWIN=1 endif @@ -1916,6 +1917,9 @@ endif ifeq ($(FULL_TARGET),mipsel-linux) TARGET_DIRS_LINUX=1 endif +ifeq ($(FULL_TARGET),jvm-java) +TARGET_DIRS_JAVA=1 +endif ifdef TARGET_DIRS_LINUX linux_all: $(MAKE) -C linux all @@ -2366,51 +2370,6 @@ netware: $(MAKE) -C netware all .PHONY: netware_all netware_debug netware_smart netware_release netware_units netware_examples netware_shared netware_install netware_sourceinstall netware_exampleinstall netware_distinstall netware_zipinstall netware_zipsourceinstall netware_zipexampleinstall netware_zipdistinstall netware_clean netware_distclean netware_cleanall netware_info netware_makefiles netware endif -ifdef TARGET_DIRS_WDOSX -wdosx_all: - $(MAKE) -C wdosx all -wdosx_debug: - $(MAKE) -C wdosx debug -wdosx_smart: - $(MAKE) -C wdosx smart -wdosx_release: - $(MAKE) -C wdosx release -wdosx_units: - $(MAKE) -C wdosx units -wdosx_examples: - $(MAKE) -C wdosx examples -wdosx_shared: - $(MAKE) -C wdosx shared -wdosx_install: - $(MAKE) -C wdosx install -wdosx_sourceinstall: - $(MAKE) -C wdosx sourceinstall -wdosx_exampleinstall: - $(MAKE) -C wdosx exampleinstall -wdosx_distinstall: - $(MAKE) -C wdosx distinstall -wdosx_zipinstall: - $(MAKE) -C wdosx zipinstall -wdosx_zipsourceinstall: - $(MAKE) -C wdosx zipsourceinstall -wdosx_zipexampleinstall: - $(MAKE) -C wdosx zipexampleinstall -wdosx_zipdistinstall: - $(MAKE) -C wdosx zipdistinstall -wdosx_clean: - $(MAKE) -C wdosx clean -wdosx_distclean: - $(MAKE) -C wdosx distclean -wdosx_cleanall: - $(MAKE) -C wdosx cleanall -wdosx_info: - $(MAKE) -C wdosx info -wdosx_makefiles: - $(MAKE) -C wdosx makefiles -wdosx: - $(MAKE) -C wdosx all -.PHONY: wdosx_all wdosx_debug wdosx_smart wdosx_release wdosx_units wdosx_examples wdosx_shared wdosx_install wdosx_sourceinstall wdosx_exampleinstall wdosx_distinstall wdosx_zipinstall wdosx_zipsourceinstall wdosx_zipexampleinstall wdosx_zipdistinstall wdosx_clean wdosx_distclean wdosx_cleanall wdosx_info wdosx_makefiles wdosx -endif ifdef TARGET_DIRS_DARWIN darwin_all: $(MAKE) -C darwin all @@ -3086,6 +3045,51 @@ nds: $(MAKE) -C nds all .PHONY: nds_all nds_debug nds_smart nds_release nds_units nds_examples nds_shared nds_install nds_sourceinstall nds_exampleinstall nds_distinstall nds_zipinstall nds_zipsourceinstall nds_zipexampleinstall nds_zipdistinstall nds_clean nds_distclean nds_cleanall nds_info nds_makefiles nds endif +ifdef TARGET_DIRS_JAVA +java_all: + $(MAKE) -C java all +java_debug: + $(MAKE) -C java debug +java_smart: + $(MAKE) -C java smart +java_release: + $(MAKE) -C java release +java_units: + $(MAKE) -C java units +java_examples: + $(MAKE) -C java examples +java_shared: + $(MAKE) -C java shared +java_install: + $(MAKE) -C java install +java_sourceinstall: + $(MAKE) -C java sourceinstall +java_exampleinstall: + $(MAKE) -C java exampleinstall +java_distinstall: + $(MAKE) -C java distinstall +java_zipinstall: + $(MAKE) -C java zipinstall +java_zipsourceinstall: + $(MAKE) -C java zipsourceinstall +java_zipexampleinstall: + $(MAKE) -C java zipexampleinstall +java_zipdistinstall: + $(MAKE) -C java zipdistinstall +java_clean: + $(MAKE) -C java clean +java_distclean: + $(MAKE) -C java distclean +java_cleanall: + $(MAKE) -C java cleanall +java_info: + $(MAKE) -C java info +java_makefiles: + $(MAKE) -C java makefiles +java: + $(MAKE) -C java all +.PHONY: java_all java_debug java_smart java_release java_units java_examples java_shared java_install java_sourceinstall java_exampleinstall java_distinstall java_zipinstall java_zipsourceinstall java_zipexampleinstall java_zipdistinstall java_clean java_distclean java_cleanall java_info java_makefiles java +endif all: $(addsuffix _all,$(TARGET_DIRS)) debug: $(addsuffix _debug,$(TARGET_DIRS)) smart: $(addsuffix _smart,$(TARGET_DIRS)) diff --git a/rtl/Makefile.fpc b/rtl/Makefile.fpc index 6c715e7ecc..abbb6dc1f1 100644 --- a/rtl/Makefile.fpc +++ b/rtl/Makefile.fpc @@ -34,6 +34,7 @@ dirs_symbian=symbian dirs_embedded=embedded dirs_nativent=nativent dirs_wii=wii +dirs_java=java [install] fpcpackage=y diff --git a/rtl/java/Makefile b/rtl/java/Makefile index ad137ca5e4..29aef7362d 100644 --- a/rtl/java/Makefile +++ b/rtl/java/Makefile @@ -1,5 +1,5 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/18] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/12/04] # default: all MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux jvm-java @@ -1242,6 +1242,8 @@ SHAREDLIBEXT=.so SHORTSUFFIX=wii endif ifeq ($(OS_TARGET),java) +OEXT=.class +ASMEXT=.j SHAREDLIBEXT=.jar SHORTSUFFIX=java endif