* comp,extended are only i386 added support_comp,support_extended

This commit is contained in:
peter 1998-06-04 23:45:56 +00:00
parent 332f649fa3
commit d0ce4085d3
6 changed files with 282 additions and 115 deletions

229
rtl/amiga/makefile Normal file
View File

@ -0,0 +1,229 @@
#
# $Id$
# This file is part of the Free Pascal run time library.
# Copyright (c) 1996-98 by Michael van Canneyt
#
# Makefile for the Free Pascal Amiga Runtime Library
#
# 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.
#
#####################################################################
# Start of configurable section.
# Please note that all these must be set in the main makefile, and
# should be set there.
# Don't remove the indef statements. They serve to avoid conflicts
# with the main makefile.
#####################################################################
# What is the Operating System ?
ifndef OS_SOURCE
OS_SOURCE=linux
endif
# What is the target operating system ?
ifndef OS_TARGET
OS_TARGET=amiga
endif
# What is the target processor :
ifndef CPU
#CPU=i386
CPU=m68k
endif
# What compiler to use ?
ifndef PP
PP=ppc68k
endif
# What options to pass to the compiler ?
# You may want to specify a config file or error definitions file here.
ifndef OPT
OPT=
endif
# Where is the PPUMOVE program ?
ifndef PPUMOVE
PPUMOVE=ppumove
endif
# Set this to 'shared' or 'static'
LIBTYPE=shared
# AOUT should be defined in main makefile.
# But you can set it here too.
# AOUT = -DAOUT
# Do you want to link to the C library ?
# Standard it is NO. You can set it to YES to link in th C library.
ifndef LINK_TO_C
LINK_TO_C=NO
endif
#####################################################################
# End of configurable section.
# Do not edit after this line.
#####################################################################
#####################################################################
# System independent
#####################################################################
# Where are the include files ?
INC=../inc
PROCINC=../$(CPU)
CFG=../cfg
OBJPASDIR=../objpas
# Get some defaults for Programs and OSes.
# This will set the following variables :
# inlinux indos COPY REPLACE DEL INSTALL INSTALLEXE MKDIR
# It will also set OPT for cross-compilation, and add required options.
# also checks for config file.
# it expects INC PROCINC to be set !!
include $(CFG)/makefile.cfg
# 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 dependent
#####################################################################
# Check if we need C library.
ifeq ($(LINK_TO_C),YES)
override OPT:=$(OPT) -dCRTLIB
endif
# Define Linux Units
SYSTEMPPU=sysamiga$(PPUEXT)
OBJECTS=strings
PRT=prt0
LOADERAS=$(PRT).as
# Define Loaders
ifeq ($(LINK_TO_C),NO)
LOADERS=prt0
else
LOADERS=lprt
endif
# Add Prefix and Suffixes
OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
.PHONY : all install clean \
libs libsclean \
diffs diffclean \
all : $(OBJLOADERS) $(PPUOBJECTS)
install : all
$(MKDIR) $(UNITINSTALLDIR)
$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
clean :
-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) *.PPS log
#####################################################################
# Files
#####################################################################
#
# Loaders
#
prt0$(OEXT) : $(LOADERAS)
-as $(LOADERAS) -o prt0$(OEXT)
#gprt0$(OEXT) : $(GLOADERAS)
# -as $(GLOADERAS) -o gprt0$(OEXT)
#
# Base Units (System, strings, os-dependent-base-unit)
#
$(SYSTEMPPU) : sysamiga.pas $(SYSLINUXDEPS) $(SYSDEPS)
$(PP) $(OPT) -Us -Sg sysamiga.pas $(REDIR)
strings$(PPUEXT) : $(PROCINC)/strings.pp $(SYSTEMPPU)
$(COPY) $(PROCINC)/strings.pp .
$(PP) $(OPT) strings $(REDIR)
$(DEL) strings.pp
#
# Delphi Object Model
#
objpas$(PPUEXT) : $(OBJPASDIR)/objpas.pp $(SYSTEMPPU)
$(COPY) $(OBJPASDIR)/objpas.pp .
$(PP) $(OPT) objpas $(REDIR)
$(DEL) objpas.pp
#
# System Dependent Units
#
#
# TP7 Compatible RTL Units
#
#dos$(PPUEXT) : $(DOSDEPS) $(SYSTEMPPU)
# $(PP) $(OPT) dos $(REDIR)
crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(INC)/filerec.inc $(SYSTEMPPU)
$(PP) $(OPT) crt $(REDIR)
objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
$(COPY) $(INC)/objects.pp .
$(PP) $(OPT) objects $(REDIR)
$(DEL) objects.pp
#
# Other RTL Units
#
#####################################################################
# Libs
#####################################################################
libs : all libfpc$(LIBEXT)
libfpc.so:
$(PPUMOVE) -o fpc *.ppu
libfpc.a:
$(PPUMOVE) -s -o fpc *.ppu
libinstall : libs
$(INSTALLEXE) libfpc$(LIBEXT) $(LIBINSTALLDIR)
$(INSTALL) *$(PPLEXT) $(UNITINSTALLDIR)
ldconfig
libsclean : clean
-$(DEL) *.a *.so *$(PPLEXT)
#####################################################################
# Default targets
#####################################################################
include $(CFG)/makefile.def

View File

@ -230,16 +230,20 @@ begin
end;
{$ifdef SUPPORT_EXTENDED}
procedure int_str_extended(d : extended;len,fr : longint;var s : string);[public, alias : 'STR_EXTENDED'];
begin
str_real(len,fr,d,rt_s80real,s);
end;
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
procedure int_str_comp(d : comp;len,fr : longint;var s : string);[public, alias : 'STR_COMP'];
begin
str_real(len,fr,d,rt_s64bit,s);
end;
{$endif SUPPORT_COMP}
procedure int_str_fixed(d : fixed;len,fr : longint;var s : string);[public, alias : 'STR_FIXED'];
@ -600,6 +604,7 @@ begin
end;
{$ifdef SUPPORT_EXTENDED}
procedure val(const s : string;var d : extended;var code : word);
var
e : double;
@ -626,8 +631,10 @@ begin
val(s,e,code);
d:=e;
end;
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
procedure val(const s : string;var d : comp;var code : word);
var
e : double;
@ -654,7 +661,7 @@ begin
val(s,e,code);
d:=comp(e);
end;
{$endif SUPPORT_COMP}
procedure val(const s : string;var v : cardinal;var code : word);
var
@ -703,7 +710,10 @@ end;
{
$Log$
Revision 1.4 1998-05-31 14:14:52 peter
Revision 1.5 1998-06-04 23:45:59 peter
* comp,extended are only i386 added support_comp,support_extended
Revision 1.4 1998/05/31 14:14:52 peter
* removed warnings using comp()
Revision 1.3 1998/05/12 10:42:45 peter

View File

@ -14,8 +14,6 @@
{****************************************************************************
Local types
****************************************************************************}
{
@ -92,16 +90,14 @@ Procedure Rewrite(var f : TypedFile); [INTERNPROC: In_Rewrite_TypedFile];
****************************************************************************}
function Hi(b : byte): byte;
begin
begin
Hi := b shr 4
end;
end;
function Lo(b : byte): byte;
begin
begin
Lo := b and $0f
end;
end;
Procedure Inc(var i : Cardinal;a: Longint);
Begin
@ -234,15 +230,7 @@ End;
Function Ptr(sel,off : Longint) : pointer;
Begin
sel:=0;
{$IFDEF DoMapping}
{$IFDEF DoS}
ptr:=pointer($e0000000+sel shl 4+off);
{$ELSE}
ptr:=pointer(sel shl 4+off);
{$ENDIF}
{$ELSE}
ptr:=pointer(off);
{$ENDIF}
ptr:=pointer(off);
End;
Function Addr (Var X) : Pointer;
@ -250,7 +238,6 @@ Begin
Addr:=@(X);
End;
Function CSeg : Word;
Begin
Cseg:=0;
@ -284,13 +271,10 @@ Begin
End;
procedure fillchar(var x;count : longint;value : char);
begin
fillchar(x,count,byte(value));
end;
begin
fillchar(x,count,byte(value));
end;
{*****************************************************************************
@ -308,13 +292,13 @@ Begin
Halt(0);
End;
{ Seems not to be used (PFV)
Procedure Initexception;[Public,Alias: 'INITEXCEPTION'];
Begin
Writeln('Exception occurred during program initialization.');
halt(216);
End;
}
Procedure dump_stack(bp : Longint);
@ -361,14 +345,8 @@ Begin
Writeln('Run time error ',Errorcode,' at 0x',hexstr(Longint(Erroraddr),8));
dump_stack(ErrorBase);
End;
{ this is wrong at least for dos !!!
in dos input output and stderr must be left open !! }
{$ifndef DOS}
{$ifndef GO32V2}
Close(Output);
Close(StdErr);
{$endif GO32V2}
{$endif DOS}
Flush(stderr);
End;
@ -410,7 +388,10 @@ End;
{
$Log$
Revision 1.6 1998-05-20 11:23:09 cvs
Revision 1.7 1998-06-04 23:46:01 peter
* comp,extended are only i386 added support_comp,support_extended
Revision 1.6 1998/05/20 11:23:09 cvs
* test commit. Shouldn't be allowed.
Revision 1.5 1998/05/12 10:42:45 peter

View File

@ -33,14 +33,12 @@ Type
byte = 0..255;
Word = 0..65535;
{
Boolean = ByteBool;
removed because too incompatible with older versions PM }
{ at least declare Turbo Pascal real types }
{$IFDEF i386}
{$ifdef i386}
Double = real;
{$ENDIF}
{$define SUPPORT_EXTENDED}
{$define SUPPORT_COMP}
{$endif}
{ some type aliases }
dword = cardinal;
@ -58,7 +56,6 @@ const
maxLongint = $7fffffff;
maxint = 32767;
{ Compatibility With TP }
{$ifdef i386}
Test8086 : byte = 2; { Always i386 or newer }
@ -226,12 +223,16 @@ Procedure Val(const s:string;Var d:Real);
Procedure Val(const s:string;Var d:single;Var code:Word);
Procedure Val(const s:string;Var d:single;Var code:Integer);
Procedure Val(const s:string;Var d:single);
{$ifdef SUPPORT_EXTENDED}
Procedure Val(const s:string;Var d:Extended;Var code:Word);
Procedure Val(const s:string;Var d:Extended;Var code:Integer);
Procedure Val(const s:string;Var d:Extended);
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
Procedure Val(const s:string;Var d:comp;Var code:Word);
Procedure Val(const s:string;Var d:comp;Var code:Integer);
Procedure Val(const s:string;Var d:comp);
{$endif SUPPORT_COMP}
Procedure Val(const s:string;Var v:cardinal;Var code:Word);
Procedure Val(const s:string;Var v:cardinal;Var code:Integer);
Procedure Val(const s:string;Var v:cardinal);
@ -335,7 +336,10 @@ Procedure AddExitProc(Proc:TProcedure);
{
$Log$
Revision 1.9 1998-06-04 08:26:03 pierre
Revision 1.10 1998-06-04 23:46:02 peter
* comp,extended are only i386 added support_comp,support_extended
Revision 1.9 1998/06/04 08:26:03 pierre
* boolean internal definition again (needed to compile
older RTL's)

View File

@ -467,6 +467,7 @@ Begin
End;
{$ifdef SUPPORT_EXTENDED}
Procedure w(fixkomma,Len : Longint;var t : TextRec;r : extended);[Public,Alias: 'WRITE_TEXT_EXTENDED'];
var
s : String;
@ -474,8 +475,10 @@ Begin
Str_real(Len,fixkomma,r,rt_s80real,s);
w(Len,t,s);
End;
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
Procedure w(fixkomma,Len : Longint;var t : TextRec;r : comp);[Public,Alias: 'WRITE_TEXT_COMP'];
var
s : String;
@ -483,7 +486,7 @@ Begin
Str_real(Len,fixkomma,r,rt_s64bit,s);
w(Len,t,s);
End;
{$endif SUPPORT_COMP}
Procedure w(fixkomma,Len : Longint;var t : TextRec;r : fixed);[Public,Alias: 'WRITE_TEXT_FIXED'];
var
@ -877,6 +880,7 @@ Begin
End;
{$ifdef SUPPORT_EXTENDED}
Procedure r(var f : TextRec;var d : extended);[Public,Alias: 'READ_TEXT_EXTENDED'];
var
hs : String;
@ -912,8 +916,10 @@ Begin
If code<>0 Then
RunError(106);
End;
{$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP}
Procedure r(var f : TextRec;var d : comp);[Public,Alias: 'READ_TEXT_COMP'];
var
hs : String;
@ -949,9 +955,14 @@ Begin
If code<>0 Then
RunError(106);
End;
{$endif SUPPORT_COMP}
{
$Log$
Revision 1.9 1998-06-02 16:47:56 pierre
Revision 1.10 1998-06-04 23:46:03 peter
* comp,extended are only i386 added support_comp,support_extended
Revision 1.9 1998/06/02 16:47:56 pierre
* bug for boolean values greater than one fixed
Revision 1.8 1998/05/31 14:14:54 peter

View File

@ -1,68 +0,0 @@
#****************************************************************************
#
# Copyright (c) 1993,96 by Florian Klaempfl
#
#****************************************************************************
#
# makefile for FPKPascal
#
#####################################################################
# Start of configurable section
#####################################################################
# Set REFPATH if you want to generate diffs to a standard RTL
ifndef REFPATH
REFPATH=/usr/local/fpk/work/new/rtl
endif
ifndef DIFF
DIFF=diff
endif
ifndef DIFFOPTS
DIFFOPTS=-b -c
endif
#######################################################################
# End of configurable section.
# Do not edit after this line.
#######################################################################
# Check copy delete commands.
# You need cp from GNU to handle / as directory separator
ifeq ($(DOS),YES)
COPY=cp -p -f
DEL=del
else
COPY=cp -p -f
DEL=rm
endif
PPFILES =
INCFILES = m68k.inc
all:
.PHONY: clean diffclean diffs
clean:
-$(DEL) *.dif
diffclean:
-$(DEL) *.dif
%.dif : %.inc
-$(DIFF) $(DIFFOPTS) $*.inc $(REFPATH)/m68k/$*.inc > $*.dif
%.dif : %.pp
-$(DIFF) $(DIFFOPTS) $*.pp $(REFPATH)/m68k/$*.pp > $*.dif
makefile.dif : makefile
-$(DIFF) $(DIFFOPTS) makefile $(REFPATH)/m68k/makefile > makefile.dif
diffs : $(patsubst %.inc,%.dif,$(INCFILES)) \
$(patsubst %.pp,%.dif,$(PPFILES)) \
makefile.dif