* merged fixes

This commit is contained in:
peter 1998-09-16 16:41:38 +00:00
parent f036e72f29
commit a0c582dc12
9 changed files with 399 additions and 545 deletions

View File

@ -14,173 +14,67 @@
#
#####################################################################
# Try to determine Operating System
# Configuration section
#####################################################################
BASEDIR=$(shell pwd)
# in linux no : in pathes
ifeq ($(findstring :,$(BASEDIR)),)
inlinux=1
endif
# in case pwd is not present on the DOS-OS
ifeq ($(strip $(BASEDIR)),'')
inlinux=
BASEDIR:=.
endif
# What compiler to use
ifndef PP
PP=ppc386
endif
# first try go32v2 specific gdate
DATE=$(strip $(wildcard $(addsuffix /gdate.exe,$(subst ;, ,$(PATH)))))
# try generic date.exe
ifeq ($(DATE),)
DATE=$(strip $(wildcard $(addsuffix /date.exe,$(subst :, ,$(PATH)))))
endif
# finally try for linux
ifeq ($(DATE),)
DATE=$(strip $(wildcard $(addsuffix /date,$(subst :, ,$(PATH)))))
endif
#####################################################################
# Setup Targets
#####################################################################
# what target do we use
# currently dos go32v2 os2 and linux are available
ifndef TARGET
ifdef inlinux
TARGET=linux
else
TARGET=go32v2
endif
endif
# What processor do you want to compile for : i386 m68k (case sensitive !!)
ifndef CPU
CPU= i386
# CPU= m68k
endif
ifndef LANGUAGE
LANGUAGE=e
endif
# Release version ?
ifdef RELEASE
OPT=-Xs -OG2p2
ifndef CPU
CPU=i386
endif
#####################################################################
# Setup Files Directories
#####################################################################
# Set os-dependent files and extensions
ifdef inlinux
EXEEXT=
else
EXEEXT=.exe
# Local defines for the compiler only
ifndef LOCALDEF
LOCALDEF=
endif
REPLACE=mv -f
REMOVE=rm
CP=cp -f
# Local options for the compiler only
ifndef LOCALOPT
LOCALOPT=
endif
# Options for the RTL only when cycling
ifndef RTLOPTS
RTLOPTS=
endif
#####################################################################
# Defaults
#####################################################################
# Where is the makefile.cfg ?
CFG=../rtl/cfg
# At least set -Sg
LOCALOPT+=-Sg
# set correct defines (-d$(CPU) is automaticly added in makefile.cfg)
LOCALDEF+=-dGDB -dFPC
# for i386 also insert MMX support
ifdef i386
LOCALDEF+=-dSUPPORT_MMX
endif
LOCALOPT+=$(LOCALDEF)
#####################################################################
# Include default makefile
#####################################################################
include $(CFG)/makefile.cfg
#####################################################################
# Setup Targets
#####################################################################
MSGFILE=error$(LANGUAGE).msg
COMPILERDIR=$(BASEDIR)
RTLDIR:=$(BASEDIR)/../rtl
# specify where units are.
# This needs to be set correctly for the 'remake' target to work !
ifndef UNITDIR
UNITDIR=$(RTLDIR)/$(TARGET)
ifeq ($(TARGET),go32v1)
UNITDIR=$(RTLDIR)/dos/go32v1
endif
ifeq ($(TARGET),go32v2)
UNITDIR=$(RTLDIR)/dos/go32v2
endif
endif
# not def UNITDIR
# Where to install the executable program/link
ifndef PROGINSTALLDIR
ifdef inlinux
PROGINSTALLDIR = /usr/bin
else
PROGINSTALLDIR = c:\pp\bin
endif
endif
# !!! Linux only
# Where to install the _real_executable and support files
ifndef LIBINSTALLDIR
ifdef inlinux
LIBINSTALLDIR=/usr/lib/fpc/0.99.8
# for a.out
# LIBINSTALLDIR=/usr/lib/ppc/aout/0.99.8
else
LIBINSTALLDIR=$(PROGINSTALLDIR)
endif
endif
# Where the .msg files will be stored
ifndef MSGINSTALLDIR
MSGINSTALLDIR=$(LIBINSTALLDIR)/msg
endif
ifndef UNITINSTALLDIR
ifdef inlinux
UNITINSTALLDIR=$(LIBINSTALLDIR)
else
UNITINSTALLDIR=$(UNITDIR)
endif
endif
# !!! Linux only
# GCCLIBPATH is wat is it on my PC... it MUST be set in the main Makefile
ifndef GCCLIBPATH
GCCLIBPATH=/usr/lib/gcc-lib/i486-linux/2.6.3
endif
#####################################################################
# When making diffs of the sources
#####################################################################
# Diff program
DIFF = diff
# Diff3 program
DIFF3 = diff3
# Options to diff.
DIFFOPTS = -b -c
# Directory where files are to make diffs with..
ifdef inlinux
DIFDIR = /usr/local/fpk/work/new/compiler
else
DIFDIR = h:/cvs/compiler
endif
# Directory where reference files are for diff3
ifdef inlinux
REFDIR = /usr/local/fpk/dist/source/compiler
else
REFDIR = h:/myref/compiler
endif
#####################################################################
# End of configurable section. Do not edit after this line.
#####################################################################
DIFFEXIST:=$(shell $(DIFF) --help)
# Used to avoid unnecessary steps in remake3
@ -194,32 +88,6 @@ else
DIFFRESULT=No diff program
endif
# set correct defines (also needed by mkdep)
PPDEFS:=-d$(CPU) -dGDB -dFPC
# for i386 also insert MMX support
ifdef i386
PPDEFS:=$(PPDEFS) -dSUPPORT_MMX
endif
# Set the needed compiler options
PPOPTS:=$(OPT) $(LOCALOPT) $(PPDEFS) -Sg -T$(TARGET)
# Unitdir specified ?
ifneq ("$(UNITDIR)", "")
PPOPTS:=$(PPOPTS) -Up$(UNITDIR)
endif
# Do we need the GCC library ?
ifeq ($(LINK_TO_C),YES)
PPOPTS:=$(PPOPTS) -Fg$(GCCLIBPATH)
endif
# Create the whole compiler commandline
COMPILER=$(PP) $(PPOPTS)
# RTL options
RTLOPTS=$(OPT) $(RTLOPT)
#####################################################################
# Setup os-independent filenames
@ -235,9 +103,6 @@ TEMPNAME3=ppc3$(EXEEXT)
MAKEDEP=mkdep$(EXEEXT)
MSG2INC=msg2inc$(EXEEXT)
PASFILES:=$(wildcard *.pas)
INCFILES:=$(wildcard *.inc)
MSGFILES:=$(wildcard *.msg)
#####################################################################
# Default makefile
@ -248,22 +113,22 @@ MSGFILES:=$(wildcard *.msg)
.PHONY : all clean info \
cycle remake remake3 \
install next \
diff diff3 patch rtl toflor replacediff3 restorediff3 \
test rtlzip rtlclean \
diff diff3 patch replacediff3 restorediff3 \
test rtl rtlclean \
# also call ppas if with command option -s
ifeq (,$(findstring -s ,$(COMPILER)))
EXECPPAS=
else
EXECPPAS=@ppas
EXECPPAS=@$(PPAS)
endif
.pas.ppu:
$(COMPILER) $<
.pas$(PPUEXT):
$(COMPILER) $(LOCALOPT) $<
$(EXECPPAS)
.pas$(EXEEXT):
$(COMPILER) $<
$(COMPILER) $(LOCALOPT) $<
$(EXECPPAS)
@ -271,7 +136,7 @@ all : $(EXENAME)
# @echo Start $(STARTTIME) now $(ENDTIME)
# does not work because $(ENDTIME) is expanded
# before execution !!
$(MAKE) echotime
make echotime
ifeq ($(MAKELEVEL),0)
ifndef STARTTIME
@ -289,39 +154,27 @@ echotime:
ifndef DIFFRESULT
next :
@echo $(OLDPP) and $(PP) are equal
$(CP) $(PP) $(EXENAME)
$(COPY) $(PP) $(EXENAME)
else
next :
$(MAKE) execlean
$(MAKE) -C $(UNITDIR) libsclean
$(MAKE) -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(PP)' 'OPT=$(RTLOPTS)' all
$(MAKE) clean
$(MAKE) all
make execlean
make -C $(UNITDIR) libsclean
make -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(PP)' 'OPT=$(RTLOPTS)' all
make clean
make all
endif
clean :
-rm -rf *.sl
-rm -f *.a *.o *.ppu *.ppw *.s $(EXENAME)
-$(DEL) *$(OEXT) *$(PPUEXT) *$(ASMEXT) *$(STATICLIBEXT) $(EXENAME)
-$(DELTREE) $(SMARTEXT)
execlean :
-rm -f $(EXENAME)
-$(DEL) $(EXENAME)
distclean: clean
-rm -f $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3)
-$(DEL) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3)
#####################################################################
# Info
#####################################################################
info :
@echo Target is $(TARGET)
@echo Basedir is $(BASEDIR)
@echo Unitdir is $(UNITDIR)
@echo Compiler is $(COMPILER)
@echo Execppas is $(EXECPPAS)
@echo Pascal files are $(PASFILES)
@echo Inc files are $(INCFILES)
@echo Msg files are $(MSGFILES)
#####################################################################
# Include depencies (linux only)
@ -330,22 +183,23 @@ info :
ifdef inlinux
$(MAKEDEP) : $(RTLDIR)/utils/mkdep.pp
$(COMPILER) $(RTLDIR)/utils/mkdep.pp
$(CP) $(RTLDIR)/utils/$(MAKEDEP) $(MAKEDEP)
$(COPY) $(RTLDIR)/utils/$(MAKEDEP) $(MAKEDEP)
dependencies : $(MAKEDEP)
$(MAKEDEP) pp.pas $(PPDEFS) '-F$$(COMPILER)' > depend
$(MAKEDEP) pp.pas $(PPOPTDEF) $(LOCALDEF) '-F$$(COMPILER) $$(LOCALOPT)' > depend
include depend
endif
#####################################################################
# Make targets
#####################################################################
$(MSG2INC): $(RTLDIR)/utils/msg2inc.pp
$(COMPILER) $(RTLDIR)/utils/msg2inc.pp
$(CP) $(RTLDIR)/utils/$(MSG2INC) $(MSG2INC)
$(COPY) $(RTLDIR)/utils/$(MSG2INC) $(MSG2INC)
msgtxt.inc: $(MSGFILE) $(MSG2INC)
$(RTLDIR)/utils/$(MSG2INC) $(MSGFILE) msg msg
@ -356,175 +210,108 @@ msg: msgtxt.inc
ifdef inlinux
$(EXENAME) : $(PPEXENAME)
$(EXECPPAS)
$(REPLACE) $(PPEXENAME) $(EXENAME)
$(MOVE) $(PPEXENAME) $(EXENAME)
else
$(EXENAME) : $(PASFILES) $(INCFILES) $(MSGFILES)
$(COMPILER) pp.pas
$(COMPILER) $(LOCALOPT) pp.pas
$(EXECPPAS)
$(REPLACE) $(PPEXENAME) $(EXENAME)
$(MOVE) $(PPEXENAME) $(EXENAME)
endif
# This target remakes the units with the currently made version
remake: $(EXENAME)
$(REPLACE) $(EXENAME) $(TEMPNAME)
$(MAKE) execlean
$(MAKE) -C $(UNITDIR) libsclean
$(MAKE) -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(TEMPNAME)' 'OPT=$(RTLOPTS)' all
$(MAKE) clean
$(MAKE) 'PP=./$(TEMPNAME)' all
$(MOVE) $(EXENAME) $(TEMPNAME)
make execlean
make -C $(UNITDIR) libsclean
make -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(TEMPNAME)' 'OPT=$(RTLOPTS)' all
make clean
make 'PP=./$(TEMPNAME)' all
remake3: $(TEMPNAME3)
$(MAKE) 'PP=./$(TEMPNAME3)' 'OLDPP=./$(TEMPNAME2)' next
diff $(TEMPNAME3) $(EXENAME)
make 'PP=./$(TEMPNAME3)' 'OLDPP=./$(TEMPNAME2)' next
$(DIFF) $(TEMPNAME3) $(EXENAME)
$(TEMPNAME1) : $(EXENAME)
-$(REMOVE) $(TEMPNAME1)
$(REPLACE) $(EXENAME) $(TEMPNAME1)
-$(DEL) $(TEMPNAME1)
$(MOVE) $(EXENAME) $(TEMPNAME1)
$(TEMPNAME2) : $(TEMPNAME1)
$(MAKE) 'PP=./$(TEMPNAME1)' 'OLDPP=' next
-$(REMOVE) $(TEMPNAME2)
$(REPLACE) $(EXENAME) $(TEMPNAME2)
make 'PP=./$(TEMPNAME1)' 'OLDPP=' next
-$(DEL) $(TEMPNAME2)
$(MOVE) $(EXENAME) $(TEMPNAME2)
$(TEMPNAME3) : $(TEMPNAME2)
$(MAKE) 'PP=./$(TEMPNAME2)' 'OLDPP=./$(TEMPNAME1)' next
-$(REMOVE) $(TEMPNAME3)
$(REPLACE) $(EXENAME) $(TEMPNAME3)
make 'PP=./$(TEMPNAME2)' 'OLDPP=./$(TEMPNAME1)' next
-$(DEL) $(TEMPNAME3)
$(MOVE) $(EXENAME) $(TEMPNAME3)
cycle:
$(MAKE) clean
$(MAKE) -C $(UNITDIR) libsclean
$(MAKE) -C $(UNITDIR)
$(MAKE) remake3
$(MAKE) echotime
make clean
make -C $(UNITDIR) libsclean
make -C $(UNITDIR)
make remake3
make echotime
ansirtl:
$(MAKE) -C $(UNITDIR) libsclean
$(MAKE) -C $(UNITDIR) PP=$(COMPILERDIR)/ppc386 \
OPT='-g -dUSeAnsiStrings' all
#####################################################################
# Installation
#####################################################################
install:
ifdef inlinux
umask 022
strip ppc386
install -m 755 -d $(LIBINSTALLDIR)
install -m 755 ppc386 $(LIBINSTALLDIR)
ln -sf $(LIBINSTALLDIR)/ppc386 $(PROGINSTALLDIR)/ppc386
$(MKDIR) $(LIBINSTALLDIR)
$(INSTALLEXE) ppc386 $(LIBINSTALLDIR)
ln -sf $(LIBINSTALLDIR)/ppc386 $(BININSTALLDIR)/ppc386
-makecfg $(LIBINSTALLDIR)/samplecfg $(UNITINSTALLDIR) $(MSGINSTALLDIR) $(GCCLIBPATH)
install -m 755 -d $(MSGINSTALLDIR)
install -m 666 errore.msg $(MSGINSTALLDIR)
install -m 666 errorn.msg $(MSGINSTALLDIR)
else
$(MKDIR) $(BININSTALLDIR)
$(INSTALLEXE) ppc386$(EXEEXT) $(BININSTALLDIR)
endif
$(MKDIR) $(MSGINSTALLDIR)
$(INSTALL) errore.msg errorn.msg $(MSGINSTALLDIR)
#####################################################################
# Diffs
# Misc
#####################################################################
SOURCEFILES = $(PASFILES) $(INCFILES) $(MSGFILES) Makefile
DIFFFILES = $(patsubst %.pas,%.dif,$(PASFILES)) \
$(patsubst %.inc,%.dif,$(INCFILES)) \
$(patsubst %.msg,%.dif,$(MSGFILES)) \
Makefile.dif
DIFF3FILES = $(patsubst %.pas,%.d3p,$(PASFILES)) \
$(patsubst %.inc,%.d3i,$(INCFILES)) \
$(patsubst %.msg,%.d3m,$(MSGFILES)) \
Makefile.di3
PATCHFILES = $(patsubst %.pas,%.new,$(PASFILES)) \
$(patsubst %.inc,%.new,$(INCFILES)) \
$(patsubst %.msg,%.new,$(MSGFILES)) \
Makefile.new
%.dif : %.pas
-$(DIFF) $(DIFFOPTS) $*.pas $(DIFDIR)/$*.pas > $*.dif
%.dif : %.msg
-$(DIFF) $(DIFFOPTS) $*.msg $(DIFDIR)/$*.msg > $*.dif
%.dif : %.inc
-$(DIFF) $(DIFFOPTS) $*.inc $(DIFDIR)/$*.inc > $*.dif
Makefile.dif : Makefile
-$(DIFF) $(DIFFOPTS) Makefile $(DIFDIR)/Makefile > Makefile.dif
%.new : %.pas %.dif
-copy /y $*.pas $*.new
-patch $*.new $*.dif
%.new : %.msg %.dif
-copy /y $*.msg $*.new
-patch $*.new $*.dif
%.new : %.inc %.dif
-copy /y $*.inc $*.new
-patch $*.new $*.dif
Makefile.new : Makefile Makefile.dif
-copy /y Makefile Makefile.new
-patch Makefile.new Makefile.dif
%.d3p : %.pas
-$(DIFF3) -m -E $*.pas $(REFDIR)/$*.pas $(DIFDIR)/$*.pas > $*.d3p
%.d3m : %.msg
-$(DIFF3) -m -E $*.msg $(REFDIR)/$*.msg $(DIFDIR)/$*.msg > $*.d3m
%.d3i : %.inc
-diff3 -m -E $*.inc $(REFDIR)/$*.inc $(DIFDIR)/$*.inc > $*.d3i
Makefile.di3: Makefile
-diff3 -m -E Makefile $(REFDIR)/Makefile $(DIFDIR)/Makefile > Makefile.di3
diff : $(DIFFFILES)
diff3 : $(DIFF3FILES)
replacediff3 : diff3
copy /y *.pas *.bkp
copy /y *.inc *.bki
copy /y *.msg *.bkm
copy /y Makefile Makefile.old
copy /y *.d3p *.pas
copy /y *.d3i *.inc
copy /y *.d3m *.msg
copy /y Makefile.di3 Makefile
restorediff3 :
copy /y *.bkp *.pas
copy /y *.bki *.inc
copy /y *.bkm *.msg
copy /y Makefile.old Makefile
patch : $(PATCHFILES)
diffclean :
-del *.dif
-del *.d3*
-del *.new
rtl :
$(MAKE) -C $(UNITDIR) all
make -C $(UNITDIR) all
rtlclean :
$(MAKE) -C $(UNITDIR) libsclean
make -C $(UNITDIR) libsclean
# just a quick way to get ppc68k
$(M68KEXENAME):
$(MAKE) clean
make clean
$(PP) -uI386 -uSUPPORT_MMX -dm68k -o$(M68KEXENAME) pp
$(MAKE) clean
make clean
ansirtl:
make -C $(UNITDIR) libsclean
make -C $(UNITDIR) PP=$(COMPILERDIR)/ppc386 OPT='-g -dUSeAnsiStrings' all
test:
@echo time is $(STARTTIME) date.exe is $(DATE)
#####################################################################
# Default targets
#####################################################################
include $(CFG)/makefile.def
#
# $Log$
# Revision 1.3 1998-09-11 13:12:45 michael
# Revision 1.4 1998-09-16 16:41:38 peter
# * merged fixes
#
# Revision 1.1.2.2 1998/09/16 16:12:43 peter
# * uses makefile.cfg
#
# Revision 1.3 1998/09/11 13:12:45 michael
# + makecfg has support for different kinds of units
#
# Revision 1.2 1998/09/11 12:27:04 pierre
@ -533,7 +320,7 @@ test:
# Revision 1.1.2.1 1998/09/11 12:07:51 pierre
# + added execlean to be able to keep last *.s files
#
# Revision 1.1 1998/09/10 13:53:54 peter
# Revision 1.1 1998/09/10 13:53:54 peter
# * msg2inc compile works
#
# Revision 1.31 1998/09/09 18:26:25 michael

View File

@ -372,12 +372,12 @@ var
i : word;
begin
{ load start values }
asmfile:=current_module^.asmfilename^;
objfile:=current_module^.objfilename^;
name:=FixFileName(current_module^.modulename^);
OutCnt:=0;
SmartLinkFilesCnt:=0;
IsEndFile:=false;
{ Which path will be used ? }
if (cs_smartlink in aktmoduleswitches) then
begin
@ -456,7 +456,13 @@ end;
end.
{
$Log$
Revision 1.21 1998-09-07 18:33:32 peter
Revision 1.22 1998-09-16 16:41:39 peter
* merged fixes
Revision 1.21.2.1 1998/09/16 16:11:38 peter
* missing isendfile reset in .init
Revision 1.21 1998/09/07 18:33:32 peter
+ smartlinking for win95 imports
Revision 1.20 1998/09/04 17:34:20 pierre

View File

@ -103,6 +103,7 @@ scan_w_unsupported_switch=W_Niet ondersteunde schakelaar $1
scan_w_illegal_directive=W_Illegale compiler schakelaar $1
scan_d_back_in=D_Terug in $1
scan_w_unsupported_asmmode_specifier=W_Niet ondersteunde assembler soort gegeven $1
scan_e_wrong_switch_toggle=E_Verkeerde switch schakelaar, gebruik ON/OFF of +/-
#
# Parser

View File

@ -58,6 +58,30 @@ end;
constructor TMessage.InitExtern(const fn:string;n:longint);
{$ifndef FPC}
procedure readln(var t:text;var s:string);
var
c : char;
i : longint;
begin
c:=#0;
i:=0;
while (not eof(t)) and (c<>#10) do
begin
read(t,c);
if c<>#10 then
begin
inc(i);
s[i]:=c;
end;
end;
if (i>0) and (s[i]=#13) then
dec(i);
s[0]:=chr(i);
end;
{$endif}
const
bufsize=8192;
var
@ -224,7 +248,13 @@ end;
end.
{
$Log$
Revision 1.4 1998-09-14 10:44:08 peter
Revision 1.5 1998-09-16 16:41:42 peter
* merged fixes
Revision 1.3.2.1 1998/09/16 16:11:04 peter
* unix lf support for messagefile for not FPC compiled compiler
Revision 1.4 1998/09/14 10:44:08 peter
* all internal RTL functions start with FPC_
Revision 1.3 1998/08/29 13:52:31 peter

View File

@ -54,6 +54,7 @@ type tmsgconst=(
scan_w_illegal_directive,
scan_d_back_in,
scan_w_unsupported_asmmode_specifier,
scan_e_wrong_switch_toggle,
parser_e_syntax_error,
parser_w_proc_far_ignored,
parser_w_proc_near_ignored,

View File

@ -55,170 +55,171 @@ const msgtxt : array[0..00087,1..240] of char=(+
'W_Illegal compiler directive $1'#000+
'D_Back in $1'#000+
'W_Unsupported assembler style specified $1'#000+
'E_Pa','rser - Syntax Error'#000+
'E_Wr','ong switch toggle, use ON/OFF or +/-'#000+
'E_Parser - Syntax Error'#000+
'W_Procedure type FAR ignored'#000+
'W_Procedure type NEAR ignored'#000+
'E_No DLL File specified'#000+
'E_Constructor name must be INIT'#000+
'E_Destructor name must be DONE'#000+
'E_Illegal open parameter'#000+
'E_Procedure type INLINE not supported'#000+
'W_Private m','ethods shouldn'#039't be VIRTUAL'#000+
'E_Proced','ure type INLINE not supported'#000+
'W_Private methods shouldn'#039't be VIRTUAL'#000+
'W_Constructor should be public'#000+
'W_Destructor should be public'#000+
'N_Class should have one destructor only'#000+
'E_Local class definitions are not allowed'#000+
'E_Anonym class definitions are not allowed'#000+
'E_Anonym class definitions a','re not allowed'#000+
'E_Illegal parameter list'#000+
'E','_Wrong parameter type specified'#000+
'E_Wrong parameter type specified'#000+
'E_Wrong amount of parameters specified'#000+
'E_overloaded identifier isn'#039't a function identifier'#000+
'E_overloaded functions have the same parameter list'#000+
'E_function header doesn'#039't match the forward declaration $1'#000+
'N_only',' values can be jumped over in enumeration types'#000+
'E_function header doesn'#039,'t match the forward declaration $1'#000+
'N_only values can be jumped over in enumeration types'#000+
'N_Interface and implementation names are different !'#000+
'E_function nesting > 31'#000+
'E_range check error while evaluating constants'#000+
'E_duplicate case label'#000+
'E_typed constants of classes are not allowed'#000,+
'E_ty','ped constants of classes are not allowed'#000+
'E_functions variables of overloaded functions are not allowed'#000+
'E_string length must be a value from 1 to 255'#000+
'W_use extended syntax of DISPOSE and NEW to generate instances of obje'+
'cts'#000+
'E_class identifier expected'#000+
'E_class identifie','r expected'#000+
'E_method identifier expected'#000+
'E','_function header doesn'#039't match any method of this class'#000+
'E_function header doesn'#039't match any method of this class'#000+
'P_procedure/function $1'#000+
'E_Illegal floating point constant'#000+
'E_FAIL can be used in constructors only'#000+
'E_Destructors can'#039't have parameters'#000+
'E_Only class methods can be referred with class re','ferences'#000+
'E_Only cl','ass methods can be referred with class references'#000+
'E_Only class methods can be accessed in class methods'#000+
'E_Constant and CASE types do not match'#000+
'E_The symbol can'#039't be exported from a library'#000+
'W_A inherited method is hidden by $1'#000+
'E_There is no method in an ancestor class to be overrid','den: $1'#000+
'E_There is no ','method in an ancestor class to be overridden: $1'#000+
'E_No member is provided to access property'#000+
'E_Illegal symbol for property access'#000+
'E_Cannot access a protected field of an object here'#000+
'E_Cannot access a private field of an object here'#000+
'W_overloaded of virtual method must be virtual: $1',#000+
'W_overloa','ded of virtual method must be virtual: $1'#000+
'E_overloaded methods which are virtual must have the same return type:'+
' $1'#000+
'E_EXPORT declared functions can'#039't be nested'#000+
'E_methods can'#039't be EXPORTed'#000+
'E_call by var parameters have to match exactly'#000+
'E_Class isn'#039't a super class of the current cla','ss'#000+
'E_Cla','ss isn'#039't a super class of the current class'#000+
'E_SELF is only allowed in methods'#000+
'E_methods can be only in other methods called direct with type identif'+
'ier of the class'#000+
'E_Illegal use of '#039':'#039#000+
'E_range check error in set constructor or duplicate set element'#000+
'E_range check error in set constructor or duplicate se','t element'#000+
'E_Pointer to class expected'#000+
'E_E','xpression must be constructor call'#000+
'E_Expression must be constructor call'#000+
'E_Expression must be destructor call'#000+
'E_Illegal order of record elements'#000+
'E_Expression type must by class or record type'#000+
'E_Functions with void return value can'#039't return any value'#000+
'E_constructors and destructo','rs must be methods'#000+
'E_Functions with void return value can'#039't retu','rn any value'#000+
'E_constructors and destructors must be methods'#000+
'E_Operator is not overloaded'#000+
'E_Re-raise isn'#039't possible there'#000+
'E_The extended syntax of new or dispose isn'#039't allowed for a class'#000+
'E_Assembler incompatible with function return value'#000+
'E_Procedure overloading is switched off'#000+
'E_','It is not possible to overload this operator (overload = instead)'#000+
'E','_Procedure overloading is switched off'#000+
'E_It is not possible to overload this operator (overload = instead)'#000+
'E_Comparative operator must return a boolean value'#000+
'E_Only virtual methods can be abstract'#000+
'F_Use of unsupported feature!'#000+
'E_The mix of CLASSES and OBJECTS isn'#039't allowed'#000+
'W_Unkno','wn procedure directive had to be ignored: $1'#000+
'E_The mix of ','CLASSES and OBJECTS isn'#039't allowed'#000+
'W_Unknown procedure directive had to be ignored: $1'#000+
'E_absolute can only be associated to ONE variable'#000+
'E_absolute can only be associated a var or const'#000+
'E_Abtract methods shouldn'#039't have any definition (with function bod'+
'y)'#000+
'E_This overloaded function ','can'#039't be local (must be exported)'#000+
'E_Abtract methods shouldn'#039't have any definition (with f','unction b'+
'ody)'#000+
'E_This overloaded function can'#039't be local (must be exported)'#000+
'W_Virtual methods are used without a constructor in $1'#000+
'M_Macro defined: $1'#000+
'M_Macro undefined: $1'#000+
'M_Macro $1 set to $2'#000+
'I_Compiling $1'#000+
'D_Compiling $1 for the second time'#000+
'E_Array properties aren'#039't allowed at t','his point'#000+
'D_Compiling $1 for the second ti','me'#000+
'E_Array properties aren'#039't allowed at this point'#000+
'E_No property found to override'#000+
'E_Only one default property is allowed, found inherited default proper'+
'ty in class %1'#000+
'E_The default property must be an array property'#000+
'E_Virtual constructors are only supported in class object model'#000,+
'E_Virtual constructors ','are only supported in class object model'#000+
'E_No default property available'#000+
'E_The class can'#039't have a published section, use the {$M+} switch'#000+
'E_Forward declaration of class $1 must be resolved here to use the cla'+
'ss as anchestor'#000+
'E_Local operators not supported'#000+
'E_Procedure directive $1 ','not allowed in interface section'#000+
'E_Local operator','s not supported'#000+
'E_Procedure directive $1 not allowed in interface section'#000+
'E_Procedure directive $1 not allowed in implementation section'#000+
'E_Procedure directive $1 not allowed in procvar declaration'#000+
'E_Function is already declared Public/Forward $1'#000+
'E_Can'#039't use both EXPORT and EXTERNA','L'#000+
'E_Function is already declared Public/Forwa','rd $1'#000+
'E_Can'#039't use both EXPORT and EXTERNAL'#000+
'E_NAME keyword expected'#000+
'W_$1 not yet supported inside inline procedure/function'#000+
'W_Inlining disabled'#000+
'I_Writing Browser log $1'#000+
'H_may be pointer deref ^ is missing'#000+
'F_Selected assembler reader not supported'#000+
'E_Procedure directive $1 has confli','cts with other directives'#000+
'F_Selected assembler reader not supp','orted'#000+
'E_Procedure directive $1 has conflicts with other directives'#000+
'E_Calling convention doesn'#039't match forward'#000+
'E_Register calling (fastcall) not supported'#000+
'E_Property can'#039't have a default value'#000+
'E_The default value of a property must be constant'#000+
'E_Symbol can'#039't be published, can be on','ly a class'#000+
'E_The default value of a property must be consta','nt'#000+
'E_Symbol can'#039't be published, can be only a class'#000+
'E_That kind of property can'#039't be published'#000+
'E_Type mismatch'#000+
'E_Integer expression expected'#000+
'E_Ordinal expression expected'#000+
'E_Type identifier expected'#000+
'E_Variable identifier expected'#000+
'E_pointer type expected'#000+
'E_pointer t','ype expected'#000+
'E_class type expected'#000+
'E_Vari','able or type indentifier expected'#000+
'E_Variable or type indentifier expected'#000+
'E_Can'#039't evaluate constant expression'#000+
'E_Set elements are not compatible'#000+
'W_Automatic type conversion from floating type to COMP which is an int'+
'eger type'#000+
'W_Using / will give a floating point result'#000+
'H_use DIV i','nstead to get an integer result'#000+
'W_Using / will',' give a floating point result'#000+
'H_use DIV instead to get an integer result'#000+
'E_string types doesn'#039't match, because of $V+ mode'#000+
'E_succ or pred on enums with assignments not possible'#000+
'E_Can'#039't read or write variables of this type'#000+
'E_Type conflict between set elements'#000+
'E_Integer or real expr','ession expected'#000+
'E_Type conflict be','tween set elements'#000+
'E_Integer or real expression expected'#000+
'E_Identifier not found $1'#000+
'F_Internal Error in SymTableStack()'#000+
'E_Duplicate identifier $1'#000+
'E_Unknown identifier $1'#000+
'E_Forward declaration not solved: $1'#000+
'F_Identifier type already defined as type'#000+
'F_Identifier type already defined ','as type'#000+
'E_Error in type defenition'#000+
'E_Type',' identifier not defined'#000+
'E_Type identifier not defined'#000+
'E_Only static variables can be used in static methods or outside metho'+
'ds'#000+
'E_Invalid call to tvarsym.mangledname()'#000+
'F_record or class type expected'#000+
'E_To generate an instance of a class or an object with an abtract meth'+
'o','d isn'#039't allowed'#000+
'E_To generate an instance of a',' class or an object with an abtract me'+
'thod isn'#039't allowed'#000+
'E_Label not defined $1'#000+
'E_Illegal label declaration'#000+
'E_GOTO und LABEL are not supported (use command line switch -Sg)'#000+
'E_Label not found'#000+
'E_identifier isn'#039't a label'#000+
'E_label already defined'#000+
'E_illegal type declaration of set eleme','nts'#000+
'E_label already define','d'#000+
'E_illegal type declaration of set elements'#000+
'E_Forward class definition not resolved $1'#000+
'H_Parameter not used $1'#000+
'W_Local variable not used $1'#000+
'E_Set type expected'#000+
'W_Function result does not seem to be set'#000+
'E_Unknown field identifier'#000+
'W_Local variable $1 does not seem to be initialized',#000+
'W_Local va','riable $1 does not seem to be initialized'#000+
'E_identifier idents no member $1'#000+
'B_Found declaration: $1'#000+
'E_BREAK not allowed'#000+
@ -226,141 +227,141 @@ const msgtxt : array[0..00087,1..240] of char=(+
'E_Expression too complicated - FPU stack overflow'#000+
'E_Illegal expression'#000+
'E_Invalid integer'#000+
'E_Illegal qualifier'#000+
'E_High range limit < low range',' limit'#000+
'E_Illegal',' qualifier'#000+
'E_High range limit < low range limit'#000+
'E_Illegal counter variable'#000+
'E_Can'#039't determine which overloaded function to call'#000+
'E_Parameter list size exceeds 65535 bytes'#000+
'E_Illegal type conversion'#000+
'E_File types must be var parameters'#000+
'E_The use of a far pointer isn'#039't allowed there'#000+
'E_i','llegal call by reference parameters'#000+
'E_The use',' of a far pointer isn'#039't allowed there'#000+
'E_illegal call by reference parameters'#000+
'E_EXPORT declared functions can'#039't be called'#000+
'W_Possible illegal call of constructor or destructor (doesn'#039't matc'+
'h to this context)'#000+
'N_Inefficient code'#000+
'W_unreachable code'#000+
'E_procedure call with stackframe ESP/','SP'#000+
'W_unreachable c','ode'#000+
'E_procedure call with stackframe ESP/SP'#000+
'E_Abstract methods can'#039't be called directly'#000+
'F_Internal Error in getfloatreg(), allocation failure'#000+
'F_Unknown float type'#000+
'F_SecondVecn() base defined twice'#000+
'F_Extended cg68k not supported'#000+
'F_32-bit unsigned not supported in MC68000 mode'#000+
'F_Int','ernal Error in secondinline()'#000+
'F_32-bit uns','igned not supported in MC68000 mode'#000+
'F_Internal Error in secondinline()'#000+
'D_Register $1 weight $2 $3'#000+
'E_Stack limit excedeed in local routine'#000+
'D_Stack frame is omited'#000+
'E_Unable to inline object methods'#000+
'E_Unable to inline procvar calls'#000+
'E_No code for inline procedure stored'#000+
'F_Divide by ze','ro in asm evaluator'#000+
'E_No code f','or inline procedure stored'#000+
'F_Divide by zero in asm evaluator'#000+
'F_Evaluator stack overflow'#000+
'F_Evaluator stack underflow'#000+
'F_Invalid numeric format in asm evaluator'#000+
'F_Invalid Operator in asm evaluator'#000+
'F_Unknown error in asm evaluator'#000+
'W_Invalid numeric value'#000+
'E_escape sequence ignored: $1'#000,+
'W_Invalid num','eric value'#000+
'E_escape sequence ignored: $1'#000+
'E_Asm syntax error - Prefix not found'#000+
'E_Asm syntax error - Trying to add more than one prefix'#000+
'E_Asm syntax error - Opcode not found'#000+
'E_Invalid symbol reference'#000+
'W_Calling an overload function in an asm'#000+
'W_Calling an overload function in an asm',#000+
'E_Constant value out of bounds'#000+
'E_Non-lab','el pattern contains @'#000+
'E_Non-label pattern contains @'#000+
'E_Invalid Operand: $1'#000+
'W_Override operator not supported'#000+
'E_Error in binary constant: $1'#000+
'E_Error in octal constant: $1'#000+
'E_Error in hexadecimal constant: $1'#000+
'E_Error in integer constant: $1'#000+
'E_Error in integer const','ant: $1'#000+
'E_Invalid labeled opcode'#000+
'F_Intern','al error in Findtype()'#000+
'F_Internal error in Findtype()'#000+
'E_Invalid size for MOVSX/MOVZX'#000+
'E_16-bit base in 32-bit segment'#000+
'E_16-bit index in 32-bit segment'#000+
'E_Invalid Opcode'#000+
'E_Constant reference not allowed'#000+
'W_Fwait can cause emulation problems with emu387'#000+
'E_Invalid combination ','of opcode and operands'#000+
'W_Fwait can cause emulation pr','oblems with emu387'#000+
'E_Invalid combination of opcode and operands'#000+
'W_Opcode $1 not in table, operands not checked'#000+
'F_Internal Error in ConcatOpcode()'#000+
'E_Invalid size in reference'#000+
'E_Invalid middle sized operand'#000+
'E_Invalid three operand opcode'#000+
'E_Assembler syntax error'#000+
'E_Invalid operand ty','pe'#000+
'E_As','sembler syntax error'#000+
'E_Invalid operand type'#000+
'E_Segment overrides not supported'#000+
'E_Invalid constant symbol $1'#000+
'F_Internal Errror converting binary'#000+
'F_Internal Errror converting hexadecimal'#000+
'F_Internal Errror converting octal'#000+
'E_Invalid constant expression'#000+
'E_Invalid constant ex','pression'#000+
'E_Unknown identifier: $1'#000+
'E_Tryin','g to define an index register more than once'#000+
'E_Trying to define an index register more than once'#000+
'E_Invalid field specifier'#000+
'F_Internal Error in BuildScaling()'#000+
'E_Invalid scaling factor'#000+
'E_Invalid scaling value'#000+
'E_Scaling value only allowed with index'#000+
'E_Invalid assembler syntax. No ref with brack','ets)'#000+
'E_In','valid assembler syntax. No ref with brackets)'#000+
'E_Expressions of the form [sreg:reg...] are currently not supported'#000+
'E_Trying to define a segment register twice'#000+
'E_Trying to define a base register twice'#000+
'E_Trying to use a negative index register'#000+
'E_Asm syntax error - error in reference'#000,+
'E_Trying to use a negative index register',#000+
'E_Asm syntax error - error in reference'#000+
'E_Local symbols not allowed as references'#000+
'E_Invalid operand in bracket expression'#000+
'E_Invalid symbol name: $1'#000+
'E_Invalid Reference syntax'#000+
'E_Invalid string as opcode operand: $1'#000+
'W_@CODE and @DATA not supported'#000+
'E_Null label references are not al','lowed'#000+
'W_@CODE and @DATA not sup','ported'#000+
'E_Null label references are not allowed'#000+
'W_Calling of an overloaded function in direct assembler'#000+
'E_Cannot use SELF outside a method'#000+
'E_Asm syntax error - Should start with bracket'#000+
'E_Asm syntax error - register: $1'#000+
'E_SEG and OFFSET not supported'#000+
'E_Asm syntax error - in opcode ','operand'#000+
'E_SEG and OFFSET not ','supported'#000+
'E_Asm syntax error - in opcode operand'#000+
'E_Invalid String expression'#000+
'E_Constant expression out of bounds'#000+
'F_Internal Error in BuildConstant()'#000+
'W_A repeat prefix and a segment override on <= i386 may result in erro'+
'rs if an interrupt occurs'#000+
'rs if an interrupt oc','curs'#000+
'E_Invalid or missing opcode'#000+
'E_Invali','d combination of prefix and opcode: $1'#000+
'E_Invalid combination of prefix and opcode: $1'#000+
'E_Invalid combination of override and opcode: $1'#000+
'E_Too many operands on line'#000+
'E_Duplicate local symbol: $1'#000+
'E_Unknown label identifer: $1'#000+
'E_Assemble node syntax error'#000+
'E_Assemble node syntax e','rror'#000+
'E_Undefined local symbol: $1'#000+
'D_Start','ing intel styled assembler parsing...'#000+
'D_Starting intel styled assembler parsing...'#000+
'D_Finished intel styled assembler parsing...'#000+
'E_Not a directive or local symbol: $1'#000+
'E_/ at beginning of line not allowed'#000+
'E_NOR not supported'#000+
'E_Invalid floating point register name'#000+
'W_Modulo not supported'#000,+
'E_Invalid floating po','int register name'#000+
'W_Modulo not supported'#000+
'E_Invalid floating point constant: $1'#000+
'E_Size suffix and destination register do not match'#000+
'E_Internal error in ConcatLabeledInstr()'#000+
'W_Floating point binary representation ignored'#000+
'W_Floating point hexadecimal representation ignored'#000+
'W_Floating',' point octal representation ignored'#000+
'W_Floating point hexa','decimal representation ignored'#000+
'W_Floating point octal representation ignored'#000+
'E_Invalid real constant expression'#000+
'E_Parenthesis are not allowed'#000+
'E_Invalid Reference'#000+
'E_Cannot use __SELF outside a method'#000+
'E_Cannot use __OLDEBP outside a nested procedure'#000+
'W_Identifier $1 supposed external',#000+
'E_Cannot use __OLDEBP outside a nested pr','ocedure'#000+
'W_Identifier $1 supposed external'#000+
'E_Invalid segment override expression'#000+
'E_Strings not allowed as constants'#000+
'D_Starting AT&T styled assembler parsing...'#000+
'D_Finished AT&T styled assembler parsing...'#000+
'E_Switching sections is not allowed in an assembler block'#000+
'E_Invalid global def','inition'#000+
'E_Switching sections is not allowed i','n an assembler block'#000+
'E_Invalid global definition'#000+
'E_Line separator expected'#000+
'W_globl not supported'#000+
'W_align not supported'#000+
@ -368,58 +369,58 @@ const msgtxt : array[0..00087,1..240] of char=(+
'W_comm not supported'#000+
'E_Invalid local common definition'#000+
'E_Invalid global common definition'#000+
'E_local symbol: $1 not found inside asm statement'#000,+
'E_local s','ymbol: $1 not found inside asm statement'#000+
'E_assembler code not returned to text'#000+
'F_internal error in BuildReference()'#000+
'E_invalid opcode size'#000+
'W_NEAR ignored'#000+
'W_FAR ignored'#000+
'D_Creating inline asm lookup tables'#000+
'W_Using a defined name as a local label'#000+
'W_Using a defined name as a local lab','el'#000+
'F_internal error in HandleExtend()'#000+
'E_I','nvalid character: <'#000+
'E_Invalid character: <'#000+
'E_Invalid character: >'#000+
'E_Unsupported opcode'#000+
'E_Increment and Decrement mode not allowed together'#000+
'E_Invalid Register list in movem/fmovem'#000+
'E_Invalid Register list for opcode'#000+
'E_68020+ mode required to assemble'#000+
'D_Starting Mot','orola styled assembler parsing...'#000+
'E_68020+',' mode required to assemble'#000+
'D_Starting Motorola styled assembler parsing...'#000+
'D_Finished Motorola styled assembler parsing...'#000+
'W_XDEF not supported'#000+
'W_Functions with void return value can'#039't return any value in asm c'+
'ode'#000+
'E_Invalid suffix for intel assembler'#000+
'E_Extended not supported in th','is mode'#000+
'E_Invalid suffix for intel',' assembler'#000+
'E_Extended not supported in this mode'#000+
'E_Comp not supported in this mode'#000+
'W_You need GNU as version >= 2.81 to compile this MMX code'#000+
'F_Too many assembler files'#000+
'F_Selected assembler output not supported'#000+
'E_Unsupported symbol type for operand'#000+
'E_Unsupported symbol type for',' operand'#000+
'I_Assembling (pipe) $1'#000+
'E_Can'#039't c','reate assember file $1'#000+
'E_Can'#039't create assember file $1'#000+
'W_Assembler $1 not found, switching to external assembling'#000+
'U_Using assembler: $1'#000+
'W_Error while assembling exitcode $1'#000+
'W_Can'#039't call the assembler, error $1 switching to external assembl'+
'ing'#000+
'W_Can'#039't call the assembler, error $1 switching to external',' assem'+
'bling'#000+
'I_Assembling $1'#000+
'W_Linker $1 n','ot found, switching to external linking'#000+
'W_Linker $1 not found, switching to external linking'#000+
'U_Using linker: $1'#000+
'W_Object $1 not found, Linking may fail !'#000+
'W_Library $1 not found, Linking may fail !'#000+
'W_Error while linking'#000+
'W_Can'#039't call the linker, switching to external linking'#000+
'W_Can'#039't call the linker, switchin','g to external linking'#000+
'I_Linking $1'#000+
'W_bind','er not found, switching to external binding'#000+
'W_binder not found, switching to external binding'#000+
'W_ar not found, switching to external ar'#000+
'E_Dynamic Libraries not supported'#000+
'I_Closing script $1'#000+
'U_PPU Loading $1'#000+
'D_PPU Time: $1'#000+
'D_PPU File too short'#000+
'D_PPU Invalid Header (no PPU at the begin)'#000+
'D_PPU',' Invalid Version $1'#000+
'D_PPU I','nvalid Header (no PPU at the begin)'#000+
'D_PPU Invalid Version $1'#000+
'D_PPU Flags: $1'#000+
'D_PPU Crc: $1'#000+
'T_PPU Source: $1'#000+
@ -427,35 +428,35 @@ const msgtxt : array[0..00087,1..240] of char=(+
'D_objectfile is older than assemblerfile'#000+
'T_Unitsearch: $1'#000+
'U_Writing $1'#000+
'F_Can'#039't Write PPU-File'#000+
'F_Can'#039't',' Write PPU-File'#000+
'F_reading PPU-File'#000+
'F_Inva','lid PPU-File entry: $1'#000+
'F_Invalid PPU-File entry: $1'#000+
'F_PPU Dbx count problem'#000+
'E_Illegal unit name: $1'#000+
'F_Too much units'#000+
'F_Circular unit reference'#000+
'F_Can'#039't compile unit $1, no sources available'#000+
'W_Compiling the system unit requires the -Us switch'#000+
'F_There were $1 errors compi','ling module, stopping'#000+
'W_Compiling the system unit requires th','e -Us switch'#000+
'F_There were $1 errors compiling module, stopping'#000+
'$1 [options] <inputfile> [options]'#000+
'W_Only one source file supported'#000+
'W_DEF file can be created only for OS/2'#000+
'E_nested response files are not supported'#000+
'F_No source file name in command line'#000+
'F_No source file name in co','mmand line'#000+
'E_Illegal parameter: $1'#000+
'H_-? w','rites help pages'#000+
'H_-? writes help pages'#000+
'F_Too many config files nested'#000+
'F_Unable to open file $1'#000+
'N_Reading further options from $1'#000+
'W_Target is already set to: $1'#000+
'W_Shared libs not supported on DOS platform, reverting to static'#000+
'W_Shared libs not supported on DOS platform, reverting to sta','tic'#000+
'F_too many IF(N)DEFs'#000+
'F_too many ENDIF','s'#000+
'F_too many ENDIFs'#000+
'F_open conditional at the end of the file'#000+
'W_Debug information generation is not supported by this executable'#000+
'H_Try recompiling with -dGDB'#000+
'Free Pascal Compiler version $FPCVER [$FPCDATE] for $FPCTARGET'#000+
'Copyright (c) 1993-98 by Florian Klae','mpfl'#000+
'Free Pascal Compiler version $FPCVER [$FPCDATE] for $FPCTAR','GET'#000+
'Copyright (c) 1993-98 by Florian Klaempfl'#000+
'Free Pascal Compiler version $FPCVER'#000+
#000+
'Compiler Date : $FPCDATE'#000+
@ -464,38 +465,38 @@ const msgtxt : array[0..00087,1..240] of char=(+
'This program comes under the GNU General Public Licence'#000+
'For more information read COPYING.FPC'#000+
#000+
'Report bugs,suggestions etc to:'#000+
' ',' fpc-devel@mail.tolna.hungary.net'#000+
'Report',' bugs,suggestions etc to:'#000+
' fpc-devel@mail.tolna.hungary.net'#000+
'**0*_+ switch option on, - off'#000+
'**1a_the compiler doesn'#039't delete the generated assembler file'#000+
'**2al_list sourcecode lines in assembler file (still BETA !!)'#000+
'*t1b_use EMS'#000+
'*t1b_use ','EMS'#000+
'**1B_build all modules'#000+
'**1C_code gene','ration options'#000+
'**1C_code generation options'#000+
'3*2CD_create dynamic library'#000+
'**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#000+
'**2Ci_IO-checking'#000+
'**2Cn_omit linking stage'#000+
'**2Co_check overflow of integer operations'#000+
'**2Cr_range checking'#000+
'**2Cr_range check','ing'#000+
'**2Cs<n>_set stack size to <n>'#000+
'**2Ct_','stack checking'#000+
'**2Ct_stack checking'#000+
'3*2CS_create static library'#000+
'3*2Cx_use smartlinking'#000+
'**1d<x>_defines the symbol <x>'#000+
'*O1D_generate a DEF file'#000+
'*O2Dd<x>_set description to <x>'#000+
'*O2Dw_PM application'#000+
'**1e<x>_set path to executable'#000+
'**1e<x>_set path to exec','utable'#000+
'**1E_same as -Cn'#000+
'**1F_set file nam','es and paths'#000+
'**1F_set file names and paths'#000+
'**2Fe<x>_redirect error output to <x>'#000+
'*L2Fg<x>_same as -Fl'#000+
'**2Fi<x>_adds <x> to include path'#000+
'**2Fl<x>_adds <x> to library path'#000+
'*L2FL<x>_uses <x> as dynamic linker'#000+
'**2Fo<x>_adds <x> to object path'#000+
'**2Fr<x>_load error message fil','e <x>'#000+
'**2Fo<x>_adds <x> to ob','ject path'#000+
'**2Fr<x>_load error message file <x>'#000+
'**2Fu<x>_adds <x> to unit path'#000+
'*g1g_generate debugger information'#000+
'*g2gg_use gsym'#000+
@ -504,31 +505,31 @@ const msgtxt : array[0..00087,1..240] of char=(+
'**1I<x>_adds <x> to include path'#000+
'**1k<x>_Pass <x> to the linker'#000+
'**1l_write logo'#000+
'**1n_don'#039't read the default config file'#000+
'**','1o<x>_change the name of the executable produced to <x>'#000+
'*','*1n_don'#039't read the default config file'#000+
'**1o<x>_change the name of the executable produced to <x>'#000+
'**1pg_generate profile code for gprof'#000+
'*L1P_use pipes instead of creating temporary assembler files'#000+
'**1S_syntax options'#000+
'**2S2_switch some Delphi 2 extensions on'#000+
'**2Sc_supports operators',' like C (*=,+=,/= and -=)'#000+
'**2S2_switch some Delphi',' 2 extensions on'#000+
'**2Sc_supports operators like C (*=,+=,/= and -=)'#000+
'**2Sd_compiler disposes asm lists (uses less memory but slower)'#000+
'**2Se_compiler stops after the first error'#000+
'**2Sg_allow LABEL and GOTO'#000+
'**2Si_support C++ stlyed INLINE'#000+
'**2Sm_support macros like C (global)'#000+
'**2So_tries',' to be TP/BP 7.0 compatible'#000+
'**2Sm_s','upport macros like C (global)'#000+
'**2So_tries to be TP/BP 7.0 compatible'#000+
'**2Sp_tries to be gpc compatible'#000+
'**2Ss_constructor name must be init (destructor must be done)'#000+
'**2St_allow static keyword in objects'#000+
'**2Sv_allow variable directives (cvar,external,public,export)'#000+
'**1s_don'#039't call a','ssembler and linker (only with -a)'#000+
'**2Sv_allow variable directives (cvar,','external,public,export)'#000+
'**1s_don'#039't call assembler and linker (only with -a)'#000+
'**1T<x>_Target operating system'#000+
'3*2TGO32V1_version 1 of DJ Delorie DOS extender'#000+
'3*2TGO32V2_version 2 of DJ Delorie DOS extender'#000+
'3*2TLINUX_Linux'#000+
'3*2TOS2_OS/2 2.x'#000+
'3*2TWin32_Windows 32 Bit'#000+
'6*2TAMIGA_Commodore',' Amiga'#000+
'3*2','TWin32_Windows 32 Bit'#000+
'6*2TAMIGA_Commodore Amiga'#000+
'6*2TATARI_Atari ST/STe/TT'#000+
'6*2TMACOS_Macintosh m68k'#000+
'6*2TLINUX_Linux-68k'#000+
@ -536,56 +537,57 @@ const msgtxt : array[0..00087,1..240] of char=(+
'**1U_unit options'#000+
'**2Un_don'#039't check the unit name'#000+
'**2Up<x>_same as -Fu<x>'#000+
'**2Us_compile a system unit'#000+
'**1v<x>_Be verbose. <x> is ','a combination of the following letters :'#000+
'**2Us_compile ','a system unit'#000+
'**1v<x>_Be verbose. <x> is a combination of the following letters :'#000+
'**2*_e : Show errors (default) d : Show debug info'#000+
'**2*_w : Show warnings u : Show used files'#000+
'**2*_n : Show notes t : Show tried files'#000+
'**2*_h : Show hints ',' m : Show defined macros'#000+
'**2*_n : Show notes t : Sho','w tried files'#000+
'**2*_h : Show hints m : Show defined macros'#000+
'**2*_i : Show general info p : Show compiled procedures'#000+
'**2*_l : Show linenumbers c : Show conditionals'#000+
'**2*_a : Show everything 0 : Show nothing (except errors)'#000+
'**2*_b : Sh','ow all procedure'#000+
'**2*_a : Show everything 0 :',' Show nothing (except errors'+
')'#000+
'**2*_b : Show all procedure'#000+
'**2*_ declarations if an error'#000+
'**2*_ occurs'#000+
'**1X_executable options'#000+
'*L2Xc_link with the c library'#000+
'**2XD_link with dynamic libraries (defines FPC_LINK_DYNAMIC)'#000+
'**2Xs_strip all symbols from executable'#000+
'**2XS_link with st','atic libraries (defines FPC_LINK_STATIC)'#000+
'**2Xs_strip all s','ymbols from executable'#000+
'**2XS_link with static libraries (defines FPC_LINK_STATIC)'#000+
'**0*_Processor specific options:'#000+
'3*1A_output format'#000+
'3*2Ao_coff file using GNU AS'#000+
'3*2Anasmcoff_coff file using Nasm'#000+
'3*2Anasmelf_elf32 (linux) file using Nasm'#000+
'3*2Anasmobj_obj file using Nasm'#000+
'3*2Amasm_o','bj using Masm (Mircosoft)'#000+
'3','*2Anasmobj_obj file using Nasm'#000+
'3*2Amasm_obj using Masm (Mircosoft)'#000+
'3*2Atasm_obj using Tasm (Borland)'#000+
'3*1R_assembler reading style'#000+
'3*2Ratt_read AT&T style assembler'#000+
'3*2Rintel_read Intel style assembler'#000+
'3*2Rdirect_copy assembler text directly to assembler file'#000+
'3*1O<x>_optimizations'#000,+
'3*2Rdirect_copy assembler text directly',' to assembler file'#000+
'3*1O<x>_optimizations'#000+
'3*2Og_generate smaller code'#000+
'3*2OG_generate faster code (default)'#000+
'3*2Or_keep certain variables in registers (still BUGGY!!!)'#000+
'3*2Ou_enable uncertain optimizations (see docs)'#000+
'3*2O1_level 1 optimizations (quick optimizations)'#000+
'3*2O2_level 2 opti','mizations (-O1 + slower optimizations)'#000+
'3*2O1_level 1 optimizations',' (quick optimizations)'#000+
'3*2O2_level 2 optimizations (-O1 + slower optimizations)'#000+
'3*2O3_level 3 optimizations (same as -O2u)'#000+
'3*2Op_target processor'#000+
'3*3Op1_set target processor to 386/486'#000+
'3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#000+
'3*3Op3_set target processor to PPro/PII/c','6x86/K6 (tm)'#000+
'3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#000,+
'3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#000+
'6*1A_output format'#000+
'6*2Ao_Unix o-file using GNU AS'#000+
'6*2Agas_GNU Motorola assembler'#000+
'6*2Amit_MIT Syntax (old GAS)'#000+
'6*2Amot_Standard Motorola assembler'#000+
'6*1O_optimizations'#000+
'6*2Oa_turn on the optimizer'#000+
'6*2Oa_turn on the opt','imizer'#000+
'6*2Og_generate smaller code'#000+
'6*2OG_','generate faster code (default)'#000+
'6*2OG_generate faster code (default)'#000+
'6*2Ox_optimize maximum (still BUGGY!!!)'#000+
'6*2O2_set target processor to a MC68020+'#000+
'**1*_'#000+

View File

@ -275,6 +275,7 @@ const
hs : string;
mac : pmacrosym;
found : boolean;
state : char;
begin
while true do
begin
@ -294,13 +295,14 @@ const
_DIR_IFOPT : begin
current_scanner^.skipspace;
hs:=current_scanner^.readid;
if (length(hs)=1) and (c in ['-','+']) then
begin
found:=CheckSwitch(hs[1],c);
current_scanner^.readchar; {read + or -}
end
if (length(hs)>1) then
Message(scan_w_illegal_switch)
else
Message(scan_w_illegal_switch);
begin
state:=current_scanner^.ReadState;
if state in ['-','+'] then
found:=CheckSwitch(hs[1],state);
end;
current_scanner^.addpreprocstack(found,hs,scan_c_ifopt_found);
end;
_DIR_IF : begin
@ -458,15 +460,16 @@ const
procedure dir_moduleswitch(t:tdirectivetoken);
var
sw : tmoduleswitch;
state : char;
begin
sw:=cs_modulenone;
case t of
_DIR_SMARTLINK : sw:=cs_smartlink;
end;
current_scanner^.skipspace;
if sw<>cs_modulenone then
state:=current_scanner^.readstate;
if (sw<>cs_modulenone) and (state in ['-','+']) then
begin
if c='-' then
if state='-' then
aktmoduleswitches:=aktmoduleswitches-[sw]
else
aktmoduleswitches:=aktmoduleswitches+[sw];
@ -477,6 +480,7 @@ const
procedure dir_localswitch(t:tdirectivetoken);
var
sw : tlocalswitch;
state : char;
begin
sw:=cs_localnone;
{$ifdef SUPPORT_MMX}
@ -485,10 +489,10 @@ const
_DIR_SATURATION : sw:=cs_mmx_saturation;
end;
{$endif}
current_scanner^.skipspace;
if sw<>cs_localnone then
state:=current_scanner^.readstate;
if (sw<>cs_localnone) and (state in ['-','+']) then
begin
if c='-' then
if state='-' then
aktlocalswitches:=aktlocalswitches-[sw]
else
aktlocalswitches:=aktlocalswitches+[sw];
@ -712,21 +716,10 @@ const
else
exit;
end;
{ support ON/OFF }
if c=' ' then
begin
current_scanner^.skipspace;
current_scanner^.readid;
if pattern='ON' then
state:='+'
else
if pattern='OFF' then
state:='-';
end
else
state:=c;
{ c contains the next char, a + or - would be fine }
HandleSwitch(sw,state);
state:=current_scanner^.readstate;
if state in ['-','+'] then
HandleSwitch(sw,state);
end;
@ -773,18 +766,7 @@ const
exit;
end;
{ support ON/OFF }
if c=' ' then
begin
current_scanner^.skipspace;
current_scanner^.readid;
if pattern='ON' then
state:='+'
else
if pattern='OFF' then
state:='-';
end
else
state:=c;
state:=current_scanner^.ReadState;
SetVerbosity(flag+state);
end;
@ -921,7 +903,13 @@ const
{
$Log$
Revision 1.29 1998-09-11 09:19:53 daniel
Revision 1.30 1998-09-16 16:41:47 peter
* merged fixes
Revision 1.28.2.1 1998/09/16 16:09:51 peter
* on/off support also for the local/module switches
Revision 1.29 1998/09/11 09:19:53 daniel
* Removed tabs.
Revision 1.28 1998/09/10 15:25:36 daniel

View File

@ -188,6 +188,7 @@ unit scanner;
function readid:string;
function readval:longint;
function readcomment:string;
function readstate:char;
procedure skipspace;
procedure skipuntildirective;
procedure skipcomment;
@ -779,6 +780,29 @@ implementation
end;
function tscannerfile.readstate:char;
var
state : char;
begin
state:=' ';
if c=' ' then
begin
current_scanner^.skipspace;
current_scanner^.readid;
if pattern='ON' then
state:='+'
else
if pattern='OFF' then
state:='-';
end
else
state:=c;
if not (state in ['+','-']) then
Message(scan_e_wrong_switch_toggle);
readstate:=state;
end;
procedure tscannerfile.skipspace;
begin
while c in [' ',#9..#13] do
@ -1486,7 +1510,13 @@ exit_label:
end.
{
$Log$
Revision 1.50 1998-09-04 08:36:06 peter
Revision 1.51 1998-09-16 16:41:49 peter
* merged fixes
Revision 1.50.2.1 1998/09/16 16:09:49 peter
* on/off support also for the local/module switches
Revision 1.50 1998/09/04 08:36:06 peter
+ (. and .) which are equal to [ and ]
Revision 1.49 1998/09/03 11:24:03 peter

View File

@ -211,7 +211,7 @@ implementation
newline : #13#10;
endian : endian_little;
use_function_relative_addresses : true
),
),
(
name : 'GO32 V2 DOS extender';
sharedlibext : '.dll';
@ -257,7 +257,7 @@ implementation
(
name : 'Win32';
sharedlibext : '.dll';
staticlibext : '.a';
staticlibext : '.aw';
sourceext : '.pp';
pasext : '.pas';
exeext : '.exe';
@ -665,11 +665,11 @@ implementation
short_name : 'WIN32';
unit_env : 'WIN32UNITS';
system_unit : 'SYSWIN32';
smartext : '.sl';
smartext : '.slw';
unitext : '.ppw';
unitlibext : '.ppl';
asmext : '.s';
objext : '.o';
asmext : '.sw';
objext : '.ow';
exeext : '.exe';
os : os_Win32;
link : link_ldw;
@ -918,11 +918,20 @@ begin
end.
{
$Log$
Revision 1.35 1998-09-11 17:35:33 peter
Revision 1.36 1998-09-16 16:41:50 peter
* merged fixes
Revision 1.33.2.3 1998/09/16 16:13:13 peter
* win32 .o -> .ow and .a -> .aw
Revision 1.35 1998/09/11 17:35:33 peter
* fixed tabs
Revision 1.34 1998/09/11 12:27:55 pierre
* restored m68k part
Revision 1.33.2.2 1998/09/11 17:29:20 peter
* fixed tabs
Revision 1.33.2.1 1998/09/11 12:06:00 pierre
* m68k part restored