# # Makefile.fpc for Free Pascal Linux RTL # [package] main=rtl [target] loaders=$(LOADERS) units=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) \ $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) \ $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) \ $(LINUXVCSUNIT) $(SYSUTILSUNIT) $(TYPINFOUNIT) $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) \ $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) \ $(TYPESUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) $(CLASSESUNIT) $(FGLUNIT) \ $(RTLCONSTSUNIT) $(DOSUNIT) $(CWSTRINGUNIT) $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) \ $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT) implicitunits=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT) rsts=$(MATHUNIT) $(TYPINFOUNIT) $(SYSCONSTUNIT) $(RTLCONSTSUNIT) [require] nortl=y [clean] units=$(LINUXUNIT) [install] fpcpackage=y [default] target=android [compiler] includedir=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC) sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC) targetdir=. [shared] libunits=$(SYSTEMUNIT) $(OBJPASUNIT) $(STRINGSUNIT) $(DOSUNIT) \ $(UNIXUNIT) $(BASEUNIXUNIT) $(UNIXTYPEUNIT) $(UNIXUTILUNIT) \ $(SYSUTILSUNIT) $(TYPINFOUNIT) $(MATHUNIT) \ $(CPU_UNITS) $(GETOPTSUNIT) \ $(ERRORSUNIT) \ $(SORTBASEUNIT) $(CLASSESUNIT) $(FGLUNIT) $(SYSCONSTUNIT) $(RTLCONSTSUNIT) \ [prerules] RTL=.. INC=$(RTL)/inc COMMON=$(RTL)/common PROCINC=$(RTL)/$(ARCH) UNIXINC=$(RTL)/unix OSPROCINC=$(RTL)/linux/$(CPU_TARGET) LINUXINC=$(RTL)/linux CLASSESDIR=$(UNIXINC) DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT) DYNLIBSINCDIR=$(UNIXINC) DL_DEPS_OS=dlandroid.inc TERMIODIR=$(LINUXINC) PTHREADINCDIR=$(LINUXINC) PTYPESINCDIR=$(LINUXINC) SYSTEMDIR = $(LINUXINC) SYSCALL_DEPS_OS=$(LINUXINC)/$(ARCH)/syscallh.inc $(LINUXINC)/$(ARCH)/sysnr.inc SYSUTILS_DEPS_OS=$(DLUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) SYSUTILSDIR=$(UNIXINC) # Android has a specific file for cwstring.pp unit main source CWSTRINGDIR=$(OSDIR) UNITPREFIX=rtl CPU_UNITS= SYSINIT_UNITS= LOADERS=prt0 dllprt0 ifeq ($(findstring $(ARCH),i386 x86_64 arm),$(ARCH)) CPU_UNITS=$(CPUUNIT) endif ifeq ($(ARCH),i386) CPU_UNITS+=$(MMXUNIT) endif # Causes release PPU files not to be recompiled ifdef RELEASE override FPCOPT+=-Ur endif # Paths OBJPASDIR=$(RTL)/objpas [rules] .NOTPARALLEL: # Get the $(SYSTEMUNIT) independent include file names. # This will set the following variables : # SYSINCNAMES include $(INC)/makefile.inc SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES)) SYSINCDEPS:=$(SYSINCDEPS) sysandroidh.inc sysandroid.inc # Get the processor dependent include file names. # This will set the following variables : # CPUINCNAMES include $(PROCINC)/makefile.cpu SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES)) # Put $(SYSTEMUNIT) unit dependencies together. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS) # Select 32/64 mode ifeq ($(ARCH),i386) ASTARGET=--32 endif # Select mips32 instruction set and PIC for MIPS ifeq ($(ARCH),mipsel) ASTARGET=-mips32 -KPIC endif ifneq ($(findstring $(ARCH),aarch64 x86_64),) CPUBITS=64 else CPUBITS=32 endif # # Loaders # prt0$(OEXT) : prt0.as $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) --defsym CPU$(CPUBITS)=1 prt0.as dllprt0$(OEXT) : dllprt0.as $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) --defsym CPU$(CPUBITS)=1 dllprt0.as