mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-21 18:16:46 +02:00

* also made lnfodwrf dependent on lineinfo for all platforms, because both units implicitly depend on the exeinfo unit and if both are compiled at the same time they can fall over each other while writing its .ppu or .s file git-svn-id: trunk@33039 -
297 lines
8.5 KiB
Makefile
297 lines
8.5 KiB
Makefile
#
|
|
# Makefile.fpc for Free Pascal solaris RTL
|
|
#
|
|
|
|
[package]
|
|
main=rtl
|
|
|
|
[target]
|
|
loaders=
|
|
units=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas \
|
|
heaptrc lineinfo lnfodwrf \
|
|
baseunix unixutil unixcp \
|
|
termio unix initc cmem \
|
|
sysutils typinfo math fgl classes \
|
|
charset cpall getopts \
|
|
errors \
|
|
dl dynlibs \
|
|
types sysconst character \
|
|
rtlconsts cthreads \
|
|
dos fpwidestring \
|
|
cwstring fpintres $(CPU_UNITS)
|
|
|
|
implicitunits=exeinfo \
|
|
cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
|
|
cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 \
|
|
unicodedata unicodenumtable
|
|
|
|
rsts=math typinfo classes sysconst rtlconst
|
|
|
|
[require]
|
|
nortl=y
|
|
|
|
[install]
|
|
fpcpackage=y
|
|
|
|
[default]
|
|
fpcdir=../..
|
|
target=solaris
|
|
|
|
[compiler]
|
|
includedir=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
|
|
sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
|
|
|
|
|
|
[lib]
|
|
libname=libfprtl.so
|
|
libversion=2.0.0
|
|
libunits=$(SYSTEMUNIT) objpas strings \
|
|
unix \
|
|
dos \
|
|
sysutils typinfo math \
|
|
$(CPU_UNITS) getopts heaptrc \
|
|
errors
|
|
|
|
[prerules]
|
|
RTL=..
|
|
INC=$(RTL)/inc
|
|
COMMON=$(RTL)/common
|
|
PROCINC=$(RTL)/$(CPU_TARGET)
|
|
OSPROCINC=$(RTL)/solaris/$(CPU_TARGET)
|
|
UNIXINC=$(RTL)/unix
|
|
UNITPREFIX=rtl
|
|
CPU_UNITS=
|
|
|
|
SYSTEMUNIT=system
|
|
|
|
|
|
ifeq ($(ARCH),i386)
|
|
CPU_UNITS=cpu mmx
|
|
endif
|
|
|
|
ifeq ($(ARCH),x86_64)
|
|
CPU_UNITS=cpu
|
|
SYSINIT_UNITS= # si_prc si_c si_dll
|
|
endif
|
|
|
|
|
|
# Use new feature from 1.0.5 version
|
|
# that generates release PPU files
|
|
# which will not be recompiled
|
|
ifdef RELEASE
|
|
override FPCOPT+=-Ur
|
|
endif
|
|
|
|
# Solaris requires libc, no syscalls, no mouse
|
|
override FPCOPT+=-dFPC_USE_LIBC -dNOMOUSE
|
|
|
|
# Paths
|
|
OBJPASDIR=$(RTL)/objpas
|
|
GRAPHDIR=$(INC)/graph
|
|
|
|
# Use new graph unit ?
|
|
# NEWGRAPH=YES
|
|
# Use LibGGI ?
|
|
# Use
|
|
#
|
|
ifndef USELIBGGI
|
|
USELIBGGI=NO
|
|
endif
|
|
|
|
|
|
[rules]
|
|
.NOTPARALLEL:
|
|
# Get the system independent include file names.
|
|
# This will set the following variables :
|
|
# SYSINCNAMES
|
|
include $(INC)/makefile.inc
|
|
SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
|
|
|
|
# Get the processor dependent include file names.
|
|
# This will set the following variables :
|
|
# CPUINCNAMES
|
|
include $(PROCINC)/makefile.cpu
|
|
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
|
|
|
|
# Put system unit dependencies together.
|
|
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
|
|
|
|
|
#
|
|
# System Units (System, Objpas, Strings)
|
|
#
|
|
|
|
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
|
|
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp
|
|
|
|
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
|
|
$(COMPILER) $(INC)/uuchar.pp
|
|
|
|
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
|
|
|
|
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
|
|
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
|
|
$(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/strings.pp
|
|
|
|
#
|
|
# System Dependent Units
|
|
#
|
|
|
|
baseunix$(PPUEXT) : unixtype$(PPUEXT) errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
|
|
signal.inc $(UNIXINC)/bunxh.inc \
|
|
ostypes.inc osmacro.inc $(UNIXINC)/gensigset.inc \
|
|
$(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/baseunix.pp
|
|
|
|
unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/unixtype.pp
|
|
|
|
unix$(PPUEXT) : unixtype$(PPUEXT) baseunix$(PPUEXT) unixutil$(PPUEXT) strings$(PPUEXT) $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
|
|
unxconst.inc $(UNIXINC)/timezone.inc \
|
|
unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/unix.pp
|
|
|
|
unixutil$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/unixutil.pp
|
|
|
|
unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/unixcp.pp
|
|
|
|
#
|
|
# TP7 Compatible RTL Units
|
|
#
|
|
|
|
dos$(PPUEXT) : strings$(PPUEXT) unix$(PPUEXT) $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
|
|
unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/dos.pp
|
|
|
|
#
|
|
# Graph
|
|
#
|
|
|
|
#
|
|
# Delphi Compatible Units
|
|
#
|
|
|
|
sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
|
|
objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
|
|
|
|
classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
|
|
sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) \
|
|
$(SYSTEMUNIT)$(PPUEXT) fgl$(PPUEXT)
|
|
$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
|
|
|
|
fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/fgl.pp
|
|
|
|
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
|
|
|
|
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/math.pp
|
|
|
|
types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/types.pp
|
|
|
|
sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/sysconst.pp
|
|
|
|
rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
|
|
|
|
# let it depend on buildcollations to prevent simultaneous building of unicodedata
|
|
character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/character.pas
|
|
|
|
#
|
|
# Mac Pascal Model
|
|
#
|
|
|
|
macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
|
|
$(COMPILER) $(INC)/macpas.pp $(REDIR)
|
|
|
|
#
|
|
# Other system-independent RTL Units
|
|
#
|
|
|
|
ifneq ($(findstring $(ARCH),x86_64 i386),)
|
|
cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
|
|
else
|
|
cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
endif
|
|
|
|
mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(PROCINC)/mmx.pp
|
|
|
|
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/getopts.pp
|
|
|
|
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) -Sg $(INC)/heaptrc.pp
|
|
|
|
lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) sysutils$(PPUEXT)
|
|
$(COMPILER) $(INC)/lineinfo.pp
|
|
|
|
lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) lineinfo$(PPUEXT)
|
|
$(COMPILER) $(INC)/lnfodwrf.pp
|
|
|
|
charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
|
|
$(COMPILER) $(INC)/charset.pp
|
|
|
|
cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
|
|
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
|
|
|
|
fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
|
|
$(COMPILER) $(OBJPASDIR)/fpwidestring.pp
|
|
|
|
iso7185$(PPUEXT) : $(INC)/iso7185.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/iso7185.pp
|
|
|
|
extpas$(PPUEXT) : $(INC)/extpas.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/extpas.pp
|
|
|
|
fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/fpintres.pp
|
|
|
|
#
|
|
# Other system-dependent RTL Units
|
|
#
|
|
|
|
|
|
errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/errors.pp
|
|
|
|
dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/dynlibs.pas
|
|
|
|
termio$(PPUEXT) : termio.pp unixtype$(PPUEXT) baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) termio.pp
|
|
|
|
callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/callspec.pp
|
|
|
|
cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(INC)/cmem.pp
|
|
|
|
cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp sysutils$(PPUEXT) baseunix$(PPUEXT) unixtype$(PPUEXT) unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/cthreads.pp
|
|
|
|
cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/cwstring.pp
|
|
|
|
ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT)
|
|
$(COMPILER) $(INC)/ctypes.pp
|
|
|
|
fpcylix$(PPUEXT) : fpcylix.pp $(SYSTEMUNIT)$(PPUEXT) dynlibs$(PPUEXT) objpas$(PPUEXT)
|
|
$(COMPILER) fpcylix.pp
|
|
|
|
dl$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT)
|
|
$(COMPILER) $(UNIXINC)/dl.pp
|
|
|
|
initc$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT)
|
|
|
|
console$(PPUEXT) : baseunix$(PPUEXT) termio$(PPUEXT)
|