* fpcmake support

This commit is contained in:
peter 1999-11-08 15:01:38 +00:00
parent 7bcdc527af
commit 79d331a978
17 changed files with 5539 additions and 756 deletions

File diff suppressed because it is too large Load Diff

323
compiler/Makefile.fpc Normal file
View File

@ -0,0 +1,323 @@
#
# Makefile.fpc for shedit
#
[dirs]
fpcdir=..
unitdir=
targetdir=.
[defaults]
defaultoptions=-Sg
[tools]
tooldiff=1
toolcmp=1
[presettings]
# RTL
RTL=../rtl
UTILS=../utils
# Utils used by compiler development/installation
COMPILERUTILS=utils
# Default language for the compiler
ifndef FPCLANG
FPCLANG=e
endif
# Local defines for the compiler only
ifndef LOCALDEF
LOCALDEF=
endif
# Local options for the compiler only
ifndef LOCALOPT
LOCALOPT=
endif
# Options for the RTL only when cycling
ifndef RTLOPTS
RTLOPTS=
endif
# Message files
MSGFILES=$(wildcard error*.msg)
[postsettings]
# Default message file
MSGFILE=error$(FPCLANG).msg
# set correct defines (-d$(CPU_TARGET) is automaticly added in makefile.fpc)
override LOCALDEF+=-dGDB -dBROWSERLOG
# for i386 also insert MMX support
ifeq ($(CPU_TARGET),i386)
override LOCALDEF+=-dSUPPORT_MMX
endif
# We don't need the intel and binary writer on linux...
ifdef inlinux
override LOCALDEF+=-dNOAG386INT -dNOAG386BIN
endif
override LOCALOPT+=$(LOCALDEF)
override FPCOPT+=$(LOCALOPT)
[rules]
#####################################################################
# Setup Targets
#####################################################################
ifeq ($(OS_TARGET),win32)
ifdef CMP
override DIFF:=$(CMP) -i138
endif
endif
# Used to avoid unnecessary steps in remake3
ifdef DIFF
ifdef OLDFPC
DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC))
else
DIFFRESULT=Not equal
endif
else
DIFFRESULT=No diff program
endif
#####################################################################
# Setup os-independent filenames
#####################################################################
FPCEXENAME=pp$(EXEEXT)
EXENAME=ppc386$(EXEEXT)
M68KEXENAME=ppc68k$(EXEEXT)
TEMPNAME=ppc$(EXEEXT)
TEMPNAME1=ppc1$(EXEEXT)
TEMPNAME2=ppc2$(EXEEXT)
TEMPNAME3=ppc3$(EXEEXT)
MAKEDEP=ppdep$(EXEEXT)
MSG2INC=msg2inc$(EXEEXT)
#####################################################################
# Default makefile
#####################################################################
all: $(EXENAME)
$(MAKE) echotime
ifeq ($(MAKELEVEL),0)
ifndef STARTTIME
ifdef DATE
STARTTIME:=$(shell $(DATE) +%T)
else
STARTTIME:=unknown
endif
endif
endif
export STARTTIME
ifdef DATE
ENDTIME=$(shell $(DATE) +%T)
else
ENDTIME:=unknown
endif
echotime:
@echo Start $(STARTTIME) now $(ENDTIME)
ifndef DIFFRESULT
next :
@echo $(OLDFPC) and $(FPC) are equal
$(COPY) $(FPC) $(EXENAME)
else
next :
$(MAKE) execlean
$(MAKE) -C $(RTLDIR) clean
$(MAKE) -C $(RTLDIR) 'FPC=$(FPC)' 'OPT=$(RTLOPTS)' all
$(MAKE) clean
$(MAKE) all
endif
clean : execlean fpc_cleanall
execlean :
-$(DEL) $(EXENAME)
distclean: clean
-$(DEL) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
#####################################################################
# Include depencies
#####################################################################
$(MAKEDEP): $(UTILS)/ppdep.pp
$(COMPILER) $(UTILS)/ppdep.pp
$(COPY) $(UTILS)/$(MAKEDEP) $(MAKEDEP)
dependencies : $(MAKEDEP)
$(MAKEDEP) pp.pas $(FPCOPTDEF) $(LOCALDEF) '-F$$(COMPILER) $$(LOCALOPT)' > depend
ifdef USEDEPEND
include depend
endif
#####################################################################
# Make targets
#####################################################################
$(MSG2INC): $(COMPILERUTILS)/msg2inc.pp
$(COMPILER) -FE. $(COMPILERUTILS)/msg2inc.pp
# The msgtxt.inc only depends on the error?.msg file, not on msg2inc,
# because that one will be new almost everytime
msgtxt.inc: $(MSGFILE)
$(MAKE) $(MSG2INC)
$(MSG2INC) $(MSGFILE) msg msg
msg: msgtxt.inc
# Make only the compiler
ifndef COMPLETE
$(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg
$(COMPILER) pp.pas
$(EXECPPAS)
$(MOVE) $(FPCEXENAME) $(EXENAME)
else
$(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg
$(COMPILER) pp.pas
$(EXECPPAS)
$(COMPILER) pp.pas
$(EXECPPAS)
$(COMPILER) pp.pas
$(EXECPPAS)
$(MOVE) $(FPCEXENAME) $(EXENAME)
endif
tokens.dat : $(wildcard *.pas) $(wildcard *.inc)
$(COMPILER) tokendat.pas
./tokendat
# This target remakes the units with the currently made version
remake: $(EXENAME)
$(MOVE) $(EXENAME) $(TEMPNAME)
$(MAKE) execlean
$(MAKE) -C $(RTLDIR) clean
$(MAKE) clean
$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' all
remake3: $(TEMPNAME3)
$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next
$(DIFF) $(TEMPNAME3) $(EXENAME)
$(TEMPNAME1) : $(EXENAME)
-$(DEL) $(TEMPNAME1)
$(MOVE) $(EXENAME) $(TEMPNAME1)
$(TEMPNAME2) : $(TEMPNAME1)
$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME1)' 'OLDFPC=' next
-$(DEL) $(TEMPNAME2)
$(MOVE) $(EXENAME) $(TEMPNAME2)
$(TEMPNAME3) : $(TEMPNAME2)
$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME2)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME1)' next
-$(DEL) $(TEMPNAME3)
$(MOVE) $(EXENAME) $(TEMPNAME3)
cycle:
$(MAKE) clean
$(MAKE) -C $(RTLDIR) clean
$(MAKE) -C $(RTLDIR) 'OPT=$(RTLOPTS)' all
$(MAKE) remake3
$(MAKE) echotime
cycledep:
$(MAKE) cycle USEDEPEND=1
cvstest:
$(MAKE) cycle 'LOCALOPT=-n -Se' 'RTLOPTS=-n -Se'
#####################################################################
# Installation
#####################################################################
# This will only install the ppc386.exe, not the message files etc.
quickinstall:
ifdef inlinux
$(MKDIR) $(LIBINSTALLDIR)
$(INSTALLEXE) $(EXENAME) $(LIBINSTALLDIR)
else
$(MKDIR) $(BININSTALLDIR)
ifdef UPX
-$(UPX) $(EXENAME)
endif
$(INSTALLEXE) $(EXENAME) $(BININSTALLDIR)
endif
installlib: quickinstall
ifdef inlinux
$(INSTALLEXE) $(COMPILERUTILS)/samplecfg $(LIBINSTALLDIR)/samplecfg
endif
$(MKDIR) $(MSGINSTALLDIR)
$(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
# this also installs the link /usr/bin/ppc386. The .deb does that later
install: installlib
ifdef inlinux
$(MKDIR) $(BININSTALLDIR)
ln -sf $(LIBINSTALLDIR)/ppc386 $(BININSTALLDIR)/ppc386
endif
#####################################################################
# Misc
#####################################################################
rtl :
$(MAKE) -C $(RTLDIR) all
rtlclean :
$(MAKE) -C $(RTLDIR) clean
rtlinstall:
$(MAKE) -C $(RTLDIR) install
#####################################################################
# local user configurable file
# in makefile.loc you can add any desired target
#####################################################################
localmake:=$(strip $(wildcard makefile.loc))
ifdef localmake
include ./$(localmake)
endif
#####################################################################
# M68k test targets
#####################################################################
# just a quick way to get ppc68k
# needs to be after makefile.def for PASFILES INCFILES
$(M68KEXENAME): $(PASFILES) $(INCFILES)
$(MAKE) clean
$(FPC) -uI386 -uSUPPORT_MMX -dm68k -o$(M68KEXENAME) pp
$(MAKE) clean

View File

@ -233,10 +233,21 @@ begin
begin
if GetName(FFileBuffer[index]) = ident then
begin
value := GetValue(FFileBuffer[index], ident);
if value <> '' then
result := value;
break;
value := GetValue(FFileBuffer[index], ident);
if value <> '' then
begin
result := value;
if (result[length(result)]='\') then
begin
inc(index);
while (index < FFileBuffer.Count) and (result[length(result)]='\') do
begin
result:=Copy(result,1,length(result)-1)+Trim(FFileBuffer[index]);
inc(index);
end;
end;
end;
break;
end;
Inc(index);
end;
@ -428,7 +439,10 @@ end.
{
$Log$
Revision 1.3 1999-11-02 23:58:37 peter
Revision 1.4 1999-11-08 15:01:38 peter
* fpcmake support
Revision 1.3 1999/11/02 23:58:37 peter
* comment support
* readsectionraw method

File diff suppressed because it is too large Load Diff

159
rtl/go32v2/Makefile.fpc Normal file
View File

@ -0,0 +1,159 @@
#
# Makefile.fpc for Go32v2 RTL
#
[targets]
loaders=prt0 exceptn fpu
units=$(SYSTEMUNIT) objpas strings \
go32 initc dpmiexcp profile dxeload emu387 \
dos crt objects printer graph \
sysutils math typinfo \
cpu mmx getopts heaptrc \
msmouse ports
programs=
[defaults]
defaultunits=1
defaulttarget=go32v2
defaultcpu=i386
[dirs]
fpcdir=.
incdir=$(INC) $(PROCINC)
targetdir=.
[presettings]
RTL=..
INC=../inc
PROCINC=../$(CPU_TARGET)
UNITPREFIX=rtl
# Paths
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
# Define Go32v2 Units
SYSTEMUNIT=system
[postsettings]
SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
# 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)
[rules]
vpath %$(PASEXT) $(INC) $(PROCINC)
#
# Loaders
#
prt0$(OEXT) : v2prt0.as
$(AS) -o prt0$(OEXT) v2prt0.as
#
# System Units (System, Objpas, Strings)
#
$(SYSTEMPPU) : system.pp $(SYSDEPS)
$(COMPILER) -Us -Sg system.pp $(REDIR)
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMPPU)
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMPPU)
#
# System Dependent Units
#
go32$(PPUEXT) : go32.pp $(SYSTEMPPU)
dpmiexcp$(PPUEXT) : dpmiexcp.pp exceptn$(OEXT) $(SYSTEMPPU)
$(COMPILER) -Sg dpmiexcp.pp $(REDIR)
initc$(PPUEXT) : initc.pp $(SYSTEMPPU)
profile$(PPUEXT) : profile.pp dpmiexcp$(PPUEXT) go32$(PPUEXT)
dxeload$(PPUEXT) : dxeload.pp $(SYSTEMPPU)
emu387$(PPUEXT) : emu387.pp fpu$(OEXT) strings$(PPUEXT) dxeload$(PPUEXT) \
dpmiexcp$(PPUEXT)
#
# TP7 Compatible RTL Units
#
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc \
go32$(PPUEXT) strings$(PPUEXT) $(SYSTEMPPU)
crt$(PPUEXT) : crt.pp $(INC)/textrec.inc go32$(PPUEXT) $(SYSTEMPPU)
objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
printer$(PPUEXT) : printer.pp $(SYSTEMPPU)
#
# Graph
#
include $(GRAPHDIR)/makefile.inc
GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES))
graph$(PPUEXT) : $(GRAPHDIR)/graph.pp go32$(PPUEXT) ports$(PPUEXT) $(SYSTEMPPU) \
$(GRAPHINCDEPS) graph.inc graphh.inc vesa.inc vesah.inc dpmi.inc
$(COMPILER) -I$(GRAPHDIR) $(GRAPHDIR)/graph.pp $(REDIR)
#
# Delphi Compatible Units
#
sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \
filutil.inc disk.inc objpas$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT)
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/sysutils.pp $(REDIR)
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
#
# Other system-independent RTL Units
#
cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMPPU)
mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMPPU)
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMPPU)
$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
msmouse$(PPUEXT) : msmouse.pp $(SYSTEMPPU)
ports$(PPUEXT) : ports.pp $(SYSTEMPPU)

View File

@ -346,9 +346,6 @@ Interface
{ Hercules mono card }
HercMonoHi = 0;
{$i graphmod.inc}
MaxColors = 255; { Maximum possible colors using a palette }
{ otherwise, direct color encoding }
@ -682,6 +679,9 @@ Function GetDriverName: string;
procedure OutTextXY(x,y : integer;const TextString : string);
procedure OutText(const TextString : string);
{ Load extra graph additions per system like mode constants }
{$i graphh.inc}
Implementation
@ -2961,7 +2961,10 @@ SetGraphBufSize
{
$Log$
Revision 1.35 1999-11-08 11:15:22 peter
Revision 1.36 1999-11-08 15:01:38 peter
* fpcmake support
Revision 1.35 1999/11/08 11:15:22 peter
* move graph.inc to the target dir
Revision 1.34 1999/11/03 20:23:01 florian

View File

@ -1,5 +1 @@
GRAPHINCNAMES=graph.inc fontdata.inc clip.inc fills.inc gtext.inc palette.inc modes.inc
ifeq ($(OS_TARGET),go32v2)
GRAPHINCNAMES+=vesa.inc vesah.inc dpmi.inc
endif
GRAPHINCNAMES=fontdata.inc clip.inc fills.inc gtext.inc palette.inc modes.inc

File diff suppressed because it is too large Load Diff

167
rtl/win32/Makefile.fpc Normal file
View File

@ -0,0 +1,167 @@
#
# Makefile.fpc for Free Pascal Win32 RTL
#
[targets]
loaders=wprt0 wdllprt0
units=$(SYSTEMUNIT) objpas strings \
windows ole2 opengl32 winsock \
sockets initc \
dos crt objects graph \
sysutils typinfo math \
cpu mmx getopts heaptrc
programs=
[defaults]
defaultunits=1
defaulttarget=win32
defaultcpu=i386
[dirs]
fpcdir=.
incdir=$(INC) $(PROCINC)
targetdir=.
[presettings]
RTL=..
INC=$(RTL)/inc
PROCINC=$(RTL)/$(CPU_TARGET)
WININC=wininc
UNITPREFIX=rtl
# Paths
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
SYSTEMUNIT=syswin32
# Files used by windows.pp
include $(WININC)/makefile.inc
WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
[postsettings]
SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
# 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)
[rules]
vpath %$(PASEXT) $(INC) $(PROCINC)
#
# Loaders
#
override AS=asw
wprt0$(OEXT) : wprt0.as
$(AS) -o wprt0$(OEXT) wprt0.as
wdllprt0$(OEXT) : wdllprt0.as
$(AS) -o wdllprt0$(OEXT) wdllprt0.as
#
# System Units (System, Objpas, Strings)
#
$(SYSTEMPPU) : syswin32.pp win32.inc $(SYSDEPS)
$(COMPILER) -Us -Sg syswin32.pp $(REDIR)
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMPPU)
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
$(SYSTEMPPU)
#
# System Dependent Units
#
windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMPPU)
$(COMPILER) -I$(WININC) windows.pp $(REDIR)
ole2$(PPUEXT) : ole2.pp windows$(PPUEXT) $(SYSTEMPPU)
opengl32$(PPUEXT) : opengl32.pp windows$(PPUEXT) $(SYSTEMPPU)
winsock$(PPUEXT) : winsock.pp windows$(PPUEXT) $(SYSTEMPPU)
sockets$(PPUEXT) : sockets.pp windows$(PPUEXT) winsock$(PPUEXT) $(SYSTEMPPU) \
$(INC)/sockets.inc $(INC)/socketsh.inc
initc$(PPUEXT) : initc.pp $(SYSTEMPPU)
#
# TP7 Compatible RTL Units
#
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMPPU)
crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(SYSTEMPPU) objpas$(PPUEXT) dos$(PPUEXT) windows$(PPUEXT)
objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
#
# Graph
#
include $(GRAPHDIR)/makefile.inc
GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES))
graph$(PPUEXT) : $(GRAPHDIR)/graph.pp $(SYSTEMPPU) \
$(GRAPHINCDEPS) graph.inc graphh.inc
$(COMPILER) -I$(GRAPHDIR) $(GRAPHDIR)/graph.pp $(REDIR)
#
# Delphi Compatible Units
#
sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \
filutil.inc disk.inc objpas$(PPUEXT) dos$(PPUEXT) windows$(PPUEXT)
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/sysutils.pp $(REDIR)
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
#
# Other system-independent RTL Units
#
cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMPPU)
mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMPPU)
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMPPU)
$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
#
# Other system-dependent RTL Units
#

23
rtl/win32/graphh.inc Normal file
View File

@ -0,0 +1,23 @@
{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 1999 by Florian Klaempfl
This file implements the win32 gui support for the graph unit
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{
$Log$
Revision 1.1 1999-11-08 15:01:39 peter
* fpcmake support
}

File diff suppressed because it is too large Load Diff

61
utils/Makefile.fpc Normal file
View File

@ -0,0 +1,61 @@
#
# Makefile.fpc for shedit
#
[targets]
units=
programs=ppudump ppumove ppdep ptop rstconv fpcmake
[clean]
units=ppu ptopu
[dirs]
fpcdir=..
unitdir=$(FPCDIR)/fcl/$(OS_TARGET)
targetdir=.
[rules]
.PHONY: h2pas_all h2pas_clean h2pas_install
all: fpc_all h2pas_all
clean: fpc_clean h2pas_clean
install: fpc_install h2pas_install
#
# PPU Tools
#
ppu$(PPUEXT): ppu.pas
ppudump$(EXEEXT): ppudump.pp ppu$(PPUEXT)
ppumove$(EXEEXT): ppumove.pp ppu$(PPUEXT)
#
# Pascal beautifier
#
ptop$(EXEEXT): ptop.pp ptopu$(PPUEXT)
ptopu$(PPUEXT): ptopu.pp
#
# Other
#
fpcmake$(EXEEXT): fpcmake.pp
ppdep$(EXEEXT): ppdep.pp
#
# H2Pas
#
h2pas_all:
$(MAKE) -C h2pas all
h2pas_clean:
$(MAKE) -C h2pas clean
h2pas_install:
$(MAKE) -C h2pas install

View File

@ -138,7 +138,7 @@ endif
#####################################################################
# Load commandline OPTDEF and add FPC_CPU define
override FPCOPTDEF:=-d$(FPC_CPU)
override FPCOPTDEF:=-d$(CPU_TARGET)
# Load commandline OPT and add target and unit dir to be sure
ifneq ($(OS_TARGET),$(OS_SOURCE))
@ -780,12 +780,12 @@ endif
.PHONY: fpc_showinstallfiles fpc_install
ifdef EXTRAINSTALLUNITS
override EXTRAINSTALLFILES=$(wildcard $(addsuffix $(OEXT),$(EXTRAINSTALLUNITS)) $(addsuffix $(STATICLIBEXT),$(EXTRAINSTALLUNITS)) $(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS)))
endif
ifdef UNITOBJECTS
override UNITINSTALLFILES=$(wildcard $(UNITPPUFILES) $(UNITOFILES) $(UNITAFILES))
endif
ifdef EXTRAINSTALLUNITS
override EXTRAINSTALLFILES+=$(wildcard $(addsuffix $(OEXT),$(EXTRAINSTALLUNITS)) $(addsuffix $(STATICLIBEXT),$(EXTRAINSTALLUNITS)) $(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS)))
endif
fpc_showinstallfiles : all
ifndef DEFAULTUNITS
@ -936,7 +936,7 @@ ifdef UNITOBJECTS
override UNITCLEANFILES=$(wildcard $(UNITPPUFILES) $(UNITOFILES) $(UNITAFILES))
endif
ifdef EXTRACLEANUNITS
override EXTRACLEANFILES=$(wildcard $(addsuffix $(OEXT),$(EXTRACLEANUNITS)) $(addsuffix $(STATICLIBEXT),$(EXTRACLEANUNITS)) $(addsuffix $(PPUEXT),$(EXTRACLEANUNITS)))
override EXTRACLEANFILES+=$(wildcard $(addsuffix $(OEXT),$(EXTRACLEANUNITS)) $(addsuffix $(STATICLIBEXT),$(EXTRACLEANUNITS)) $(addsuffix $(PPUEXT),$(EXTRACLEANUNITS)))
endif
fpc_clean:
@ -1119,7 +1119,10 @@ endif
;
; $Log$
; Revision 1.2 1999-11-03 23:39:53 peter
; Revision 1.3 1999-11-08 15:01:39 peter
; * fpcmake support
;
; Revision 1.2 1999/11/03 23:39:53 peter
; * lot of updates
;
; Revision 1.1 1999/11/02 23:57:40 peter

View File

@ -35,6 +35,8 @@ const
);
{ Sections in Makefile.fpc }
sec_install='install';
sec_clean='clean';
sec_dirs='dirs';
sec_libs='libs';
sec_targets='targets';
@ -43,9 +45,15 @@ const
sec_tools='tools';
type
TTargetsString=array[0..targets] of string;
TFpcMake=record
TargetLoaders,
TargetUnits,
TargetPrograms : array[0..targets] of string;
TargetPrograms,
InstallUnits,
InstallFiles,
CleanUnits,
CleanFiles : TTargetsString;
DefaultUnits : boolean;
DefaultRule,
DefaultTarget,
@ -57,9 +65,7 @@ type
DirObj,
DirTarget,
DirUnitTarget,
DirInc,
DirProcInc,
DirOSInc : string;
DirInc : string;
LibGCC,
LibOther : boolean;
InfoCfg,
@ -108,7 +114,16 @@ function ReadMakefilefpc:boolean;
var
fn : string;
ini : TIniFile;
i : integer;
procedure ReadTargetsString(var t:Ttargetsstring;const sec,name,def:string);
var
i : integer;
begin
t[0]:=ini.ReadString(sec,name,def);
for i:=1 to targets do
t[i]:=ini.ReadString(sec,name+'_'+targetstr[i],'');
end;
begin
ReadMakefilefpc:=false;
if FileExists('Makefile.fpc') then
@ -125,13 +140,15 @@ begin
with userini,ini do
begin
{ targets }
TargetUnits[0]:=ReadString(sec_targets,'units','');
TargetPrograms[0]:=ReadString(sec_targets,'programs','');
for i:=1 to targets do
begin
TargetUnits[i]:=ReadString(sec_targets,'units_'+targetstr[i],'');
TargetPrograms[i]:=ReadString(sec_targets,'programs_'+targetstr[i],'');
end;
ReadTargetsString(TargetLoaders,sec_targets,'loaders','');
ReadTargetsString(TargetUnits,sec_targets,'units','');
ReadTargetsString(TargetPrograms,sec_targets,'programs','');
{ clean }
ReadTargetsString(CleanUnits,sec_clean,'units','');
ReadTargetsString(CleanFiles,sec_clean,'files','');
{ install }
ReadTargetsString(InstallUnits,sec_install,'units','');
ReadTargetsString(InstallFiles,sec_install,'files','');
{ defaults }
DefaultUnits:=ReadBool(sec_defaults,'defaultunits',false);
DefaultRule:=ReadString(sec_defaults,'defaultrule','all');
@ -146,8 +163,6 @@ begin
DirTarget:=ReadString(sec_dirs,'targetdir','');
DirUnitTarget:=ReadString(sec_dirs,'unittargetdir','');
DirInc:=ReadString(sec_dirs,'incdir','');
DirProcInc:=ReadString(sec_dirs,'procincdir','');
DirOSInc:=ReadString(sec_dirs,'osincdir','');
{ libs }
LibGcc:=ReadBool(sec_libs,'libgcc',false);
LibOther:=ReadBool(sec_libs,'libother',false);
@ -293,9 +308,31 @@ var
mf.Add('');
end;
procedure AddTargets(const pre:string;var t:TTargetsString);
var
i : integer;
begin
if t[0]<>'' then
mf.Add(pre+'='+t[0]);
for i:=1to targets do
if (t[i]<>'') then
begin
mf.Add('ifeq ($(OS_TARGET),'+targetstr[i]+')');
if t[i]<>'' then
mf.Add(pre+'+='+t[i]);
mf.Add('endif');
end;
end;
procedure AddHead(const s:string);
begin
mf.Add('');
mf.Add('# '+s);
mf.Add('');
end;
var
hs : string;
i : integer;
begin
{ Open the Makefile }
Verbose('Creating Makefile');
@ -335,33 +372,36 @@ begin
{ Pre Settings }
if userini.PreSettings.count>0 then
AddStrings(userini.PreSettings);
{ Targets }
Add('');
Add('UNITOBJECTS='+userini.targetunits[0]);
Add('EXEOBJECTS='+userini.targetprograms[0]);
for i:=1to targets do
if (userini.targetunits[i]<>'') or
(userini.targetprograms[i]<>'') then
begin
Add('ifeq ($(OS_TARGET),'+targetstr[i]+')');
if userini.targetunits[i]<>'' then
Add('UNITOBJECTS+='+userini.targetunits[i]);
if userini.targetprograms[i]<>'' then
Add('EXEOBJECTS+='+userini.targetprograms[i]);
Add('endif');
AddHead('Pre Settings');
AddStrings(userini.PreSettings);
end;
{ Targets }
AddHead('Targets');
AddTargets('LOADEROBJECTS',userini.targetloaders);
AddTargets('UNITOBJECTS',userini.targetunits);
AddTargets('EXEOBJECTS',userini.targetprograms);
{ Clean }
AddHead('Clean');
AddTargets('EXTRACLEANUNITS',userini.cleanunits);
AddTargets('EXTRACLEANFILES',userini.cleanfiles);
{ Install }
AddHead('Install');
AddTargets('EXTRAINSTALLUNITS',userini.installunits);
AddTargets('EXTRAINSTALLFILES',userini.installfiles);
{ Defaults }
Add('');
AddHead('Defaults');
if userini.defaultunits then
Add('DEFAULTUNITS=1');
if userini.defaultoptions<>'' then
Add('override NEEDOPT='+userini.defaultoptions);
{ Dirs }
Add('');
AddHead('Directories');
if userini.dirfpc<>'' then
begin
{ this dir can be set in the environment, it's more a default }
@ -391,14 +431,14 @@ begin
end;
{ Libs }
Add('');
AddHead('Libraries');
if userini.libgcc then
Add('override NEEDGCCLIB=1');
if userini.libother then
Add('override NEEDOTHERLIB=1');
{ Info }
Add('');
AddHead('Info');
hs:='';
if userini.infocfg then
hs:=hs+'fpc_infocfg ';
@ -416,7 +456,10 @@ begin
{ Post Settings }
if userini.PostSettings.count>0 then
AddStrings(userini.PostSettings);
begin
AddHead('Post Settings');
AddStrings(userini.PostSettings);
end;
{ commandline }
Add('');
@ -431,8 +474,6 @@ begin
AddSection(userini.libgcc,'command_gcclib');
AddSection(userini.libother,'command_otherlib');
AddSection((userini.dirinc<>''),'command_inc');
AddSection((userini.dirprocinc<>''),'command_procinc');
AddSection((userini.dirosinc<>''),'command_osinc');
AddSection((userini.dirtarget<>''),'command_target');
AddSection((userini.dirunittarget<>''),'command_unittarget');
AddSection(true,'command_smartlink');
@ -527,7 +568,10 @@ begin
end.
{
$Log$
Revision 1.3 1999-11-04 12:07:13 michael
Revision 1.4 1999-11-08 15:01:39 peter
* fpcmake support
Revision 1.3 1999/11/04 12:07:13 michael
+ Now envvar is used
Revision 1.2 1999/11/03 23:39:53 peter

File diff suppressed because it is too large Load Diff

57
utils/h2pas/Makefile.fpc Normal file
View File

@ -0,0 +1,57 @@
#
# Makefile.fpc for shedit
#
[targets]
units=
programs=h2pas
[clean]
units=options lexlib scan yacclib converu
[dirs]
fpcdir=../..
[defaults]
defaultoptions=-Sg
[rules]
# do we have pyacc?
ifndef PYACC
PYACC=$(strip $(wildcard $(addsuffix /pyacc$(EXEEXT),$(SEARCHPATH))))
ifeq ($(PYACC),)
PYACC=
else
export PYACC:=$(firstword $(PYACC))
endif
endif
# do we have plex?
ifndef PLEX
PLEX=$(strip $(wildcard $(addsuffix /plex$(EXEEXT),$(SEARCHPATH))))
ifeq ($(PLEX),)
PLEX=
else
export PLEX:=$(firstword $(PLEX))
endif
endif
h2pas$(EXEEXT): h2pas$(PASEXT)
#
# Lex and Yacc (only if pyacc is found)
#
ifdef PYACC
h2pas$(PASEXT): h2pas.y
$(PYACC) h2pas.y
yacclex: yacc lex
yacc:
$(PYACC) h2pas.y
lex :
$(PLEX) scan.l
endif