Browse Source

* freebsd update
* classes.rst

peter 25 years ago
parent
commit
392d0a5ebb

+ 1540 - 0
fcl/freebsd/Makefile

@@ -0,0 +1,1540 @@
+#
+# Makefile generated by fpcmake v1.00 [2000/10/27]
+#
+
+defaultrule: all
+
+#####################################################################
+# Autodetect OS (Linux or Dos or Windows NT)
+# define inUnix when running under Unix (Linux,FreeBSD)
+# 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
+inUnix=1
+endif
+else
+PWD:=$(firstword $(PWD))
+endif
+
+# Detect NT - NT sets OS to Windows_NT
+# Detect OS/2 - OS/2 has OS2_SHELL defined
+ifndef inUnix
+ifeq ($(OS),Windows_NT)
+inWinNT=1
+else
+ifdef OS2_SHELL
+inOS2=1
+endif
+endif
+endif
+
+# The extension of executables
+ifdef inUnix
+SRCEXEEXT=
+else
+SRCEXEEXT=.exe
+endif
+
+# The path which is searched separated by spaces
+ifdef inUnix
+SEARCHPATH=$(subst :, ,$(PATH))
+else
+SEARCHPATH=$(subst ;, ,$(PATH))
+endif
+
+# Base dir
+ifdef PWD
+BASEDIR:=$(shell $(PWD))
+else
+BASEDIR=.
+endif
+
+#####################################################################
+# Default target
+#####################################################################
+
+override OS_TARGET:=freebsd
+
+#####################################################################
+# FPC version/target Detection
+#####################################################################
+
+# What compiler to use ?
+ifndef FPC
+# Compatibility with old makefiles
+ifdef PP
+FPC=$(PP)
+else
+FPC=ppc386
+endif
+endif
+override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
+override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
+
+# 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
+#####################################################################
+
+# Include files
+UNIXINC=../unix
+INC=../inc
+
+# INCUNITS is defined in makefile.inc
+# They are default units for all platforms.
+include $(INC)/Makefile.inc
+#####################################################################
+# 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 inUnix
+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
+
+ifndef PACKAGESDIR
+PACKAGESDIR=$(FPCDIR)/packages
+endif
+ifndef TOOLKITSDIR
+TOOLKITSDIR=
+endif
+ifndef COMPONENTSDIR
+COMPONENTSDIR=
+endif
+
+# Create units dir
+ifneq ($(FPCDIR),.)
+UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
+endif
+
+#####################################################################
+# User Settings
+#####################################################################
+
+
+# Targets
+
+override DIROBJECTS+=$(wildcard ../db ../xml ../shedit)
+override UNITOBJECTS+=classes $(INCUNITS) process asyncio ssockets http
+override RSTOBJECTS+=classes ssockets cachecls
+
+# Clean
+
+
+# Install
+
+UNITSUBDIR=fcl
+PACKAGENAME=fcl
+ZIPTARGET=install
+
+# Defaults
+
+override NEEDOPT=-S2
+
+# Directories
+
+vpath %$(PASEXT) $(INC) $(UNIXINC)
+override NEEDINCDIR=$(INC) $(UNIXINC)
+ifndef TARGETDIR
+TARGETDIR=.
+endif
+
+# Packages
+
+override PACKAGES+=rtl zlib inet
+
+# Libraries
+
+LIBNAME=libfpfcl.so
+LIBVERSION=1.0
+
+# Info
+
+INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
+
+#####################################################################
+# Shell tools
+#####################################################################
+
+# echo
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(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 inUnix
+INSTALL:=install -c -m 644
+else
+INSTALL:=$(COPY)
+endif
+endif
+
+# To install programs
+ifndef INSTALLEXE
+ifdef inUnix
+INSTALLEXE:=install -c -m 755
+else
+INSTALLEXE:=$(COPY)
+endif
+endif
+
+# To make a directory.
+ifndef MKDIR
+ifdef inUnix
+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 inUnix
+PPAS=ppas.sh
+else
+ifdef inOS2
+PPAS=ppas.cmd
+else
+PPAS=ppas.bat
+endif
+endif
+
+# ldconfig to rebuild .so cache
+ifdef inUnix
+LDCONFIG=ldconfig
+else
+LDCONFIG=
+endif
+
+# ppumove
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE=
+else
+PPUMOVE:=$(firstword $(PPUMOVE))
+endif
+endif
+export PPUMOVE
+
+# ppufiles
+ifndef PPUFILES
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(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$(SRCEXEEXT),$(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$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG=
+else
+ZIPPROG:=$(firstword $(ZIPPROG))
+endif
+endif
+export ZIPPROG
+
+ZIPOPT=-9
+ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vIf
+TAREXT=.tar.bz2
+else
+TAROPT=vzf
+TAREXT=.tar.gz
+endif
+
+#####################################################################
+# Default extensions
+#####################################################################
+
+# Default needed extensions (Go32v2,Linux)
+LOADEREXT=.as
+EXEEXT=.exe
+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)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.lnx
+endif
+
+# Linux
+ifeq ($(OS_TARGET),freebsd)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.freebsd
+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
+
+
+# Check if the dirs really exists, else turn it off
+ifeq ($(wildcard $(UNITSDIR)),)
+UNITSDIR=
+endif
+ifeq ($(wildcard $(TOOLKITSDIR)),)
+TOOLKITSDIR=
+endif
+ifeq ($(wildcard $(PACKAGESDIR)),)
+PACKAGESDIR=
+endif
+ifeq ($(wildcard $(COMPONENTSDIR)),)
+COMPONENTSDIR=
+endif
+
+
+# PACKAGESDIR packages
+
+PACKAGERTL=1
+PACKAGEZLIB=1
+PACKAGEINET=1
+
+ifdef PACKAGERTL
+ifneq ($(wildcard $(FPCDIR)/rtl),)
+ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
+PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
+else
+PACKAGEDIR_RTL=$(FPCDIR)/rtl
+endif
+ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
+override COMPILEPACKAGES+=package_rtl
+package_rtl:
+	$(MAKE) -C $(PACKAGEDIR_RTL) all
+endif
+UNITDIR_RTL=$(PACKAGEDIR_RTL)
+else
+PACKAGEDIR_RTL=
+ifneq ($(wildcard $(UNITSDIR)/rtl),)
+ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
+UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
+else
+UNITDIR_RTL=$(UNITSDIR)/rtl
+endif
+else
+UNITDIR_RTL=
+endif
+endif
+ifdef UNITDIR_RTL
+override NEEDUNITDIR+=$(UNITDIR_RTL)
+endif
+endif
+ifdef PACKAGEZLIB
+ifneq ($(wildcard $(PACKAGESDIR)/zlib),)
+ifneq ($(wildcard $(PACKAGESDIR)/zlib/$(OS_TARGET)),)
+PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib/$(OS_TARGET)
+else
+PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib
+endif
+ifeq ($(wildcard $(PACKAGEDIR_ZLIB)/$(FPCMADE)),)
+override COMPILEPACKAGES+=package_zlib
+package_zlib:
+	$(MAKE) -C $(PACKAGEDIR_ZLIB) all
+endif
+UNITDIR_ZLIB=$(PACKAGEDIR_ZLIB)
+else
+PACKAGEDIR_ZLIB=
+ifneq ($(wildcard $(UNITSDIR)/zlib),)
+ifneq ($(wildcard $(UNITSDIR)/zlib/$(OS_TARGET)),)
+UNITDIR_ZLIB=$(UNITSDIR)/zlib/$(OS_TARGET)
+else
+UNITDIR_ZLIB=$(UNITSDIR)/zlib
+endif
+else
+UNITDIR_ZLIB=
+endif
+endif
+ifdef UNITDIR_ZLIB
+override NEEDUNITDIR+=$(UNITDIR_ZLIB)
+endif
+endif
+ifdef PACKAGEINET
+ifneq ($(wildcard $(PACKAGESDIR)/inet),)
+ifneq ($(wildcard $(PACKAGESDIR)/inet/$(OS_TARGET)),)
+PACKAGEDIR_INET=$(PACKAGESDIR)/inet/$(OS_TARGET)
+else
+PACKAGEDIR_INET=$(PACKAGESDIR)/inet
+endif
+ifeq ($(wildcard $(PACKAGEDIR_INET)/$(FPCMADE)),)
+override COMPILEPACKAGES+=package_inet
+package_inet:
+	$(MAKE) -C $(PACKAGEDIR_INET) all
+endif
+UNITDIR_INET=$(PACKAGEDIR_INET)
+else
+PACKAGEDIR_INET=
+ifneq ($(wildcard $(UNITSDIR)/inet),)
+ifneq ($(wildcard $(UNITSDIR)/inet/$(OS_TARGET)),)
+UNITDIR_INET=$(UNITSDIR)/inet/$(OS_TARGET)
+else
+UNITDIR_INET=$(UNITSDIR)/inet
+endif
+else
+UNITDIR_INET=
+endif
+endif
+ifdef UNITDIR_INET
+override NEEDUNITDIR+=$(UNITDIR_INET)
+endif
+endif
+
+
+#####################################################################
+# Default Directories
+#####################################################################
+
+# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
+# When zipping use the target as default, when normal install then
+# use the source os as default
+ifdef ZIPNAME
+# Zipinstall
+ifeq ($(OS_TARGET),linux)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),freebsd)
+UNIXINSTALLDIR=1
+endif
+else
+# Normal install
+ifeq ($(OS_SOURCE),linux)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_SOURCE),freebsd)
+UNIXINSTALLDIR=1
+endif
+endif
+
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef UNIXINSTALLDIR
+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 UNIXINSTALLDIR
+BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
+else
+BASEINSTALLDIR=$(PREFIXINSTALLDIR)
+endif
+endif
+
+# set the directory where to install the binaries
+ifndef BININSTALLDIR
+ifdef UNIXINSTALLDIR
+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 UNIXINSTALLDIR
+LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
+else
+LIBINSTALLDIR=$(UNITINSTALLDIR)
+endif
+endif
+
+# Where the source files will be stored
+ifndef SOURCEINSTALLDIR
+ifdef UNIXINSTALLDIR
+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 UNIXINSTALLDIR
+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 UNIXINSTALLDIR
+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 inUnix
+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+=-gl -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 NEEDOPT
+override FPCOPT+=$(NEEDOPT)
+endif
+
+ifdef NEEDUNITDIR
+override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
+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 $(addsuffix _all,$(DIROBJECTS))
+
+debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
+
+smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
+
+shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
+
+showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
+
+install: fpc_install $(addsuffix _install,$(DIROBJECTS))
+
+sourceinstall: fpc_sourceinstall
+
+exampleinstall: fpc_exampleinstall
+
+zipinstall: fpc_zipinstall
+
+zipsourceinstall: fpc_zipsourceinstall
+
+zipexampleinstall: fpc_zipexampleinstall
+
+clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
+
+distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
+
+cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
+
+require: $(addsuffix _require,$(DIROBJECTS))
+
+info: fpc_info
+
+.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
+
+#####################################################################
+# Units
+#####################################################################
+
+.PHONY: fpc_units
+
+override ALLTARGET+=fpc_units
+
+override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
+override INSTALLPPUFILES+=$(UNITPPUFILES)
+override CLEANPPUFILES+=$(UNITPPUFILES)
+
+fpc_units: $(UNITPPUFILES)
+
+#####################################################################
+# Resource strings
+#####################################################################
+
+ifdef RSTOBJECTS
+override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
+
+override CLEANRSTFILES+=$(RSTFILES)
+endif
+
+#####################################################################
+# 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 HASSHAREDLIB
+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 $(UNITTARGETDIRPREFIX),$(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 $(UNITTARGETDIRPREFIX),$(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 HASSHAREDLIB
+	@$(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 inUnix
+	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 inUnix
+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 inUnix
+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 EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+
+ifdef EXTRACLEANUNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
+endif
+
+ifdef CLEANPPUFILES
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(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 $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
+endif
+
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+	-$(DEL) $(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=fpc_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)
+
+#####################################################################
+# Directories
+#####################################################################
+
+OBJECTDIR../DB=1
+OBJECTDIR../XML=1
+OBJECTDIR../SHEDIT=1
+
+# Dir ../db
+
+ifdef OBJECTDIR../DB
+.PHONY:  ../db_all ../db_debug ../db_examples ../db_test ../db_smart ../db_shared ../db_showinstall ../db_install ../db_sourceinstall ../db_exampleinstall ../db_zipinstall ../db_zipsourceinstall ../db_zipexampleinstall ../db_clean ../db_distclean ../db_cleanall ../db_require ../db_info
+
+../db_all:
+	$(MAKE) -C ../db all
+
+../db_debug:
+	$(MAKE) -C ../db debug
+
+../db_examples:
+	$(MAKE) -C ../db examples
+
+../db_test:
+	$(MAKE) -C ../db test
+
+../db_smart:
+	$(MAKE) -C ../db smart
+
+../db_shared:
+	$(MAKE) -C ../db shared
+
+../db_showinstall:
+	$(MAKE) -C ../db showinstall
+
+../db_install:
+	$(MAKE) -C ../db install
+
+../db_sourceinstall:
+	$(MAKE) -C ../db sourceinstall
+
+../db_exampleinstall:
+	$(MAKE) -C ../db exampleinstall
+
+../db_zipinstall:
+	$(MAKE) -C ../db zipinstall
+
+../db_zipsourceinstall:
+	$(MAKE) -C ../db zipsourceinstall
+
+../db_zipexampleinstall:
+	$(MAKE) -C ../db zipexampleinstall
+
+../db_clean:
+	$(MAKE) -C ../db clean
+
+../db_distclean:
+	$(MAKE) -C ../db distclean
+
+../db_cleanall:
+	$(MAKE) -C ../db cleanall
+
+../db_require:
+	$(MAKE) -C ../db require
+
+../db_info:
+	$(MAKE) -C ../db info
+endif
+
+# Dir ../xml
+
+ifdef OBJECTDIR../XML
+.PHONY:  ../xml_all ../xml_debug ../xml_examples ../xml_test ../xml_smart ../xml_shared ../xml_showinstall ../xml_install ../xml_sourceinstall ../xml_exampleinstall ../xml_zipinstall ../xml_zipsourceinstall ../xml_zipexampleinstall ../xml_clean ../xml_distclean ../xml_cleanall ../xml_require ../xml_info
+
+../xml_all:
+	$(MAKE) -C ../xml all
+
+../xml_debug:
+	$(MAKE) -C ../xml debug
+
+../xml_examples:
+	$(MAKE) -C ../xml examples
+
+../xml_test:
+	$(MAKE) -C ../xml test
+
+../xml_smart:
+	$(MAKE) -C ../xml smart
+
+../xml_shared:
+	$(MAKE) -C ../xml shared
+
+../xml_showinstall:
+	$(MAKE) -C ../xml showinstall
+
+../xml_install:
+	$(MAKE) -C ../xml install
+
+../xml_sourceinstall:
+	$(MAKE) -C ../xml sourceinstall
+
+../xml_exampleinstall:
+	$(MAKE) -C ../xml exampleinstall
+
+../xml_zipinstall:
+	$(MAKE) -C ../xml zipinstall
+
+../xml_zipsourceinstall:
+	$(MAKE) -C ../xml zipsourceinstall
+
+../xml_zipexampleinstall:
+	$(MAKE) -C ../xml zipexampleinstall
+
+../xml_clean:
+	$(MAKE) -C ../xml clean
+
+../xml_distclean:
+	$(MAKE) -C ../xml distclean
+
+../xml_cleanall:
+	$(MAKE) -C ../xml cleanall
+
+../xml_require:
+	$(MAKE) -C ../xml require
+
+../xml_info:
+	$(MAKE) -C ../xml info
+endif
+
+# Dir ../shedit
+
+ifdef OBJECTDIR../SHEDIT
+.PHONY:  ../shedit_all ../shedit_debug ../shedit_examples ../shedit_test ../shedit_smart ../shedit_shared ../shedit_showinstall ../shedit_install ../shedit_sourceinstall ../shedit_exampleinstall ../shedit_zipinstall ../shedit_zipsourceinstall ../shedit_zipexampleinstall ../shedit_clean ../shedit_distclean ../shedit_cleanall ../shedit_require ../shedit_info
+
+../shedit_all:
+	$(MAKE) -C ../shedit all
+
+../shedit_debug:
+	$(MAKE) -C ../shedit debug
+
+../shedit_examples:
+	$(MAKE) -C ../shedit examples
+
+../shedit_test:
+	$(MAKE) -C ../shedit test
+
+../shedit_smart:
+	$(MAKE) -C ../shedit smart
+
+../shedit_shared:
+	$(MAKE) -C ../shedit shared
+
+../shedit_showinstall:
+	$(MAKE) -C ../shedit showinstall
+
+../shedit_install:
+	$(MAKE) -C ../shedit install
+
+../shedit_sourceinstall:
+	$(MAKE) -C ../shedit sourceinstall
+
+../shedit_exampleinstall:
+	$(MAKE) -C ../shedit exampleinstall
+
+../shedit_zipinstall:
+	$(MAKE) -C ../shedit zipinstall
+
+../shedit_zipsourceinstall:
+	$(MAKE) -C ../shedit zipsourceinstall
+
+../shedit_zipexampleinstall:
+	$(MAKE) -C ../shedit zipexampleinstall
+
+../shedit_clean:
+	$(MAKE) -C ../shedit clean
+
+../shedit_distclean:
+	$(MAKE) -C ../shedit distclean
+
+../shedit_cleanall:
+	$(MAKE) -C ../shedit cleanall
+
+../shedit_require:
+	$(MAKE) -C ../shedit require
+
+../shedit_info:
+	$(MAKE) -C ../shedit info
+endif
+
+#####################################################################
+# Local Makefile
+#####################################################################
+
+ifneq ($(wildcard fpcmake.loc),)
+include fpcmake.loc
+endif
+
+#####################################################################
+# Users rules
+#####################################################################
+
+classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) $(UNIXINC)/classes$(PASEXT)
+
+inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
+
+ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
+
+process$(PPUEXT): process$(PASEXT) process.inc

+ 48 - 0
fcl/freebsd/Makefile.fpc

@@ -0,0 +1,48 @@
+#
+#   Makefile.fpc for Free Component Library for FreeBSD
+#
+
+[targets]
+dirs=../db ../xml ../shedit
+units=classes $(INCUNITS) process asyncio ssockets http
+rst=classes ssockets cachecls
+
+[defaults]
+defaulttarget=freebsd
+
+[require]
+options=-S2
+packages=zlib inet
+
+[install]
+unitsubdir=fcl
+packagename=fcl
+
+[libs]
+libname=libfpfcl.so
+libversion=1.0
+
+[dirs]
+fpcdir=../..
+targetdir=.
+incdir=$(INC) $(UNIXINC)
+sourcesdir=$(INC) $(UNIXINC)
+
+[presettings]
+# Include files
+UNIXINC=../unix
+INC=../inc
+
+# INCUNITS is defined in makefile.inc
+# They are default units for all platforms.
+include $(INC)/Makefile.inc
+
+
+[rules]
+classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) $(UNIXINC)/classes$(PASEXT)
+
+inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
+
+ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
+
+process$(PPUEXT): process$(PASEXT) process.inc

+ 95 - 0
fcl/freebsd/classes.pp

@@ -0,0 +1,95 @@
+{
+    $Id$
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1999-2000 by Michael Van Canneyt and Florian Klaempfl
+
+    Classes unit for linux
+
+    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.
+
+ **********************************************************************}
+
+{$mode objfpc}
+
+{ determine the type of the resource/form file }
+{$define Win16Res}
+
+unit Classes;
+
+interface
+
+uses
+  sysutils,
+  typinfo;
+
+{$i classesh.inc}
+
+implementation
+
+uses
+  linux;
+
+{ OS - independent class implementations are in /inc directory. }
+{$i classes.inc}
+
+
+initialization
+  CommonInit;
+
+finalization
+  CommonCleanup;
+
+  if ThreadsInited then
+     DoneThreads;
+
+end.
+{
+  $Log$
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/17 13:47:43  marco
+   * Copy of fcl/linux dir with adapted makefiles to ease FreeBSD 1.0.2
+  packaging
+
+  Revision 1.1  2000/07/13 06:31:32  michael
+  + Initial import
+
+  Revision 1.19  2000/07/01 09:49:02  peter
+    * fixed go32v2,win32 build
+
+  Revision 1.18  2000/06/29 16:32:06  sg
+  * Changes in initialisation/finalisation for streaming support
+
+  Revision 1.17  2000/06/27 17:17:34  lazarus
+  Added code for registerclass, GetClass and RegisterClasses
+  Shane
+
+  Revision 1.16  2000/06/27 15:55:19  lazarus
+  Added TThreadlist code.   Shane
+
+  Revision 1.15  2000/01/07 01:24:34  peter
+    * updated copyright to 2000
+
+  Revision 1.14  2000/01/07 00:01:33  peter
+    * uses typinfo moved to interface
+
+  Revision 1.13  2000/01/06 01:20:33  peter
+    * moved out of packages/ back to topdir
+
+  Revision 1.2  2000/01/04 18:07:58  michael
+  + Added typinfo unit
+
+  Revision 1.1  2000/01/03 19:33:09  peter
+    * moved to packages dir
+
+  Revision 1.11  1999/05/30 10:46:41  peter
+    * start of tthread for linux,win32
+
+}

+ 7 - 0
fcl/freebsd/notice.txt

@@ -0,0 +1,7 @@
+
+This directory is only temporarily, to ease working on FPC/FreeBSD 1.0.2
+packaging. After that is done, the API and FCL will be restructured like the
+RTL. (linux - unix - freebsd structure)
+
+This dir is a plain copy from the api/linux dir with some small substitutions in
+makefile.fpc (to select the right target)

+ 126 - 0
fcl/freebsd/process.inc

@@ -0,0 +1,126 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 1999-2000 by Michael Van Canneyt
+
+    Linux specific part of TProcess.
+
+    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.
+
+ **********************************************************************}
+
+uses linux;
+
+Function TProcess.GetRunning : Boolean;
+
+begin
+  IF FRunning then
+    FRunning:=GetExitStatus=-1;
+  Result:=FRunning;
+end;
+
+Procedure TProcess.Execute;
+
+begin
+  FreeStreams;
+  CreatePipeStreams (FChildInputSTream,FParentOutPutStream);
+  CreatePipeStreams (FParentInputStream,FChildOutPutStream);
+  If poUsePipes in FCreateOptions then
+    begin
+    if poStdErrToOutPut in FCreateOptions then
+      CreatePipeStreams (FParentErrorStream,FChildErrorStream)
+    else
+      begin
+      FChildErrorStream:=FChildOutPutStream;
+      FParentErrorStream:=FParentInputStream;
+      end;
+    end
+  else
+    CreatePipeStreams (FParentErrorStream,FChildErrorStream);
+  If FCurrentDirectory<>'' then 
+    Chdir(FCurrentDirectory);
+  FHandle:=fork();
+  if FHandle=0 then 
+   begin
+   // Child
+   fdClose(0);
+   fdClose(1);
+   fdclose(2);
+   dup2(FChildInputStream.Handle,0);
+   dup2(FCHildOutputStream.Handle,1);
+   dup2(FChildErrorStream.Handle,2);
+   execl(FCommandline);  
+   halt(127);
+   end
+  else
+    begin
+    // Parent
+    FPID:=FHandle;
+    FThreadHandle:=FHandle; 
+    fdclose(FChildOutputStream.Handle);
+    fdclose(FChildInputStream.Handle);
+    fdclose(FChildErrorStream.Handle);
+    FRunning:=True;
+    if (poWaitOnExit in FCreateOptions) and
+        not (poRunSuspended in FCreateOptions) then
+    WaitOnExit;
+    end;
+end;
+
+Function TProcess.WaitOnExit : Dword;
+
+begin
+  waitpid(FPID, nil, 0);
+{
+  Result:=WaitForSingleObject (FprocessInformation.hProcess,Infinite);
+  If Result<>Wait_Failed then
+    GetExitStatus;
+}  FRunning:=False;
+  Result := 0;
+end;
+
+Function TProcess.Suspend : Longint;
+
+begin
+  Result:=Kill(Handle,SIGSTOP);
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=Kill(FHandle,SIGCONT);
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+
+begin
+  Result:=False;
+  If ExitStatus=-1 then
+    Result:=Kill(FHandle,SIGTERM)=0;
+end;
+
+{
+  $Log$
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/17 13:47:43  marco
+   * Copy of fcl/linux dir with adapted makefiles to ease FreeBSD 1.0.2
+  packaging
+
+  Revision 1.1  2000/07/13 06:33:44  michael
+  + Initial import
+
+  Revision 1.5  2000/02/15 22:03:38  sg
+  * Inserted wrong copyright notice ;)  Fixed.
+
+  Revision 1.4  2000/02/15 21:57:51  sg
+  * Added copyright notice and CVS log tags where necessary
+
+}

+ 321 - 0
fcl/freebsd/thread.inc

@@ -0,0 +1,321 @@
+{
+    $Id$
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1999-2000 by Peter Vreman
+
+    Linux TThread implementation
+
+    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
+  PThreadRec=^TThreadRec;
+  TThreadRec=record
+    thread : TThread;
+    next   : PThreadRec;
+  end;
+
+var
+  ThreadRoot : PThreadRec;
+  ThreadsInited : boolean;
+//  MainThreadID: longint;
+
+Const
+  ThreadCount: longint = 0;
+
+function ThreadSelf:TThread;
+var
+  hp : PThreadRec;
+  sp : longint;
+begin
+  sp:=SPtr;
+  hp:=ThreadRoot;
+  while assigned(hp) do
+   begin
+     if (sp<=hp^.Thread.FStackPointer) and
+        (sp>(hp^.Thread.FStackPointer-hp^.Thread.FStackSize)) then
+      begin
+        Result:=hp^.Thread;
+        exit;
+      end;
+     hp:=hp^.next;
+   end;
+  Result:=nil;
+end;
+
+
+//function SIGCHLDHandler(Sig: longint): longint; cdecl;//this is std linux C declaration as function
+procedure SIGCHLDHandler(Sig: longint); cdecl;
+begin
+  waitpid(-1, nil, WNOHANG);
+end;
+
+procedure InitThreads;
+var
+  Act, OldAct: PSigActionRec;
+begin
+  ThreadRoot:=nil;
+  ThreadsInited:=true;
+
+
+// This will install SIGCHLD signal handler
+// signal() installs "one-shot" handler,
+// so it is better to install and set up handler with sigaction()
+
+  GetMem(Act, SizeOf(SigActionRec));
+  GetMem(OldAct, SizeOf(SigActionRec));
+
+  Act^.handler.sh := @SIGCHLDHandler;
+  Act^.sa_flags := SA_NOCLDSTOP {or SA_NOMASK or SA_RESTART};
+  Act^.sa_mask := 0; //Do not block all signals ??. Don't need if SA_NOMASK in flags
+
+  SigAction(SIGCHLD, Act, OldAct);
+
+  FreeMem(Act, SizeOf(SigActionRec));
+  FreeMem(OldAct, SizeOf(SigActionRec));
+end;
+
+
+procedure DoneThreads;
+var
+  hp : PThreadRec;
+begin
+  while assigned(ThreadRoot) do
+   begin
+     ThreadRoot^.Thread.Destroy;
+     hp:=ThreadRoot;
+     ThreadRoot:=ThreadRoot^.Next;
+     dispose(hp);
+   end;
+  ThreadsInited:=false;
+end;
+
+
+procedure AddThread(t:TThread);
+var
+  hp : PThreadRec;
+begin
+  { Need to initialize threads ? }
+  if not ThreadsInited then
+   InitThreads;
+
+  { Put thread in the linked list }
+  new(hp);
+  hp^.Thread:=t;
+  hp^.next:=ThreadRoot;
+  ThreadRoot:=hp;
+
+  inc(ThreadCount, 1);
+end;
+
+
+procedure RemoveThread(t:TThread);
+var
+  lasthp,hp : PThreadRec;
+begin
+  hp:=ThreadRoot;
+  lasthp:=nil;
+  while assigned(hp) do
+   begin
+     if hp^.Thread=t then
+      begin
+        if assigned(lasthp) then
+         lasthp^.next:=hp^.next
+        else
+         ThreadRoot:=hp^.next;
+        dispose(hp);
+        exit;
+      end;
+     lasthp:=hp;
+     hp:=hp^.next;
+   end;
+
+  Dec(ThreadCount, 1);
+  if ThreadCount = 0 then DoneThreads;
+end;
+
+
+{ TThread }
+function ThreadProc(args:pointer): Integer;cdecl;
+var
+  FreeThread: Boolean;
+  Thread : TThread absolute args;
+begin
+  Thread.Execute;
+  FreeThread := Thread.FFreeOnTerminate;
+  Result := Thread.FReturnValue;
+  Thread.FFinished := True;
+  Thread.DoTerminate;
+  if FreeThread then
+    Thread.Free;
+  ExitProcess(Result);
+end;
+
+
+constructor TThread.Create(CreateSuspended: Boolean);
+var
+  Flags: Integer;
+begin
+  inherited Create;
+  AddThread(self);
+  FSuspended := CreateSuspended;
+  Flags := CLONE_VM + CLONE_FS + CLONE_FILES + CLONE_SIGHAND + SIGCHLD;
+  { Setup 16k of stack }
+  FStackSize:=16384;
+  Getmem(pointer(FStackPointer),FStackSize);
+  inc(FStackPointer,FStackSize);
+  FCallExitProcess:=false;
+  { Clone }
+  FHandle:= Clone(@ThreadProc,pointer(FStackPointer),Flags,self);
+  if FSuspended then Suspend;
+  FThreadID := FHandle;
+end;
+
+
+destructor TThread.Destroy;
+begin
+  if not FFinished and not Suspended then
+   begin
+     Terminate;
+     WaitFor;
+   end;
+  if FHandle <> -1 then
+    Kill(FHandle, SIGKILL);
+  dec(FStackPointer,FStackSize);
+  Freemem(pointer(FStackPointer),FStackSize);
+  inherited Destroy;
+  RemoveThread(self);
+end;
+
+
+procedure TThread.CallOnTerminate;
+begin
+  FOnTerminate(Self);
+end;
+
+procedure TThread.DoTerminate;
+begin
+  if Assigned(FOnTerminate) then
+    Synchronize(@CallOnTerminate);
+end;
+
+
+const
+{ I Don't know idle or timecritical, value is also 20, so the largest other
+  possibility is 19 (PFV) }
+  Priorities: array [TThreadPriority] of Integer =
+   (-20,-19,-10,9,10,19,20);
+
+function TThread.GetPriority: TThreadPriority;
+var
+  P: Integer;
+  I: TThreadPriority;
+begin
+  P := Linux.GetPriority(Prio_Process,FHandle);
+  Result := tpNormal;
+  for I := Low(TThreadPriority) to High(TThreadPriority) do
+    if Priorities[I] = P then
+      Result := I;
+end;
+
+
+procedure TThread.SetPriority(Value: TThreadPriority);
+begin
+  Linux.SetPriority(Prio_Process,FHandle, Priorities[Value]);
+end;
+
+
+procedure TThread.Synchronize(Method: TThreadMethod);
+begin
+  FSynchronizeException := nil;
+  FMethod := Method;
+{  SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self)); }
+  if Assigned(FSynchronizeException) then
+    raise FSynchronizeException;
+end;
+
+
+procedure TThread.SetSuspended(Value: Boolean);
+begin
+  if Value <> FSuspended then
+    if Value then
+      Suspend
+    else
+      Resume;
+end;
+
+
+procedure TThread.Suspend;
+begin
+  Kill(FHandle, SIGSTOP);
+  FSuspended := true;
+end;
+
+
+procedure TThread.Resume;
+begin
+  Kill(FHandle, SIGCONT);
+  FSuspended := False;
+end;
+
+
+procedure TThread.Terminate;
+begin
+  FTerminated := True;
+end;
+
+function TThread.WaitFor: Integer;
+var
+  status : longint;
+begin
+  if FThreadID = MainThreadID then
+   WaitPid(0,@status,0)
+  else
+   WaitPid(FHandle,@status,0);
+  Result:=status;
+end;
+
+{
+  $Log$
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/17 13:47:43  marco
+   * Copy of fcl/linux dir with adapted makefiles to ease FreeBSD 1.0.2
+  packaging
+
+  Revision 1.1  2000/07/13 06:33:44  michael
+  + Initial import
+
+  Revision 1.9  2000/05/17 18:31:18  peter
+    * fixed for new sigactionrec
+
+  Revision 1.8  2000/01/07 01:24:34  peter
+    * updated copyright to 2000
+
+  Revision 1.7  2000/01/06 01:20:33  peter
+    * moved out of packages/ back to topdir
+
+  Revision 1.1  2000/01/03 19:33:09  peter
+    * moved to packages dir
+
+  Revision 1.5  1999/10/27 10:40:30  peter
+    * fixed threadproc decl
+
+  Revision 1.4  1999/08/28 09:32:26  peter
+    * readded header/log
+
+  Revision 1.2  1999/05/31 12:47:59  peter
+    * classes unit to unitobjects
+
+  Revision 1.1  1999/05/30 10:46:42  peter
+    * start of tthread for linux,win32
+
+}

+ 6 - 6
fcl/go32v2/Makefile

@@ -1,5 +1,5 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/10/01]
+# Makefile generated by fpcmake v1.00 [2000/10/27]
 #
 
 defaultrule: all
@@ -194,7 +194,7 @@ endif
 
 override DIROBJECTS+=$(wildcard ../xml ../shedit)
 override UNITOBJECTS+=classes $(INCUNITS)
-override RSTOBJECTS+=ssockets cachecls
+override RSTOBJECTS+=classes ssockets cachecls
 
 # Clean
 
@@ -279,7 +279,7 @@ endif
 # To install files
 ifndef INSTALL
 ifdef inUnix
-INSTALL:=install -m 644
+INSTALL:=install -c -m 644
 else
 INSTALL:=$(COPY)
 endif
@@ -288,7 +288,7 @@ endif
 # To install programs
 ifndef INSTALLEXE
 ifdef inUnix
-INSTALLEXE:=install -m 755
+INSTALLEXE:=install -c -m 755
 else
 INSTALLEXE:=$(COPY)
 endif
@@ -407,10 +407,10 @@ endif
 export TARPROG
 
 ifeq ($(USETAR),bz2)
-TAROPT=vI
+TAROPT=vIf
 TAREXT=.tar.bz2
 else
-TAROPT=vz
+TAROPT=vzf
 TAREXT=.tar.gz
 endif
 

+ 1 - 1
fcl/go32v2/Makefile.fpc

@@ -5,7 +5,7 @@
 [targets]
 dirs=../xml ../shedit
 units=classes $(INCUNITS)
-rst=ssockets cachecls
+rst=classes ssockets cachecls
 
 [defaults]
 defaulttarget=go32v2

+ 11 - 8
fcl/linux/Makefile

@@ -1,5 +1,5 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/10/01]
+# Makefile generated by fpcmake v1.00 [2000/10/27]
 #
 
 defaultrule: all
@@ -116,10 +116,13 @@ export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
 #####################################################################
 
 # Include files
+
 INC=../inc
+UNIXINC=../unix
 
 # INCUNITS is defined in makefile.inc
 # They are default units for all platforms.
+
 include $(INC)/Makefile.inc
 #####################################################################
 # FPCDIR Setting
@@ -194,7 +197,7 @@ endif
 
 override DIROBJECTS+=$(wildcard ../db ../xml ../shedit)
 override UNITOBJECTS+=classes $(INCUNITS) process asyncio ssockets http
-override RSTOBJECTS+=ssockets cachecls
+override RSTOBJECTS+=classes ssockets cachecls
 
 # Clean
 
@@ -211,8 +214,8 @@ override NEEDOPT=-S2
 
 # Directories
 
-vpath %$(PASEXT) $(INC)
-override NEEDINCDIR=$(INC)
+vpath %$(PASEXT) $(INC) $(UNIXINC)
+override NEEDINCDIR=$(INC) $(UNIXINC)
 ifndef TARGETDIR
 TARGETDIR=.
 endif
@@ -280,7 +283,7 @@ endif
 # To install files
 ifndef INSTALL
 ifdef inUnix
-INSTALL:=install -m 644
+INSTALL:=install -c -m 644
 else
 INSTALL:=$(COPY)
 endif
@@ -289,7 +292,7 @@ endif
 # To install programs
 ifndef INSTALLEXE
 ifdef inUnix
-INSTALLEXE:=install -m 755
+INSTALLEXE:=install -c -m 755
 else
 INSTALLEXE:=$(COPY)
 endif
@@ -408,10 +411,10 @@ endif
 export TARPROG
 
 ifeq ($(USETAR),bz2)
-TAROPT=vI
+TAROPT=vIf
 TAREXT=.tar.bz2
 else
-TAROPT=vz
+TAROPT=vzf
 TAREXT=.tar.gz
 endif
 

+ 6 - 5
fcl/linux/Makefile.fpc

@@ -5,7 +5,7 @@
 [targets]
 dirs=../db ../xml ../shedit
 units=classes $(INCUNITS) process asyncio ssockets http
-rst=ssockets cachecls
+rst=classes ssockets cachecls
 
 [defaults]
 defaulttarget=linux
@@ -25,18 +25,19 @@ libversion=1.0
 [dirs]
 fpcdir=../..
 targetdir=.
-incdir=$(INC)
-sourcesdir=$(INC)
-
+incdir=$(INC) $(UNIXINC)
+sourcesdir=$(INC) $(UNIXINC)
 
 [presettings]
 # Include files
+
 INC=../inc
+UNIXINC=../unix
 
 # INCUNITS is defined in makefile.inc
 # They are default units for all platforms.
-include $(INC)/Makefile.inc
 
+include $(INC)/Makefile.inc
 
 [rules]
 classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)

+ 17 - 4
fcl/linux/asyncio.inc → fcl/unix/asyncio.inc

@@ -159,7 +159,20 @@ end;
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:33:01  michael
-  + removed logs
- 
-}
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/25 12:36:24  marco
+   * Split up Freebsd/Unix/Linux for Fixes FCL
+
+  Revision 1.1  2000/07/13 06:31:32  michael
+  + Initial import
+
+  Revision 1.2  2000/07/09 11:48:24  sg
+  * Implemented methods for reading event handlers
+
+  Revision 1.1  2000/02/18 23:14:10  michael
+  + Initial implementation
+
+}

+ 14 - 4
fcl/linux/asyncioh.inc → fcl/unix/asyncioh.inc

@@ -25,7 +25,17 @@ Type
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:33:01  michael
-  + removed logs
- 
-}
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/25 12:36:24  marco
+   * Split up Freebsd/Unix/Linux for Fixes FCL
+
+  Revision 1.1  2000/07/13 06:31:32  michael
+  + Initial import
+
+  Revision 1.1  2000/02/18 23:14:10  michael
+  + Initial implementation
+
+}

+ 16 - 3
fcl/linux/ezcgi.inc → fcl/unix/ezcgi.inc

@@ -32,7 +32,20 @@ end;
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:33:01  michael
-  + removed logs
- 
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/25 12:36:24  marco
+   * Split up Freebsd/Unix/Linux for Fixes FCL
+
+  Revision 1.1  2000/07/13 06:31:32  michael
+  + Initial import
+
+  Revision 1.7  2000/02/15 22:03:38  sg
+  * Inserted wrong copyright notice ;)  Fixed.
+
+  Revision 1.6  2000/02/15 21:57:51  sg
+  * Added copyright notice and CVS log tags where necessary
+
 }

+ 13 - 3
fcl/linux/pipes.inc → fcl/unix/pipes.inc

@@ -24,7 +24,17 @@ end;
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:33:01  michael
-  + removed logs
- 
+  Revision 1.2  2000-10-26 22:30:21  peter
+    * freebsd update
+    * classes.rst
+
+  Revision 1.1.2.1  2000/10/25 12:36:24  marco
+   * Split up Freebsd/Unix/Linux for Fixes FCL
+
+  Revision 1.1  2000/07/13 06:31:32  michael
+  + Initial import
+
+  Revision 1.5  2000/02/15 21:57:51  sg
+  * Added copyright notice and CVS log tags where necessary
+
 }

+ 6 - 6
fcl/win32/Makefile

@@ -1,5 +1,5 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/10/01]
+# Makefile generated by fpcmake v1.00 [2000/10/27]
 #
 
 defaultrule: all
@@ -194,7 +194,7 @@ endif
 
 override DIROBJECTS+=$(wildcard ../xml ../shedit)
 override UNITOBJECTS+=classes $(INCUNITS) process fileinfo
-override RSTOBJECTS+=ssockets cachecls
+override RSTOBJECTS+=classes ssockets cachecls
 
 # Clean
 
@@ -279,7 +279,7 @@ endif
 # To install files
 ifndef INSTALL
 ifdef inUnix
-INSTALL:=install -m 644
+INSTALL:=install -c -m 644
 else
 INSTALL:=$(COPY)
 endif
@@ -288,7 +288,7 @@ endif
 # To install programs
 ifndef INSTALLEXE
 ifdef inUnix
-INSTALLEXE:=install -m 755
+INSTALLEXE:=install -c -m 755
 else
 INSTALLEXE:=$(COPY)
 endif
@@ -407,10 +407,10 @@ endif
 export TARPROG
 
 ifeq ($(USETAR),bz2)
-TAROPT=vI
+TAROPT=vIf
 TAREXT=.tar.bz2
 else
-TAROPT=vz
+TAROPT=vzf
 TAREXT=.tar.gz
 endif
 

+ 1 - 1
fcl/win32/Makefile.fpc

@@ -5,7 +5,7 @@
 [targets]
 dirs=../xml ../shedit
 units=classes $(INCUNITS) process fileinfo
-rst=ssockets cachecls
+rst=classes ssockets cachecls
 
 [defaults]
 defaulttarget=win32