diff --git a/rtl/bsd/Makefile b/rtl/bsd/Makefile deleted file mode 100644 index a37ee9815a..0000000000 --- a/rtl/bsd/Makefile +++ /dev/null @@ -1,1347 +0,0 @@ -# -# Makefile generated by fpcmake v1.00 [2000/09/01] -# - -defaultrule: all - -##################################################################### -# Autodetect OS (Linux or Dos or Windows NT) -# define inlinux when running under linux -# define inWinNT when running under WinNT -##################################################################### - -# We need only / in the path -override PATH:=$(subst \,/,$(PATH)) - -# Search for PWD and determine also if we are under linux -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH))))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH))))) -ifeq ($(PWD),) -nopwd: - @echo You need the GNU utils package to use this Makefile! - @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip - @exit -else -inlinux=1 -endif -else -PWD:=$(firstword $(PWD)) -endif - -# Detect NT - NT sets OS to Windows_NT -ifndef inlinux -ifeq ($(OS),Windows_NT) -inWinNT=1 -endif -endif - -# Detect OS/2 - OS/2 has OS2_SHELL defined -ifndef inlinux -ifndef inWinNT -ifdef OS2_SHELL -inOS2=1 -endif -endif -endif - -# The extension of executables -ifdef inlinux -EXEEXT= -else -EXEEXT=.exe -endif - -# The path which is searched separated by spaces -ifdef inlinux -SEARCHPATH=$(subst :, ,$(PATH)) -else -SEARCHPATH=$(subst ;, ,$(PATH)) -endif - -# Base dir -ifdef PWD -BASEDIR:=$(shell $(PWD)) -else -BASEDIR=. -endif - -##################################################################### -# Default target -##################################################################### - -override OS_TARGET:=linux -override CPU_TARGET:=i386 - -##################################################################### -# FPC version/target Detection -##################################################################### - -# What compiler to use ? -ifndef FPC -# Compatibility with old makefiles -ifdef PP -FPC=$(PP) -else -ifdef inOS2 -FPC=ppos2 -else -FPC=ppc386 -endif -endif -endif -override FPC:=$(subst $(EXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(EXEEXT) - -# Target OS -ifndef OS_TARGET -OS_TARGET:=$(shell $(FPC) -iTO) -endif - -# Source OS -ifndef OS_SOURCE -OS_SOURCE:=$(shell $(FPC) -iSO) -endif - -# Target CPU -ifndef CPU_TARGET -CPU_TARGET:=$(shell $(FPC) -iTP) -endif - -# Source CPU -ifndef CPU_SOURCE -CPU_SOURCE:=$(shell $(FPC) -iSP) -endif - -# FPC version -ifndef FPC_VERSION -FPC_VERSION:=$(shell $(FPC) -iV) -endif - -export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION - -##################################################################### -# Pre Settings -##################################################################### - -RTL=.. -INC=$(RTL)/inc -PROCINC=$(RTL)/$(CPU_TARGET) - -UNITPREFIX=rtl - -# Paths -OBJPASDIR=$(RTL)/objpas -GRAPHDIR=$(INC)/graph -LINUXDIR=$(RTL)/linux - - -# Define Go32v2 Units -SYSTEMUNIT=syslinux - -# Use new graph unit ? -# NEWGRAPH=YES -# Use LibGGI ? -# Use -# -ifndef USELIBGGI -USELIBGGI=NO -endif -##################################################################### -# FPCDIR Setting -##################################################################### - -# Test FPCDIR to look if the RTL dir exists -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(FPCDIR)/rtl),) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=wrong -endif -endif -else -override FPCDIR=wrong -endif - -# Default FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR=. -ifeq ($(wildcard $(FPCDIR)/rtl),) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=wrong -endif -endif -endif - -# Detect FPCDIR -ifeq ($(FPCDIR),wrong) -ifdef inlinux -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(FPCDIR)/rtl),) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(FPCDIR)/rtl),) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -endif - -##################################################################### -# User Settings -##################################################################### - - -# Targets - -override LOADEROBJECTS+=prt0 cprt0 gprt0 cprt21 gprt21 -override UNITOBJECTS+=$(SYSTEMUNIT) objpas strings linux initc dos crt objects printer graph ggigraph sysutils typinfo math cpu mmx getopts heaptrc lineinfo errors gpm - -# Clean - - -# Install - -UNITSUBDIR=rtl -ZIPTARGET=install - -# Defaults - - -# Directories - -override NEEDINCDIR=$(INC) $(PROCINC) -ifndef TARGETDIR -TARGETDIR=. -endif - -# Packages - - -# Libraries - -LIBNAME=fprtl -SHAREDLIBUNITOBJECTS=$(SYSTEMUNIT) objpas strings linux dos crt objects printer sysutils typinfo math cpu mmx getopts heaptrc errors - -# Info - -INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall - -##################################################################### -# Post Settings -##################################################################### - -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) - -##################################################################### -# Shell tools -##################################################################### - -# echo -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=echo -ECHOE:=echo -else -ECHO:=$(firstword $(ECHO)) -ECHOE=$(ECHO) -E -endif -else -ECHO:=$(firstword $(ECHO)) -ECHOE=$(ECHO) -E -endif -endif - -# To copy pograms -ifndef COPY -COPY:=cp -fp -endif - -# Copy a whole tree -ifndef COPYTREE -COPYTREE:=cp -rfp -endif - -# To move pograms -ifndef MOVE -MOVE:=mv -f -endif - -# Check delete program -ifndef DEL -DEL:=rm -f -endif - -# Check deltree program -ifndef DELTREE -DELTREE:=rm -rf -endif - -# To install files -ifndef INSTALL -ifdef inlinux -INSTALL:=install -m 644 -else -INSTALL:=$(COPY) -endif -endif - -# To install programs -ifndef INSTALLEXE -ifdef inlinux -INSTALLEXE:=install -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif - -# To make a directory. -ifndef MKDIR -ifdef inlinux -MKDIR:=install -m 755 -d -else -MKDIR:=ginstall -m 755 -d -endif -endif - -export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR - -##################################################################### -# Default Tools -##################################################################### - -# assembler, redefine it if cross compiling -ifndef AS -AS=as -endif - -# linker, but probably not used -ifndef LD -LD=ld -endif - -# ppas.bat / ppas.sh -ifdef inlinux -PPAS=ppas.sh -else -ifdef inOS2 -PPAS=ppas.cmd -else -PPAS=ppas.bat -endif -endif - -# ldconfig to rebuild .so cache -ifdef inlinux -LDCONFIG=ldconfig -else -LDCONFIG= -endif - -# ppumove -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE - -# ppufiles -ifndef PPUFILES -PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUFILES),) -PPUFILES= -else -PPUFILES:=$(firstword $(PPUFILES)) -endif -endif -export PPUFILES - -# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase -# upx uses that one itself (PFV) -ifndef UPXPROG -ifeq ($(OS_TARGET),go32v2) -UPXPROG:=1 -endif -ifeq ($(OS_TARGET),win32) -UPXPROG:=1 -endif -ifdef UPXPROG -UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(UPXPROG),) -UPXPROG= -else -UPXPROG:=$(firstword $(UPXPROG)) -endif -else -UPXPROG= -endif -endif -export UPXPROG - -# ZipProg, you can't use Zip as the var name (PFV) -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG - -ZIPOPT=-9 -ZIPEXT=.zip - -# Tar -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG - -ifeq ($(USETAR),bz2) -TAROPT=vI -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif - -##################################################################### -# Default extensions -##################################################################### - -# Default needed extensions (Go32v2,Linux) -LOADEREXT=.as -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -RSTEXT=.rst -FPCMADE=fpcmade - -# Go32v1 -ifeq ($(OS_TARGET),go32v1) -PPUEXT=.pp1 -OEXT=.o1 -ASMEXT=.s1 -SMARTEXT=.sl1 -STATICLIBEXT=.a1 -SHAREDLIBEXT=.so1 -FPCMADE=fpcmade.v1 -endif - -# Go32v2 -ifeq ($(OS_TARGET),go32v2) -FPCMADE=fpcmade.dos -endif - -# Linux -ifeq ($(OS_TARGET),linux) -FPCMADE=fpcmade.lnx -endif - -# Win32 -ifeq ($(OS_TARGET),win32) -PPUEXT=.ppw -OEXT=.ow -ASMEXT=.sw -SMARTEXT=.slw -STATICLIBEXT=.aw -SHAREDLIBEXT=.dll -FPCMADE=fpcmade.w32 -endif - -# OS/2 -ifeq ($(OS_TARGET),os2) -PPUEXT=.ppo -ASMEXT=.so2 -OEXT=.oo2 -SMARTEXT=.so -STATICLIBEXT=.ao2 -SHAREDLIBEXT=.dll -FPCMADE=fpcmade.os2 -endif - -# library prefix -LIBPREFIX=lib -ifeq ($(OS_TARGET),go32v2) -LIBPREFIX= -endif -ifeq ($(OS_TARGET),go32v1) -LIBPREFIX= -endif - -# determine which .pas extension is used -ifndef PASEXT -ifdef EXEOBJECTS -override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS))))) -else -override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS))))) -endif -ifeq ($(TESTPAS),) -PASEXT=.pp -else -PASEXT=.pas -endif -endif - - - -##################################################################### -# Default Directories -##################################################################### - -# set the prefix directory where to install everything -ifndef PREFIXINSTALLDIR -ifdef inlinux -PREFIXINSTALLDIR=/usr -else -PREFIXINSTALLDIR=/pp -endif -endif -export PREFIXINSTALLDIR - -# Where to place the resulting zip files -ifndef DESTZIPDIR -DESTZIPDIR:=$(BASEDIR) -endif -export DESTZIPDIR - -##################################################################### -# Install Directories -##################################################################### - -# set the base directory where to install everything -ifndef BASEINSTALLDIR -ifdef inlinux -BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION) -else -BASEINSTALLDIR=$(PREFIXINSTALLDIR) -endif -endif - -# set the directory where to install the binaries -ifndef BININSTALLDIR -ifdef inlinux -BININSTALLDIR=$(PREFIXINSTALLDIR)/bin -else -BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET) -endif -endif - -# set the directory where to install the units. -ifndef UNITINSTALLDIR -UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET) -ifdef UNITSUBDIR -UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR) -endif -endif - -# Where to install shared libraries -ifndef LIBINSTALLDIR -ifdef inlinux -LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib -else -LIBINSTALLDIR=$(UNITINSTALLDIR) -endif -endif - -# Where the source files will be stored -ifndef SOURCEINSTALLDIR -ifdef inlinux -SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION) -else -SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source -endif -ifdef SOURCESUBDIR -SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR) -endif -endif - -# Where the doc files will be stored -ifndef DOCINSTALLDIR -ifdef inlinux -DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION) -else -DOCINSTALLDIR=$(BASEINSTALLDIR)/doc -endif -endif - -# Where to install the examples, under linux we use the doc dir -# because the copytree command will create a subdir itself -ifndef EXAMPLEINSTALLDIR -ifdef inlinux -EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples -else -EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples -endif -ifdef EXAMPLESUBDIR -EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR) -endif -endif - -# Where the some extra (data)files will be stored -ifndef DATAINSTALLDIR -DATAINSTALLDIR=$(BASEINSTALLDIR) -endif - -##################################################################### -# Redirection -##################################################################### - -ifndef REDIRFILE -REDIRFILE=log -endif - -ifdef REDIR -ifndef inlinux -override FPC=redir -eo $(FPC) -endif -# set the verbosity to max -override FPCOPT+=-va -override REDIR:= >> $(REDIRFILE) -endif - - -##################################################################### -# Compiler Command Line -##################################################################### - -# Load commandline OPTDEF and add FPC_CPU define -override FPCOPTDEF:=-d$(CPU_TARGET) - -# Load commandline OPT and add target and unit dir to be sure -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif - -# User dirs should be first, so they are looked at first -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif - -# Smartlinking -ifdef LINKSMART -override FPCOPT+=-XX -endif - -# Smartlinking creation -ifdef CREATESMART -override FPCOPT+=-CX -endif - -# Debug -ifdef DEBUG -override FPCOPT+=-g -dDEBUG -endif - -# Release mode (strip, optimize and don't load ppc386.cfg) -# 0.99.12b has a bug in the optimizer so don't use it by default -ifdef RELEASE -ifeq ($(FPC_VERSION),0.99.12) -override FPCOPT+=-Xs -OGp3 -n -else -override FPCOPT+=-Xs -OG2p3 -n -endif -endif - -# Strip -ifdef STRIP -override FPCOPT+=-Xs -endif - -# Optimizer -ifdef OPTIMIZE -override FPCOPT+=-OG2p3 -endif - -# Verbose settings (warning,note,info) -ifdef VERBOSE -override FPCOPT+=-vwni -endif - -ifdef UNITSDIR -override FPCOPT+=-Fu$(UNITSDIR) -endif - -ifdef NEEDINCDIR -override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR)) -endif - - -# Target dirs and the prefix to use for clean/install -ifdef TARGETDIR -override FPCOPT+=-FE$(TARGETDIR) -ifeq ($(TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(TARGETDIR)/ -endif -endif -ifdef UNITTARGETDIR -override FPCOPT+=-FU$(UNITTARGETDIR) -ifeq ($(UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(TARGETDIR)/ -endif -else -ifdef TARGETDIR -override UNITTARGETDIR=$(TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif - -# Add commandline options last so they can override -ifdef OPT -override FPCOPT+=$(OPT) -endif - -# Add defines from FPCOPTDEF to FPCOPT -ifdef FPCOPTDEF -override FPCOPT+=$(FPCOPTDEF) -endif - -# Error file ? -ifdef ERRORFILE -override FPCOPT+=-Fr$(ERRORFILE) -endif - -# Was a config file specified ? -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif - -# For win32 the options are passed using the environment FPCEXTCMD -ifeq ($(OS_SOURCE),win32) -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif - -# Compiler commandline -override COMPILER:=$(FPC) $(FPCOPT) - -# also call ppas if with command option -s -# but only if the OS_SOURCE and OS_TARGE are equal -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(OS_SOURCE),$(OS_TARGET)) -EXECPPAS:=@$(PPAS) -endif -endif - -##################################################################### -# Standard rules -##################################################################### - -all: fpc_all - -debug: fpc_debug - -smart: fpc_smart - -shared: fpc_shared - -showinstall: fpc_showinstall - -install: fpc_install - -sourceinstall: fpc_sourceinstall - -exampleinstall: fpc_exampleinstall - -zipinstall: fpc_zipinstall - -zipsourceinstall: fpc_zipsourceinstall - -zipexampleinstall: fpc_zipexampleinstall - -clean: fpc_clean - -distclean: fpc_distclean - -cleanall: fpc_cleanall - -info: fpc_info - -.PHONY: all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall info - -##################################################################### -# Loaders -##################################################################### - -.PHONY: fpc_loaders - -%$(OEXT): %$(LOADEREXT) - $(AS) -o $*$(OEXT) $< - -override ALLTARGET+=fpc_loaders -override CLEANTARGET+=fpc_loaders_clean -override SHOWINSTALLTARGET+=fpc_loaders_showinstall -override INSTALLTARGET+=fpc_loaders_install - -override LOADEROFILES:=$(addsuffix $(OEXT),$(LOADEROBJECTS)) - -fpc_loaders: $(LOADEROFILES) - -fpc_loaders_clean: - -$(DEL) $(LOADEROFILES) - -fpc_loaders_showinstall: - @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(LOADEROFILES)) - -fpc_loaders_install: - $(MKDIR) $(UNITINSTALLDIR) - $(INSTALL) $(LOADEROFILES) $(UNITINSTALLDIR) - -##################################################################### -# Units -##################################################################### - -.PHONY: fpc_units - -override ALLTARGET+=fpc_units - -override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS)) -override INSTALLPPUFILES+=$(UNITPPUFILES) -override CLEANPPUFILES+=$(UNITPPUFILES) - -fpc_units: $(UNITPPUFILES) - -##################################################################### -# General compile rules -##################################################################### - -.PHONY: fpc_packages fpc_all fpc_debug - -$(FPCMADE): $(ALLTARGET) - @$(ECHO) Compiled > $(FPCMADE) - -fpc_packages: $(COMPILEPACKAGES) - -fpc_all: fpc_packages $(FPCMADE) - -fpc_debug: - $(MAKE) all DEBUG=1 - -# Search paths for .ppu if targetdir is set -ifdef UNITTARGETDIR -vpath %$(PPUEXT) $(UNITTARGETDIR) -endif - -# General compile rules, available for both possible PASEXT - -.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp - -%$(PPUEXT): %.pp - $(COMPILER) $< $(REDIR) - $(EXECPPAS) - -%$(PPUEXT): %.pas - $(COMPILER) $< $(REDIR) - $(EXECPPAS) - -%$(EXEEXT): %.pp - $(COMPILER) $< $(REDIR) - $(EXECPPAS) - -%$(EXEEXT): %.pas - $(COMPILER) $< $(REDIR) - $(EXECPPAS) - -##################################################################### -# Library -##################################################################### - -.PHONY: fpc_smart fpc_shared - -ifdef LIBVERSION -LIBFULLNAME=$(LIBNAME).$(LIBVERSION) -else -LIBFULLNAME=$(LIBNAME) -endif - -# Default sharedlib units are all unit objects -ifndef SHAREDLIBUNITOBJECTS -SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS) -endif - -fpc_smart: - $(MAKE) all LINKSMART=1 CREATESMART=1 - -fpc_shared: all -ifdef inlinux -ifndef LIBNAME - @$(ECHO) "LIBNAME not set" -else - $(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME) -endif -else - @$(ECHO) "Shared Libraries not supported" -endif - -##################################################################### -# Install rules -##################################################################### - -.PHONY: fpc_showinstall fpc_install - -ifdef EXTRAINSTALLUNITS -override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS)) -endif - -ifdef INSTALLPPUFILES -override INSTALLPPUFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLPPUFILES)) -ifdef PPUFILES -INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES)) -else -INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))) -endif -override INSTALLPPULINKFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLPPULINKFILES)) -endif - -ifdef INSTALLEXEFILES -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES)) -endif - -fpc_showinstall: $(SHOWINSTALLTARGET) -ifdef INSTALLEXEFILES - @$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES)) -endif -ifdef INSTALLPPUFILES - @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES)) -ifneq ($(INSTALLPPULINKFILES),) - @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES)) -endif -ifneq ($(wildcard $(LIBFULLNAME)),) - @$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME) -ifdef inlinux - @$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME) -endif -endif -endif -ifdef EXTRAINSTALLFILES - @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES)) -endif - -fpc_install: $(INSTALLTARGET) -# Create UnitInstallFiles -ifdef INSTALLEXEFILES - $(MKDIR) $(BININSTALLDIR) -# Compress the exes if upx is defined -ifdef UPXPROG - -$(UPXPROG) $(INSTALLEXEFILES) -endif - $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR) -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(UNITINSTALLDIR) - $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR) -endif -ifneq ($(wildcard $(LIBFULLNAME)),) - $(MKDIR) $(LIBINSTALLDIR) - $(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR) -ifdef inlinux - ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME) -endif -endif -endif -ifdef EXTRAINSTALLFILES - $(MKDIR) $(DATAINSTALLDIR) - $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR) -endif - -##################################################################### -# SourceInstall rules -##################################################################### - -.PHONY: fpc_sourceinstall - -ifndef SOURCETOPDIR -SOURCETOPDIR=$(BASEDIR) -endif - -fpc_sourceinstall: clean - $(MKDIR) $(SOURCEINSTALLDIR) - $(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR) - -##################################################################### -# exampleinstall rules -##################################################################### - -.PHONY: fpc_exampleinstall - -fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS)) -ifdef EXAMPLESOURCEFILES - $(MKDIR) $(EXAMPLEINSTALLDIR) - $(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR) -endif -ifdef EXAMPLEDIROBJECTS -ifndef EXAMPLESOURCEFILES - $(MKDIR) $(EXAMPLEINSTALLDIR) -endif - $(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR) -endif - -##################################################################### -# Zip -##################################################################### - -.PHONY: fpc_zipinstall - -# Create suffix to add -ifndef PACKAGESUFFIX -PACKAGESUFFIX=$(OS_TARGET) -ifeq ($(OS_TARGET),go32v2) -PACKAGESUFFIX=go32 -endif -ifeq ($(OS_TARGET),win32) -PACKAGESUFFIX=w32 -endif -endif - -# Temporary path to pack a file -ifndef PACKDIR -ifndef inlinux -PACKDIR=$(BASEDIR)/pack_tmp -else -PACKDIR=/tmp/fpc-pack -endif -endif - -# Maybe create default zipname from packagename -ifndef ZIPNAME -ifdef PACKAGENAME -ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX) -endif -endif - -# Use tar by default under linux -ifndef USEZIP -ifdef inlinux -USETAR=1 -endif -endif - -fpc_zipinstall: -ifndef ZIPNAME - @$(ECHO) "Please specify ZIPNAME!" - @exit 1 -else - $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR) -ifdef USETAR - $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) - cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR) -else - $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) - cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR) -endif - $(DELTREE) $(PACKDIR) -endif - -.PHONY: fpc_zipsourceinstall - -fpc_zipsourceinstall: - $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src - -.PHONY: fpc_zipexampleinstall - -fpc_zipexampleinstall: - $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm - -##################################################################### -# Clean rules -##################################################################### - -.PHONY: fpc_clean fpc_cleanall fpc_distclean - -ifdef EXTRACLEANUNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS)) -endif - -ifdef CLEANPPUFILES -override CLEANPPUFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANPPUFILES)) -# Get the .o and .a files created for the units -ifdef PPUFILES -CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES)) -else -CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))) -endif -override CLEANPPULINKFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANPPULINKFILES)) -endif - -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef EXTRACLEANFILES - -$(DEL) $(EXTRACLEANFILES) -endif -ifdef LIBNAME - -$(DEL) $(LIBNAME) $(LIBFULLNAME) -endif - -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE) - -fpc_distclean: fpc_clean - -# Also run clean first if targetdir is set. Unittargetdir is always -# set if targetdir or unittargetdir is specified -ifdef UNITTARGETDIR -TARGETDIRCLEAN=clean -endif - -fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) - -$(DELTREE) *$(SMARTEXT) - -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE) - -##################################################################### -# Info rules -##################################################################### - -.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \ - fpc_dirinfo - -fpc_info: $(INFOTARGET) - -fpc_infocfg: - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC....... $(FPC) - @$(ECHO) Version... $(FPC_VERSION) - @$(ECHO) CPU....... $(CPU_TARGET) - @$(ECHO) Source.... $(OS_SOURCE) - @$(ECHO) Target.... $(OS_TARGET) - @$(ECHO) - -fpc_infoobjects: - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) LoaderObjects..... $(LOADEROBJECTS) - @$(ECHO) UnitObjects....... $(UNITOBJECTS) - @$(ECHO) ExeObjects........ $(EXEOBJECTS) - @$(ECHO) - @$(ECHO) ExtraCleanUnits... $(EXTRACLEANUNITS) - @$(ECHO) ExtraCleanFiles... $(EXTRACLEANFILES) - @$(ECHO) - @$(ECHO) ExtraInstallUnits. $(EXTRAINSTALLUNITS) - @$(ECHO) ExtraInstallFiles. $(EXTRAINSTALLFILES) - @$(ECHO) - -fpc_infoinstall: - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) -ifdef DATE - @$(ECHO) DateStr.............. $(DATESTR) -endif -ifdef PACKAGEPREFIX - @$(ECHO) PackagePrefix........ $(PACKAGEPREFIX) -endif -ifdef PACKAGENAME - @$(ECHO) PackageName.......... $(PACKAGENAME) -endif - @$(ECHO) PackageSuffix........ $(PACKAGESUFFIX) - @$(ECHO) - @$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR) - @$(ECHO) BinInstallDir........ $(BININSTALLDIR) - @$(ECHO) LibInstallDir........ $(LIBINSTALLDIR) - @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR) - @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR) - @$(ECHO) DocInstallDir........ $(DOCINSTALLDIR) - @$(ECHO) DataInstallDir....... $(DATAINSTALLDIR) - @$(ECHO) - @$(ECHO) DestZipDir........... $(DESTZIPDIR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) - -##################################################################### -# Local Makefile -##################################################################### - -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif - -##################################################################### -# Users rules -##################################################################### - -vpath %$(PASEXT) $(INC) $(PROCINC) - -# -# Loaders -# - -prt0$(OEXT) : $(CPU_TARGET)/prt0.as - $(AS) -o prt0$(OEXT) $(CPU_TARGET)/prt0.as - -gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as - $(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as - -cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as - $(AS) -o cprt0$(OEXT) $(CPU_TARGET)/cprt0.as - -cprt21$(OEXT) : $(CPU_TARGET)/cprt21.as - $(AS) -o cprt21$(OEXT) $(CPU_TARGET)/cprt21.as - -# still need to use gprt1, because gprt21 crashes -gprt21$(OEXT) : $(CPU_TARGET)/gprt0.as - $(AS) -o gprt21$(OEXT) $(CPU_TARGET)/gprt0.as - - -# -# System Units (System, Objpas, Strings) -# - -$(SYSTEMPPU) : syslinux.pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS) - $(COMPILER) -Us -Sg syslinux.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 -# - -linux$(PPUEXT) : $(LINUXDIR)/linux.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \ - syscalls.inc systypes.inc sysconst.inc timezone.inc $(SYSTEMPPU) - -ports$(PPUEXT) : ports.pp linux$(PPUEXT) objpas$(PPUEXT) - -# -# TP7 Compatible RTL Units -# - -dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \ - linux$(PPUEXT) $(SYSTEMPPU) - -crt$(PPUEXT) : crt.pp $(INC)/textrec.inc linux$(PPUEXT) $(SYSTEMPPU) - -objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU) - -printer$(PPUEXT) : printer.pp $(INC)/textrec.inc linux$(PPUEXT) $(SYSTEMPPU) - -# -# Graph -# -include $(GRAPHDIR)/makefile.inc -GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES)) - -graph$(PPUEXT) : graph.pp linux$(PPUEXT) $(SYSTEMPPU) \ - $(GRAPHINCDEPS) vgagraph16.inc - $(COMPILER) -I$(GRAPHDIR) graph.pp $(REDIR) - -ggigraph$(PPUEXT) : ggigraph.pp linux$(PPUEXT) $(SYSTEMPPU) \ - $(GRAPHINCDEPS) - $(COMPILER) -I$(GRAPHDIR) ggigraph.pp $(REDIR) - -# -# Delphi Compatible Units -# - -sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \ - filutil.inc disk.inc objpas$(PPUEXT) linux$(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) - -gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT) - $(COMPILER) $(OBJPASDIR)/gettext.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) - -lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMPPU) - -# -# Other system-dependent RTL Units -# - -errors$(PPUEXT) : errors.pp strings$(PPUEXT) $(SYSTEMPPU) - -ipc$(PPUEXT) : ipc.pp linux$(PPUEXT) $(SYSTEMPPU) diff --git a/rtl/bsd/Makefile.fpc b/rtl/bsd/Makefile.fpc deleted file mode 100644 index 95efd75900..0000000000 --- a/rtl/bsd/Makefile.fpc +++ /dev/null @@ -1,196 +0,0 @@ -# -# Makefile.fpc for Free Pascal Linux RTL -# - -[targets] -loaders=prt0 cprt0 gprt0 cprt21 gprt21 -units=$(SYSTEMUNIT) objpas strings \ - linux initc \ - dos crt objects printer graph ggigraph \ - sysutils typinfo math \ - cpu mmx getopts heaptrc lineinfo \ - errors gpm - -[require] -rtl=0 - -[defaults] -defaulttarget=linux -defaultcpu=i386 - -[install] -unitsubdir=rtl - -[dirs] -fpcdir=. -incdir=$(INC) $(PROCINC) -targetdir=. - -[libs] -libname=fprtl -libunits=$(SYSTEMUNIT) objpas strings \ - linux \ - dos crt objects printer \ - sysutils typinfo math \ - cpu mmx getopts heaptrc \ - errors - - -[presettings] -RTL=.. -INC=$(RTL)/inc -PROCINC=$(RTL)/$(CPU_TARGET) - -UNITPREFIX=rtl - -# Paths -OBJPASDIR=$(RTL)/objpas -GRAPHDIR=$(INC)/graph -LINUXDIR=$(RTL)/linux - - -# Define Go32v2 Units -SYSTEMUNIT=syslinux - -# Use new graph unit ? -# NEWGRAPH=YES -# Use LibGGI ? -# Use -# -ifndef USELIBGGI -USELIBGGI=NO -endif - - -[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) : $(CPU_TARGET)/prt0.as - $(AS) -o prt0$(OEXT) $(CPU_TARGET)/prt0.as - -gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as - $(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as - -cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as - $(AS) -o cprt0$(OEXT) $(CPU_TARGET)/cprt0.as - -cprt21$(OEXT) : $(CPU_TARGET)/cprt21.as - $(AS) -o cprt21$(OEXT) $(CPU_TARGET)/cprt21.as - -# still need to use gprt1, because gprt21 crashes -gprt21$(OEXT) : $(CPU_TARGET)/gprt0.as - $(AS) -o gprt21$(OEXT) $(CPU_TARGET)/gprt0.as - - -# -# System Units (System, Objpas, Strings) -# - -$(SYSTEMPPU) : syslinux.pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS) - $(COMPILER) -Us -Sg syslinux.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 -# - -linux$(PPUEXT) : $(LINUXDIR)/linux.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \ - syscalls.inc systypes.inc sysconst.inc timezone.inc $(SYSTEMPPU) - -ports$(PPUEXT) : ports.pp linux$(PPUEXT) objpas$(PPUEXT) - -# -# TP7 Compatible RTL Units -# - -dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \ - linux$(PPUEXT) $(SYSTEMPPU) - -crt$(PPUEXT) : crt.pp $(INC)/textrec.inc linux$(PPUEXT) $(SYSTEMPPU) - -objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU) - -printer$(PPUEXT) : printer.pp $(INC)/textrec.inc linux$(PPUEXT) $(SYSTEMPPU) - -# -# Graph -# -include $(GRAPHDIR)/makefile.inc -GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES)) - -graph$(PPUEXT) : graph.pp linux$(PPUEXT) $(SYSTEMPPU) \ - $(GRAPHINCDEPS) vgagraph16.inc - $(COMPILER) -I$(GRAPHDIR) graph.pp $(REDIR) - -ggigraph$(PPUEXT) : ggigraph.pp linux$(PPUEXT) $(SYSTEMPPU) \ - $(GRAPHINCDEPS) - $(COMPILER) -I$(GRAPHDIR) ggigraph.pp $(REDIR) - -# -# Delphi Compatible Units -# - -sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \ - filutil.inc disk.inc objpas$(PPUEXT) linux$(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) - -gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT) - $(COMPILER) $(OBJPASDIR)/gettext.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) - -lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMPPU) - -# -# Other system-dependent RTL Units -# - -errors$(PPUEXT) : errors.pp strings$(PPUEXT) $(SYSTEMPPU) - -ipc$(PPUEXT) : ipc.pp linux$(PPUEXT) $(SYSTEMPPU) diff --git a/rtl/bsd/bsdport.txt b/rtl/bsd/bsdport.txt deleted file mode 100644 index 7ad50a2852..0000000000 --- a/rtl/bsd/bsdport.txt +++ /dev/null @@ -1,179 +0,0 @@ -$Id$ - -Comments, mistakes and suggestions to Marco@freepascal.org - - -1 FreeBSD status and notes. (kept on CVS because I work on several places) ------------------------------------------------------------------------------ - -Please read these before running a FreeBSD snapshot. - - -- Supported are FreeBSD 3.x (3.2, 3.4 and 4.0-release (quickly) tested. I never - tested on 3.0). NON-ELF (2.x) versions are not supported. - -- This is alpha-alpha software. I didn't have data-loss using it, but you - use this on your own responsability. Use a scratch, or well backup'ed - system. - -- FPC for FreeBSD is initially working, but only the most basic functionality - is implemented.(to rebuild the compiler) - That however could be enough for CGI, stdio and environment support seems to - be working. - Therefore, I decided to put a first alpha snapshot on the Net. - -- IMPORTANT: - !!! An explicite warning: Not all procedures and structures in Linux are - checked, so even if they are not commented out, they can be not implemented!!! - -- The initial version's READDIR problem is fixed with a quick hack, which - means that searchpath (-Fx) and FindFirst/FindNext are more or less - working. - I don't know how good that hack is,I hope to replace it later this week - by a port of freebsd's libc opendir/readdir/closedir/telldir/seekdir code. - The hack may fail the first time you use it, or only when - you use hardlinks. (iow, I don't know why libc sorts the directory list - to find duplicate names. Just because of hardlinks or because due to heavy - deletion/insertion duplicate dir entries can exist?) - -- external lib linking is not ready yet. - -2 Syscalls. - -The bulk of the linux syscalls are implemented. - -Some that aren't implemented: - -NI = not implemented yet -req = required for compiler -noreq? = not required, but not checked. -Ever? (y/n) - -syscall status Ever? comment ------------------------------------------------------------------------- -Readdir I req implemented from scratch, working. (this - call doesn't exist on FBSD and FindFirst is - based on it) - -ioperm NI noreq n IO via port access impossible under FreeBSD - (so: no ports unit, port[] support) - -ipc NI n The IPC is an System V thingy, and not supported - under BSD. - -Clone() NI noreq Emu code looks awfully complicated, amd maybe not - possible in user space. Should be based - on RFork if possible - Some developper confirmed there will be no fully kernel - level thread system. The implementation (after BSDI - mergure) will be mixed kernel-userland space. - -sysinfo NI noreq Not supported under BSD, not even by emulator -uname NI noreq " " " " " " " " - (procedures based on this call are also commented - (get* procs)) - -signal NI noreq? A *lot* of emulation code. -alarm NI noreq? Could be possible to port. -pause NI noreq? Also possible I think. Uses process information - in linux-emu, that is why I didn't port directly. - - -3 How to build a FreeBSD compiler/RTL ? ------------------------------------------------------------------------------ - -You'll probably need CVS sources dated after April 16th for this. - -3a How to build a FreeBSD system starting on Linux or using the Linux emu of - FreeBSD? (Bootstrapping) - -The FreeBSD port is experimental atm, though valid native binaries can be -obtained. - -The procedure here is verbose, and for the most akward case. -If you have linux support on on your FreeBSD machine, or operate on NFS or Samba -share (so that copying and using the sources in two systems is easier) -some steps can be omitted or simplified. Just play with it. - -STEP A: create the RTL assembler files. - -1a. Copy all linux files to a new directory. (here called BSDBUILD), and -1b. edit the makefile to NOT compile the i386 directory. (we do that by - hand for now) I do this by emptying the LOADEROBJECTS= line, and kill - all references to the ports unit -2. Copy all bsd files over them. -3. Execute make OPT='-Tlinux -dBSD -a -s -OG3p3' (with any i386 FPC compiler) - in directory BSDBUILD. This failed with some go32v2 versions (which wanted - to assemble anyway), but worked with several win32 and linux' snapshots. - -You now have .ppu's and .s 's for the RTL hopefully. Don't forget - i386/prt0.as (which is in fact a .s file)! - -STEP B: Create the compiler assembler (.s) sources; - -4. Compile with - ./bsdcompile -Fu/full_path_to_BSDBUILD -a -s - -STEP C: Building the binary - -7. Copy all necessary files - (- all *.s *.ppu files, both from compiler and BSDBUILD dir, - - compiler/link.res and - - compiler/ppas.sh - - Cut and paste of the DO_S script at the end of this document to file - - rtl/bsd/i386/*.s files - ) - to a directory on the BSD machine. -8a. Change to the directory on the BSD machine, and run the script DO_S to - assemble all .s files to .o files. -8b. Assemble the stub with as prt0.as -o prt0.o -9. Adapt link.res so that all paths to the BSD machine are right. - (remove all paths in front of all .o files, remove the -l lines and their - parentheses) -10a. Edit ppas.sh, and keep only #!/bin/sh and the line starting with ld. - b Remove any -l=ld-linux.so.1 (or similar) option from the ld line. - c run ppas.sh to build the compiler - -11. Have fun :-) The compiler is called "pp" - ------------- - -3b How to update FPC compiler on FreeBSD from fresh CVS sources with a snapshot -installed. - -(assuming ppc386 in the PATH, and a rtl/ and compiler/ directory obtained - from snapshot zips, with non mangled makefiles) - -1a Rename the rtl/linux to something else. (here rtl/linuxorg) -1b create a new rtl/linux dir -1c copy rtl/linuxorg/* to rtl/linux -1d copy rtl/bsd/* to rtl/linux RECURSIVELY -2 switch to compiler/ -3 gmake cycle OPT='-OG3p3 -dBSD' will generate a new compiler. - Be patient! FreeBSD has slower disk-io than Linux :-) - -Do you see why I recommend snapshots? - ------------------- -The DO_S script. ------------------- -#!/bin/sh - -for i in *.s; do - flup=`basename $i .s` - as $i -o $flup.o - echo $i - echo $flup - done - -{ -$Log$ -Revision 1.1 2000-07-13 06:30:32 michael -+ Initial import - -Revision 1.3 2000/04/16 16:11:33 marco - * Severe updates for now *working* status - -Revision 1.2 2000/04/10 15:46:51 marco - * worked all day. probably a lot changed -} diff --git a/rtl/bsd/i386/cprt0.as b/rtl/bsd/i386/cprt0.as deleted file mode 100644 index 23de4973cb..0000000000 --- a/rtl/bsd/i386/cprt0.as +++ /dev/null @@ -1,141 +0,0 @@ -# -# $Id$ -# This file is part of the Free Pascal run time library. -# Copyright (c) 1999-2000 by Marco van de Voort, Michael Van Canneyt -# and Peter Vreman -# members of the Free Pascal development team. -# -# 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. -# -#**********************************************************************} -# -# FreeBSD ELF startup code for Free Pascal for dynamical linking to libc. -# - - .file "cprt0.as" - .version "01.01" -gcc2_compiled.: -.globl __progname -.section .rodata -.LC0: - .ascii "\0" -.data - .p2align 2 - .type __progname,@object - .size __progname,4 -__progname: - .long .LC0 - .align 4 -___fpucw: - .long 0x1332 - - .globl ___fpc_brk_addr /* heap management */ - .type ___fpc_brk_addr,@object - .size ___fpc_brk_addr,4 -___fpc_brk_addr: - .long 0 - - -.text - .p2align 2 -.globl _start - .type _start,@function -_start: - pushl %ebp - movl %esp,%ebp - pushl %edi - pushl %esi - pushl %ebx -#APP - movl %edx,%edx -#NO_APP - leal 8(%ebp),%edi - movl %edi,U_SYSLINUX_ARGV - mov -4(%edi),%eax - movl %eax,U_SYSLINUX_ARGC - movl 4(%ebp),%ebx - leal 12(%ebp,%ebx,4),%esi - movl %esi,U_SYSLINUX_ENVP - movl %esi,environ - testl %ebx,%ebx - jle .L2 - movl 8(%ebp),%eax - testl %eax,%eax - je .L2 - movl %eax,__progname - cmpb $0,(%eax) - je .L2 - .p2align 2,0x90 -.L6: - cmpb $47,(%eax) - jne .L5 - leal 1(%eax),%ecx - movl %ecx,__progname -.L5: - incl %eax - cmpb $0,(%eax) - jne .L6 -.L2: - movl $_DYNAMIC,%eax - testl %eax,%eax - je .L9 - pushl %edx - call atexit - addl $4,%esp -.L9: - pushl $_fini - call atexit - call _init -# pushl %esi -# pushl %edi -# pushl %ebx -# call main -# pushl %eax -# call exit - - - finit /* initialize fpu */ - fwait - fldcw ___fpucw - - xorl %ebp,%ebp - - call main - pushl %eax - jmp _haltproc - - .p2align 2,0x90 - -.globl _haltproc -.type _haltproc,@function - -_haltproc: - mov $1,%eax - movzwl U_SYSLINUX_EXITCODE,%ebx - pushl %ebx - call .Lactualsyscall - addl $4,%esp - jmp _haltproc - -.Lactualsyscall: - int $0x80 - jb .LErrorcode - xor %ebx,%ebx - ret -.LErrorcode: - mov %eax,%ebx - mov $-1,%eax - ret - .p2align 2,0x90 -.Lfe1: - - - .size _start,.Lfe1-_start - .comm environ,4,4 - .weak _DYNAMIC - .ident "GCC: (GNU) 2.7.2.1" diff --git a/rtl/bsd/i386/prt0.as b/rtl/bsd/i386/prt0.as deleted file mode 100644 index 9c0bcb218a..0000000000 --- a/rtl/bsd/i386/prt0.as +++ /dev/null @@ -1,124 +0,0 @@ -# -# $Id$ -# This file is part of the Free Pascal run time library. -# Copyright (c) 1999-2000 by Marco van de Voort, Michael Van Canneyt -# and Peter Vreman -# members of the Free Pascal development team. -# -# 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. -# -#**********************************************************************} -# -# FreeBSD standard (static) ELF startup code for Free Pascal -# - - .file "prt1.as" - .version "01.01" -gcc2_compiled.: -.globl __progname -.section .rodata -.LC0: - .ascii "\0" -.data - .p2align 2 - .type __progname,@object - .size __progname,4 -__progname: - .long .LC0 - .align 4 -___fpucw: - .long 0x1332 - - .globl ___fpc_brk_addr /* heap management */ - .type ___fpc_brk_addr,@object - .size ___fpc_brk_addr,4 -___fpc_brk_addr: - .long 0 - - -.text - .p2align 2 -.globl _start - .type _start,@function -_start: - pushl %ebp - movl %esp,%ebp - pushl %edi - pushl %esi - pushl %ebx -#APP - movl %edx,%edx -#NO_APP - leal 8(%ebp),%edi - movl %edi,U_SYSLINUX_ARGV - mov -4(%edi),%eax - movl %eax,U_SYSLINUX_ARGC - movl 4(%ebp),%ebx - leal 12(%ebp,%ebx,4),%esi - movl %esi,U_SYSLINUX_ENVP - movl %esi,environ - testl %ebx,%ebx - jle .L2 - movl 8(%ebp),%eax - testl %eax,%eax - je .L2 - movl %eax,__progname - cmpb $0,(%eax) - je .L2 - .p2align 2,0x90 -.L6: - cmpb $47,(%eax) - jne .L5 - leal 1(%eax),%ecx - movl %ecx,__progname -.L5: - incl %eax - cmpb $0,(%eax) - jne .L6 -.L2: -.L9: - -# copied from linux - - finit /* initialize fpu */ - fwait - fldcw ___fpucw - - xorl %ebp,%ebp - - call main - pushl %eax - jmp _haltproc - -.p2align 2,0x90 -.globl _haltproc -.type _haltproc,@function - -_haltproc: - mov $1,%eax - movzwl U_SYSLINUX_EXITCODE,%ebx - pushl %ebx - call _actualsyscall - addl $4,%esp - jmp _haltproc - -_actualsyscall: - int $0x80 - jb .LErrorcode - xor %ebx,%ebx - ret -.LErrorcode: - mov %eax,%ebx - mov $-1,%eax - ret - .p2align 2,0x90 -.Lfe1: - .size _start,.Lfe1-_start - .comm environ,4,4 - .weak _DYNAMIC - .ident "GCC: (GNU) 2.7.2.1" diff --git a/rtl/bsd/syscalls.inc b/rtl/bsd/syscalls.inc deleted file mode 100644 index 46d6ffb297..0000000000 --- a/rtl/bsd/syscalls.inc +++ /dev/null @@ -1,420 +0,0 @@ -{ - $Id$ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by Michael Van Canneyt, - member of the Free Pascal development team. - - 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. - - **********************************************************************} - -{BSD version of the syscalls required to implement SysLinux.} - -{No debugging for syslinux include !} -{$IFDEF SYS_LINUX} - {$UNDEF SYSCALL_DEBUG} -{$ENDIF SYS_LINUX} - -{***************************************************************************** - --- Main:The System Call Self --- -*****************************************************************************} - -{ The system designed for Linux can't be used for FreeBSD so easily, since - FreeBSD pushes arguments, instead of loading them to registers. - -For now I do them in assembler, which makes it easier to test them (copy and -paste to and AS source). Ultimately I hope to design something like this} - -{actualsyscall: - _actualsyscall : int $0x80 - jb someerror - ret - someerror: storeerrorsomewhere - ret -} - -{ -procedure actualsyscall; cdecl; EXTERNAL NAME '_actualsyscall'; -} - -procedure actualsyscall; assembler; - asm - int $0x80 - jb .LErrorcode - xor %ebx,%ebx - ret -.LErrorcode: - mov %eax,%ebx - mov $-1,%eax - end; - - -function Do_SysCall(sysnr:LONGINT):longint; assembler; - -asm - movl sysnr,%eax - call actualsyscall - movw %bx,Errno -end; - -function Do_SysCall(sysnr,param1:longint):longint; assembler; - - asm - movl sysnr,%eax - pushl Param1 - call actualsyscall - addl $4,%esp - movw %bx,Errno - end; - -function Do_SysCall(sysnr,param1:integer):longint; assembler; - - asm - movl sysnr,%eax - pushw Param1 - call actualsyscall - addw $2,%esp - movw %bx,Errno - end; - - -function Do_SysCall(sysnr,param1,param2:LONGINT):longint; assembler; - - asm - movl sysnr,%eax - pushl param2 - pushl Param1 - call actualsyscall - addl $8,%esp - movw %bx,Errno - end; - -function Do_SysCall(sysnr,param1,param2,param3:LONGINT):longint; assembler; - - asm - movl sysnr,%eax - pushl param3 - pushl param2 - pushl Param1 - call actualsyscall - addl $12,%esp - movw %bx,Errno - end; - -function Do_SysCall(sysnr,param1,param2,param3,param4:LONGINT):longint; assembler; - -asm - movl sysnr,%eax - pushl param4 - pushl param3 - pushl param2 - pushl Param1 - call actualsyscall - addl $16,%esp - movw %bx,Errno -end; - - -function Do_SysCall(sysnr,param1,param2,param3,param4,param5:LONGINT):longint; assembler; - - asm - movl sysnr,%eax - pushl param5 - pushl param4 - pushl param3 - pushl param2 - pushl Param1 - call actualsyscall - addl $20,%esp - movw %bx,Errno - end; - -function Do_SysCall(sysnr,param1,param2,param3,param4,param5,param6,param7:LONGINT):longint; assembler; - -asm - movl sysnr,%eax - pushl param7 - pushl param6 - pushl param5 - pushl param4 - pushl param3 - pushl param2 - pushl Param1 - call actualsyscall - addl $28,%esp - movw %bx,Errno -end; - -Function Sys_Time:longint; - -VAR tv : timeval; - tz : timezone; - retval : longint; - -begin - Retval:=do_syscall(116,longint(@tv),longint(@tz)); - If retval=-1 then - sys_time:=-1 - else - sys_time:=tv.sec; -end; - -{***************************************************************************** - --- File:File handling related calls --- -*****************************************************************************} - - -Function Sys_Open(f:pchar;flags:longint;mode:integer):longint; - -Begin - sys_open:=do_syscall(syscall_nr_open,longint(f),flags,mode); -End; - -Function Sys_Close(f:longint):longint; - -begin - sys_close:=do_syscall(syscall_nr_close,f); -end; - -{ -Function Sys_Lseek(F:longint;Off:longint;Whence:longint):longint; - -var returnvalue64 : array[0..1] of longint; - -begin - {Lseek's offset is 64-bit, the highword is the 0} - do_syscall(syscall_nr_lseek,longint(@returnvalue64),F,Off,0,Whence); - sys_lseek:=returnvalue64[0]; -end; - -} - -Function Sys_Lseek(F:longint;Off:longint;Whence:longint):longint; assembler; - -{this one is special for the return value being 64-bit..} - - asm - pushl Whence - pushl $0 // high dword - pushl Off - pushl $0 - pushl F - pushl $0 // Your guess is as good as mine. - pushl $0xc7 // Actual lseek syscall number. - movl $0xc6,%eax - call actualsyscall - addl $28,%esp - mov %ebx,Errno - end; - -Function Sys_Read(f:longint;buffer:pchar;count:longint):longint; - -begin - sys_read:=do_syscall(syscall_nr_read,F,longint(buffer),count); -end; - -Function Sys_Write(f:longint;buffer:pchar;count:longint):longint; - -begin - sys_write:=do_syscall(syscall_nr_write,F,longint(buffer),count); -end; - -Function Sys_Unlink(Filename:pchar):longint; - -begin - sys_unlink:=do_syscall(syscall_nr_unlink,longint(Filename)); -end; - -Function Sys_Rename(Oldname,Newname:pchar):longint; - -begin - sys_rename:=do_syscall(syscall_nr_rename,longint(oldname),longint(newname)); -end; - -Function Sys_Stat(Filename:pchar;var Buffer: stat):longint; -{ - We need this for getcwd -} - -begin - sys_stat:=do_syscall(syscall_nr_stat,longint(filename),longint(@buffer)); -end; - -Function Sys_Symlink(oldname,newname:pchar):longint; -{ - We need this for erase -} - -begin - sys_symlink:=do_syscall(syscall_nr_symlink,longint(oldname),longint(newname)); -end; - - -Function Sys_ReadLink(name,linkname:pchar;maxlen:longint):longint; - -begin - sys_readlink:=do_syscall(syscall_nr_readlink, longint(name),longint(linkname),maxlen); -end; - - - -{***************************************************************************** - --- Directory:Directory related calls --- -*****************************************************************************} - -Function Sys_Chdir(Filename:pchar):longint; - -begin - sys_chdir:=do_syscall(syscall_nr_chdir,longint(filename)); -end; - -Function Sys_Mkdir(Filename:pchar;mode:longint):longint; - -begin {Mode is 16-bit on F-BSD} - sys_mkdir:=do_syscall(syscall_nr_mkdir,longint(filename),mode shl 8); -end; - -Function Sys_Rmdir(Filename:pchar):longint; - -begin - sys_rmdir:=do_syscall(syscall_nr_rmdir,longint(filename)); -end; - - -const DIRBLKSIZ=1024; - - -{ we need this for getcwd, NOT touched for BSD version } -Function OpenDir(f:pchar):pdir; - -var - fd:longint; - st:stat; - ptr:pdir; -begin - opendir:=nil; - if sys_stat(f,st)<0 then - exit; -{ Is it a dir ? } - if not((st.mode and $f000)=$4000)then - begin - errno:=sys_enotdir; - exit - end; -{ Open it} - fd:=sys_open(f,OPEN_RDONLY,438); - if fd<0 then - exit; - new(ptr); - if ptr=nil then - exit; - Getmem(ptr^.buf,2*DIRBLKSIZ); - if ptr^.buf=nil then - exit; - ptr^.fd:=fd; - ptr^.loc:=-1; - ptr^.rewind:=longint(ptr^.buf); - ptr^.size:=0; -// ptr^.dd_max:=sizeof(ptr^.buf^); - opendir:=ptr; -end; - -function CloseDir(p:pdir):integer; -begin - closedir:=sys_close(p^.fd); - Freemem(p^.buf); - dispose(p); -end; - - -Function Sys_ReadDir(p:pdir):pdirent; -{Different from Linux, Readdir on BSD is based on Getdents, due to the -missing of the readdir syscall. -Getdents requires the buffer to be larger than the blocksize. -This usually the sectorsize =512 bytes, but maybe tapedrives and harddisks -with blockmode have this higher?} - -function readbuffer:longint; - -var retval :longint; - -begin - retval:=do_syscall(syscall_nr_getdents,longint(p^.fd),longint(@p^.buf^),DIRBLKSIZ {sizeof(getdentsbuffer)}); - p^.rewind:=longint(p^.buf); - if retval=0 then - begin - p^.rewind:=0; - p^.loc:=0; - end - else - P^.loc:=retval; - readbuffer:=retval; -end; - -var - l : pdirent; - novalid : boolean; - -begin - if (p^.buf=nil) or (p^.loc=0) THEN - exit(nil); - if p^.loc=-1 then {First readdir on this pdir. Initial fill of buffer} - begin - if readbuffer()=0 Then {nothing to be read} - exit(nil) - end; - l:=nil; - repeat - novalid:=false; - if (pdirent(p^.rewind)^.reclen<>0) then - begin {valid direntry?} - if pdirent(P^.rewind)^.ino<>0 then - l:=pdirent(p^.rewind); - inc(p^.rewind,pdirent(p^.rewind)^.reclen); - if p^.rewind>=(longint(p^.buf)+dirblksiz) then - novalid:=true; - end - else - novalid:=true; - if novalid then - begin {block entirely searched or reclen=0} - if p^.loc<>0 THEN {blocks left?} - if readbuffer()<>0 then {succesful read?} - novalid:=false; - end; - until (l<>nil) or novalid; - Sys_ReadDir:=l; -end; - - -{***************************************************************************** - --- Process:Process & program handling - related calls --- -*****************************************************************************} - - -Function sys_GetPid:LongInt; -{ - Get Process ID. -} - -begin - sys_GetPID:=do_syscall(syscall_nr_getpid); -end; - -Procedure Sys_Exit(ExitCode:longint); - -begin - do_syscall(syscall_nr_exit,exitcode); -end; - -{ - $Log$ - Revision 1.2 2000-07-13 11:33:37 michael - + removed logs - -} diff --git a/rtl/bsd/sysconst.inc b/rtl/bsd/sysconst.inc deleted file mode 100644 index 8623ecd18b..0000000000 --- a/rtl/bsd/sysconst.inc +++ /dev/null @@ -1,93 +0,0 @@ -{ - $Id$ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by Michael Van Canneyt, - member of the Free Pascal development team. - - 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. - - **********************************************************************} - -{BSD version, only the blocks with BSD in the comment are updated} - -Const - { Things for LSEEK call, same in linux and BSD } - Seek_set = 0; - Seek_Cur = 1; - Seek_End = 2; - { Things for OPEN call - after include/sys/fcntl.h, BSD updated. - BSD specifies these constants in hex } - Open_Accmode = 3; - Open_RdOnly = 0; - Open_WrOnly = 1; - Open_RdWr = 2; - Open_NonBlock = 4; - Open_Append = 8; - Open_ShLock = $10; - Open_ExLock = $20; - Open_ASync = $40; - Open_FSync = $80; - Open_NoFollow = $100; - Open_Create = $200; {BSD convention} - Open_Creat = $200; {Linux convention} - Open_Trunc = $400; - Open_Excl = $800; - - - { The waitpid uses the following options:} - Wait_NoHang = 1; - Wait_UnTraced = 2; - Wait_Any = -1; - Wait_MyPGRP = 0; - { Constants to check stat.mode - checked all STAT constants with BSD} - STAT_IFMT = $f000; {00170000 } - STAT_IFSOCK = $c000; {0140000 } - STAT_IFLNK = $a000; {0120000 } - STAT_IFREG = $8000; {0100000 } - STAT_IFBLK = $6000; {0060000 } - STAT_IFDIR = $4000; {0040000 } - STAT_IFCHR = $2000; {0020000 } - STAT_IFIFO = $1000; {0010000 } - STAT_ISUID = $0800; {0004000 } - STAT_ISGID = $0400; {0002000 } - STAT_ISVTX = $0200; {0001000} - { Constants to check permissions all } - STAT_IRWXO = $7; - STAT_IROTH = $4; - STAT_IWOTH = $2; - STAT_IXOTH = $1; - - STAT_IRWXG = STAT_IRWXO shl 3; - STAT_IRGRP = STAT_IROTH shl 3; - STAT_IWGRP = STAT_IWOTH shl 3; - STAT_IXGRP = STAT_IXOTH shl 3; - - STAT_IRWXU = STAT_IRWXO shl 6; - STAT_IRUSR = STAT_IROTH shl 6; - STAT_IWUSR = STAT_IWOTH shl 6; - STAT_IXUSR = STAT_IXOTH shl 6; - - { Constants to test the type of filesystem } - fs_old_ext2 = $ef51; - fs_ext2 = $ef53; - fs_ext = $137d; - fs_iso = $9660; - fs_minix = $137f; - fs_minix_30 = $138f; - fs_minux_V2 = $2468; - fs_msdos = $4d44; - fs_nfs = $6969; - fs_proc = $9fa0; - fs_xia = $012FD16D; - -{ - $Log$ - Revision 1.2 2000-07-13 11:33:37 michael - + removed logs - -} diff --git a/rtl/bsd/sysnr.inc b/rtl/bsd/sysnr.inc deleted file mode 100644 index bbe30775bd..0000000000 --- a/rtl/bsd/sysnr.inc +++ /dev/null @@ -1,373 +0,0 @@ -{ - $Id$ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by Michael Van Canneyt, - member of the Free Pascal development team. - - 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. - - **********************************************************************} - -const -{ Unverified calls. - syscall_nr_setup = 0; - syscall_nr_creat = 8; - syscall_nr_time = 13; - syscall_nr_break = 17; - syscall_nr_oldstat = 18; - syscall_nr_mount = 21; - syscall_nr_umount = 22; - syscall_nr_setuid = 23; - syscall_nr_stime = 25; - syscall_nr_ptrace = 26; - syscall_nr_alarm = 27; - syscall_nr_oldfstat = 28; - syscall_nr_pause = 29; - syscall_nr_stty = 31; - syscall_nr_gtty = 32; - syscall_nr_nice = 34; - syscall_nr_ftime = 35; - syscall_nr_sync = 36; - syscall_nr_times = 43; - syscall_nr_prof = 44; - syscall_nr_brk = 45; - syscall_nr_setgid = 46; - syscall_nr_signal = 48; - syscall_nr_acct = 51; - syscall_nr_phys = 52; - syscall_nr_lock = 53; - syscall_nr_mpx = 56; - syscall_nr_setpgid = 57; - syscall_nr_ulimit = 58; - syscall_nr_oldolduname = 59; - syscall_nr_chroot = 61; - syscall_nr_ustat = 62; - syscall_nr_getpgrp = 65; - syscall_nr_setsid = 66; - syscall_nr_sgetmask = 68; - syscall_nr_ssetmask = 69; - syscall_nr_setreuid = 70; - syscall_nr_setregid = 71; - syscall_nr_sethostname = 74; - syscall_nr_setrlimit = 75; - syscall_nr_getrlimit = 76; - syscall_nr_getrusage = 77; - syscall_nr_settimeofday = 79; - syscall_nr_getgroups = 80; - syscall_nr_setgroups = 81; - syscall_nr_oldlstat = 84; - syscall_nr_uselib = 86; - syscall_nr_swapon = 87; - syscall_nr_reboot = 88; - syscall_nr_readdir = 89; - syscall_nr_munmap = 91; - syscall_nr_truncate = 92; - syscall_nr_fchmod = 94; - syscall_nr_fchown = 95; - syscall_nr_profil = 98; - syscall_nr_ioperm = 101; - syscall_nr_socketcall = 102; - syscall_nr_syslog = 103; - syscall_nr_setitimer = 104; - syscall_nr_getitimer = 105; - syscall_nr_olduname = 109; - syscall_nr_iopl = 110; - syscall_nr_vhangup = 111; - syscall_nr_idle = 112; - syscall_nr_vm86old = 113; - syscall_nr_wait4 = 114; - syscall_nr_swapoff = 115; - syscall_nr_sysinfo = 116; - syscall_nr_ipc = 117; - syscall_nr_sigreturn = 119; - syscall_nr_clone = 120; - syscall_nr_setdomainname = 121; - syscall_nr_uname = 122; - syscall_nr_modify_ldt = 123; - syscall_nr_adjtimex = 124; - syscall_nr_mprotect = 125; - syscall_nr_create_module = 127; - syscall_nr_init_module = 128; - syscall_nr_delete_module = 129; - syscall_nr_get_kernel_syms = 130; - syscall_nr_quotactl = 131; - syscall_nr_getpgid = 132; - syscall_nr_fchdir = 133; - syscall_nr_bdflush = 134; - syscall_nr_sysfs = 135; - syscall_nr_personality = 136; - syscall_nr_afs_syscall = 137; - syscall_nr_setfsuid = 138; - syscall_nr_setfsgid = 139; - syscall_nr__llseek = 140; - syscall_nr__newselect = 142; - syscall_nr_msync = 144; - syscall_nr_readv = 145; - syscall_nr_writev = 146; - syscall_nr_getsid = 147; - syscall_nr_fdatasync = 148; - syscall_nr__sysctl = 149; - syscall_nr_mlock = 150; - syscall_nr_munlock = 151; - syscall_nr_mlockall = 152; - syscall_nr_munlockall = 153; - syscall_nr_sched_setparam = 154; - syscall_nr_sched_getparam = 155; - syscall_nr_sched_setscheduler = 156; - syscall_nr_sched_getscheduler = 157; - syscall_nr_sched_yield = 158; - syscall_nr_sched_get_priority_max = 159; - syscall_nr_sched_get_priority_min = 160; - syscall_nr_sched_rr_get_interval = 161; - syscall_nr_nanosleep = 162; - syscall_nr_mremap = 163; - syscall_nr_setresuid = 164; - syscall_nr_getresuid = 165; - syscall_nr_vm86 = 166; - syscall_nr_query_module = 167; - syscall_nr_poll = 168; -} - -{More or less checked BSD syscalls} - - syscall_nr_exit = 1; - syscall_nr_fork = 2; - syscall_nr_read = 3; - syscall_nr_write = 4; - syscall_nr_open = 5; - syscall_nr_close = 6; - syscall_nr_waitpid = 7; - syscall_nr_link = 9; - syscall_nr_unlink = 10; - syscall_nr_chdir = 12; - syscall_nr_mknod = 14; - syscall_nr_chmod = 15; - syscall_nr_chown = 16; - syscall_nr_getpid = 20; - syscall_nr_getuid = 24; - syscall_nr_geteuid = 25; - syscall_nr_access = 33; - syscall_nr_kill = 37; - syscall_nr_rename = 128; - syscall_nr_getppid = 39; - syscall_nr_dup = 41; - syscall_nr_pipe = 42; - syscall_nr_getegid = 43; - syscall_nr_getgid = 47; - syscall_nr_sigprocmask = 340; - syscall_nr_sigpending = 343; - syscall_nr_ioctl = 54; - syscall_nr_symlink = 57; - syscall_nr_readlink = 58; - syscall_nr_execve = 59; - syscall_nr_umask = 60; - syscall_nr_dup2 = 90; - syscall_nr_fcntl = 92; - syscall_nr_select = 93; - syscall_nr_fsync = 95; - syscall_nr_setpriority = 96; - syscall_nr_getpriority = 100; - syscall_nr_sigsuspend = 341; - syscall_nr_sigaction = 342; - syscall_nr_gettimeofday = 116; - syscall_nr_flock = 131; - syscall_nr_mkdir = 136; - syscall_nr_rmdir = 137; - syscall_nr_utimes = 138; - syscall_nr_statfs = 157; - syscall_nr_fstatfs = 158; - syscall_nr_stat = 188; - syscall_nr_fstat = 189; - syscall_nr_lstat = 190; - syscall_nr_mmap = 197; - syscall_nr_lseek = 199; - syscall_nr_ftruncate = 201; - syscall_nr_getdents = 272; - - -{$IFNDEF BSD} -{$IFDEF SYSCALL_DEBUG} -const - Sys_nr_txt : array[0..168] of string[15]=( - 'Setup', { 0 } - 'Exit', { 1 } - 'Fork', { 2 } - 'Read', { 3 } - 'Write', { 4 } - 'Open', { 5 } - 'Close', { 6 } - 'WaitPid', { 7 } - 'Create', { 8 } - 'Link', { 9 } - 'UnLink', { 10 } - 'ExecVe', { 11 } - 'ChDir', { 12 } - 'Time', { 13 } - 'MkNod', { 14 } - 'ChMod', { 15 } - 'ChOwn', { 16 } - 'Break', { 17 } - 'OldState', { 18 } - 'LSeek', { 19 } - 'GetPid', { 20 } - 'Mount', { 21 } - 'UMount', { 22 } - 'SetUid', { 23 } - 'GetUid', { 24 } - 'STime', { 25 } - 'PTrace', { 26 } - 'Alarm', { 27 } - 'OldFStat', { 28 } - 'Pause', { 29 } - 'UTime', { 30 } - 'STTY', { 31 } - 'GTTY', { 32 } - 'Access', { 33 } - 'Nice', { 34 } - 'FTime', { 35 } - 'Sync', { 36 } - 'Kill', { 37 } - 'Rename', { 38 } - 'MkDir', { 39 } - 'RmDir', { 40 } - 'Dup', { 41 } - 'Pipe', { 42 } - 'Times', { 43 } - 'Prof', { 44 } - 'Break', { 45 } - 'SetGid', { 46 } - 'GetGid', { 47 } - 'Signal', { 48 } - 'GetEUid', { 49 } - 'GetEGid', { 50 } - 'Acct', { 51 } - 'Phys', { 52 } - 'Lock', { 53 } - 'IOCtl', { 54 } - 'FCNtl', { 55 } - 'Mpx', { 56 } - 'SetPGid', { 57 } - 'ULimit', { 58 } - 'OldOldUName', { 59 } - 'UMask', { 60 } - 'ChRoot', { 61 } - 'UStat', { 62 } - 'Dup2', { 63 } - 'GetPPid', { 64 } - 'GetPGrp', { 65 } - 'SetSid', { 66 } - 'SigAction', { 67 } - 'SGetMask', { 68 } - 'SSetMask', { 69 } - 'SetReUid', { 70 } - 'SetReGid', { 71 } - 'SigSuspend', { 72 } - 'SigPending', { 73 } - 'SetHostName', { 74 } - 'SetRLimit', { 75 } - 'GetRLimit', { 76 } - 'GetRUsage', { 77 } - 'GetTimeOfDay', { 78 } - 'SetTimeOfDay', { 79 } - 'GetGroups', { 80 } - 'SetGroups', { 81 } - 'Select', { 82 } - 'SymLink', { 83 } - 'OldLStat', { 84 } - 'ReadLink', { 85 } - 'UseLib', { 86 } - 'SwapOn', { 87 } - 'Reboot', { 88 } - 'ReadDir', { 89 } - 'MMap', { 90 } - 'MunMap', { 91 } - 'Truncate', { 92 } - 'FTruncate', { 93 } - 'FChMod', { 94 } - 'FChOwn', { 95 } - 'GetPriority', { 96 } - 'SetPriority', { 97 } - 'Profile', { 98 } - 'StatFs', { 99 } - 'FStatFs', { 100 } - 'IOPerm', { 101 } - 'SocketCall', { 102 } - 'SysLog', { 103 } - 'SetITimer', { 104 } - 'GetITimer', { 105 } - 'Stat', { 106 } - 'LStat', { 107 } - 'FStat', { 108 } - 'OldUName', { 109 } - 'IOPl', { 110 } - 'VHangup', { 111 } - 'Idle', { 112 } - 'VM86', { 113 } - 'Wait4', { 114 } - 'SwapOff', { 115 } - 'SysInfo', { 116 } - 'IPC', { 117 } - 'FSync', { 118 } - 'SigReturn', { 119 } - 'Clone', { 120 } - 'SetDomainName', { 121 } - 'UName', { 122 } - 'Modify_Ldt', { 123 } - 'AdjTimeX', { 124 } - 'MProtect', { 125 } - 'SigProcMask', { 126 } - 'Create_Module', { 127 } - 'Init_Module', { 128 } - 'Delete_Module', { 129 } - 'Get_Kernel_Syms', { 130 } - 'QuotaCtl', { 131 } - 'GetPGid', { 132 } - 'FChDir', { 133 } - 'BDFlush', { 134 } - 'SysFs', { 135 } - 'Personality', { 136 } - 'AFS_SysCall', { 137 } - 'SetFsUid', { 138 } - 'SetFsGid', { 139 } - '__LLSeek', { 140 } - 'GetDents', { 141 } - '__NewSelect', { 142 } - 'FLock', { 143 } - 'MSync', { 144 } - 'ReadV', { 145 } - 'WriteV', { 146 } - 'GetSid', { 147 } - 'FDataSync', { 148 } - '__SysCtl', { 149 } - 'MLock', { 150 } - 'MUnLock', { 151 } - 'MLockAll', { 152 } - 'MUnLockAll', { 153 } - 'MSchdSetParam', { 154 } - 'MSchdGetParam', { 155 } - 'MSchdSetSchd', { 156 } - 'MSchdGetSchd', { 157 } - 'MSchdYield', { 158 } - 'MSchdGetPriMax', { 159 } - 'MSchdGetPriMin', { 160 } - 'MSchdRRGetInt', { 161 } - 'NanoSleep', { 162 } - 'MRemap', { 163 } - 'SetReSuid', { 164 } - 'GetReSuid', { 165 } - 'vm86', { 166 } - 'QueryModule', { 167 } - 'Poll'); { 168 } -{$ENDIF} -{$ENDIF} -{ - $Log$ - Revision 1.2 2000-07-13 11:33:38 michael - + removed logs - -} diff --git a/rtl/bsd/systypes.inc b/rtl/bsd/systypes.inc deleted file mode 100644 index a43b48bc63..0000000000 --- a/rtl/bsd/systypes.inc +++ /dev/null @@ -1,158 +0,0 @@ -{ - $Id$ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by Michael Van Canneyt, - member of the Free Pascal development team. - - 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. - - **********************************************************************} -type - -{ - Linux system calls take arguments as follows : - - i386/m68k: - - %eax/%d0 : System call number - %ebx/%d1 : first argument - %ecx/%d2 : second argument - %edx/%d3 : third argumens - %esi/%d3 : fourth argument - %edi/%d4 : fifth argument - - That is why we define a special type, with only these arguments - To make it processor independent, we don't give any system dependent - names, but the rather abstract reg1,reg2 etc; -} - SysCallRegs=record - reg1,reg2,reg3,reg4,reg5,reg6 : longint; - end; - PSysCallRegs=^SysCallRegs; - TSysCallRegs=SysCallRegs; - -{ The following are records for system calls BSD updated } - dirent = packed record - ino : cardinal; { This is not inode number, but "a number - unique for each file on a filesystem"} - reclen : word; - d_type, - namlen : byte; - name : array [0..255] of char; - end; - - pdirent =^dirent; - TDirEnt = dirent; - - TDir= packed record {BSD libc record.} - fd : longint; { file descriptor associated with directory } - loc, { offset in current buffer } - size : cardinal; { amount of data returned by getdirentries} - buf : pdirent; { data buffer, actually a pchar} - len : longint; { size of data buffer } - seek, { magic cookie returned by getdirentries} - rewind: cardinal; { magic cookie for rewinding} - flags : longint; { flags for readdir } - end; - -{ Linux kernel record - TDir = packed record - fd : longint; - loc : longint; - size : integer; - buf : pdirent; - {The following are used in libc, but NOT in the linux kernel sources ??} - nextoff: longint; - dd_max : integer; {size of buf. Irrelevant, as buf is of type dirent} - lock : pointer; - dummy : array[0..1023] of char; - end;} - - PDir =^TDir; - -{$packrecords C} - Stat =record {BSD version} - dev, { inode's device } - ino : cardinal; { inode's number } - mode, { inode protection mode } - nlink : word; { number of hard links } - uid, { user ID of the file's owner } - gid, { group ID of the file's group } - dev_t : cardinal; { device type } - atime, { time of last access } - atime_nsec, { nsec of last access } - mtime, { time of last data modification } - mtime_nsec, { nsec of last data modification } - ctime, { time of last file status change } - ctime_nsec : longint; { nsec of last file status change } - size, { file size, in bytes } - blocks : Int64; { blocks allocated for file } - blksze, { optimal blocksize for I/O } - flags, { user defined flags for file } - filegen : cardinal; { file generation number } - lspare : longint; - qspare : array[0..1] of int64; - end; - - PStat=^Stat; - TStat=Stat; - - Statfs = packed record - spare2, { place holder} - bsize, { fundamental block size} - iosize, { optimal block size } - blocks, { total blocks} - bfree, { blocks free} - bavail, { block available for mortal users} - files, { Total file nodes} - ffree : longint; { file nodes free} - fsid : array[0..1] of longint; - fowner : longint; {mounter uid} - ftype : longint; - fflags : longint; {copy of mount flags} - spare : array [0..1] of longint; { For later use } - fstypename : array[0..15] of char; - mountpoint : array[0..89] of char; - mnfromname : array[0..89] of char; - end; - PStatFS=^StatFS; - TStatFS=StatFS; - - fdSet=array[0..7] of longint;{=256 bits} - pfdset=^fdset; - TFDSet=fdset; - - timeval = packed record - sec,usec:int64; - end; - ptimeval=^timeval; - TTimeVal=timeval; - - timezone = packed record - minuteswest,dsttime:longint; - end; - ptimezone =^timezone; - TTimeZone = timezone; - - utsname = packed record - sysname, - nodename, - release, - version, - machine, - domainname : Array[0..64] of char; - end; - PUTSName=^UTSName; - TUTSName=UTSName; - -{ - $Log$ - Revision 1.2 2000-07-13 11:33:38 michael - + removed logs - -}