Просмотр исходного кода

* makefile.fpc updates and defaultfpcdir var

peter 26 лет назад
Родитель
Сommit
04c3f5099b
8 измененных файлов с 676 добавлено и 1189 удалено
  1. 26 27
      base/Makefile
  2. 236 108
      base/makefile.fpc
  3. 120 252
      compiler/Makefile
  4. 29 68
      ide/text/Makefile
  5. 19 6
      install/fpinst/Makefile
  6. 69 222
      rtl/go32v2/Makefile
  7. 92 284
      rtl/linux/Makefile
  8. 85 222
      rtl/win32/Makefile

+ 26 - 27
base/Makefile

@@ -1,6 +1,6 @@
 #
 #   $Id$
-#   Copyright (c) 1998 by the Free Pascal Development Team
+#   Copyright (c) 1999 by the Free Pascal Development Team
 #
 #   Makefile for Free Pascal Source Tree
 #
@@ -116,20 +116,22 @@ compiler_sharedinstall:
 # RTL
 #######################################
 
+RTLDIR=rtl/$(OS_TARGET)
+
 rtl_all:
-	$(MAKE) -C rtl/$(OS_TARGET) all
+	$(MAKE) -C $(RTLDIR) all
 
 rtl_clean:
-	$(MAKE) -C rtl/$(OS_TARGET) clean
+	$(MAKE) -C $(RTLDIR) clean
 
 rtl_install:
-	$(MAKE) -C rtl/$(OS_TARGET) install
+	$(MAKE) -C $(RTLDIR) install
 
 rtl_staticinstall:
-	$(MAKE) -C rtl/$(OS_TARGET) staticlibinstall
+	$(MAKE) -C $(RTLDIR) staticlibinstall
 
 rtl_sharedinstall:
-	$(MAKE) -C rtl/$(OS_TARGET) sharedlibinstall
+	$(MAKE) -C $(RTLDIR) sharedlibinstall
 
 
 #######################################
@@ -255,10 +257,16 @@ staticinstall: $(addsuffix _staticinstall,$(MODULES))
 
 sharedinstall: $(addsuffix _sharedinstall,$(MODULES))
 
+
 #######################################
-# Special targets
+# Packaging targets
 #######################################
 
+ifndef ZIPTARGET
+ZIPTARGET=install
+endif
+
+export ZIPTARGET
 export PACKAGEDIR=$(BASEDIR)
 
 idezips: clean
@@ -274,29 +282,20 @@ idezips: clean
 	$(MAKE) ide_fullgdb
 	$(MAKE) -C $(IDEDIR) zipinstall ZIPNAME=ide_full
 
+fvzip: rtl_clean api_clean fv_clean
+	$(MAKE) api_all
+	$(MAKE) -C $(APIDIR) zipinstall ZIPNAME=fv-$(PACKAGESUFFIX)
+	$(MAKE) fv_all
+	$(MAKE) -C $(FVDIR) zipinstalladd ZIPNAME=fv-$(PACKAGESUFFIX)
 
-#######################################
-# Defaults
-#######################################
+compilerzip: #compiler_clean rtl_clean
+	$(MAKE) compiler_all
+	$(MAKE) -C compiler zipinstall ZIPTARGET=quickinstall ZIPNAME=compiler-$(PACKAGESUFFIX)
+	$(MAKE) -C $(RTLDIR) zipinstalladd ZIPNAME=compiler-$(PACKAGESUFFIX)
 
 #
 # $Log$
-# Revision 1.6  1999-02-22 02:17:36  peter
-#   * fixed dos linebreaks
-#
-# Revision 1.5  1999/02/19 16:46:07  peter
-#   + fpinst_ targets for the isntaller
-#
-# Revision 1.4  1999/02/19 15:33:01  peter
-#   + idezips target
-#
-# Revision 1.3	1999/02/16 00:50:12  peter
-#   + ide_all,ide_gdb,ide_full,ide_fullgdb targets
-#
-# Revision 1.2	1999/01/28 19:58:19  peter
-#   * makefile updates
-#
-# Revision 1.1	1999/01/21 11:48:39  peter
-#   * initial version
+# Revision 1.7  1999-03-09 01:35:46  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
 #

+ 236 - 108
base/makefile.fpc

@@ -1,6 +1,6 @@
 #
 #   $Id$
-#   Copyright (c) 1998 by the Free Pascal Development Team
+#   Copyright (c) 1999 by the Free Pascal Development Team
 #
 #   Common makefile for Free Pascal
 #
@@ -29,21 +29,20 @@ override RELEASEVER:=0.99.11
 # We want 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
 	@echo You need the GNU pwd,cp,mv,rm,install utils to use this makefile!
 	@echo Get ftp://tflily.fys.kuleuven.ac.be/pub/fpc/dist/gnuutils.zip
-	@echo
 	@exit
 else
 inlinux=1
 endif
 else
-PWD:=$(subst \,/,$(firstword $(PWD)))
+PWD:=$(firstword $(PWD))
 endif
 
 # Detect NT - NT sets OS to Windows_NT
@@ -60,11 +59,9 @@ endif
 
 ifndef FPCDIR
 nofpcdir:
-	@echo
 	@echo You need to set the FPCDIR environment variable to use
 	@echo this Makefile.
 	@echo Example: SET FPCDIR=/pp
-	@echo
 	@exit
 endif
 
@@ -202,6 +199,20 @@ else
 PPAS=ppas.bat
 endif
 
+# The extension of executables
+ifdef inlinux
+EXEEXT=
+else
+EXEEXT=.exe
+endif
+
+# The path which is search separated by spaces
+ifdef inlinux
+SEARCHPATH=$(subst :, ,$(PATH))
+else
+SEARCHPATH=$(subst ;, ,$(PATH))
+endif
+
 # ldconfig to rebuild .so cache
 ifdef inlinux
 LDCONFIG=ldconfig
@@ -216,44 +227,51 @@ endif
 
 # diff
 ifndef DIFF
-DIFF=diff
+DIFF=$(strip $(wildcard $(addsuffix /diff$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(DIFF),)
+DIFF=
+else
+export DIFF:=$(firstword $(DIFF))
+endif
 endif
 
-# date
+# echo
+ifndef ECHO
+ECHO=$(strip $(wildcard $(addsuffix /echo$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO=echo
+else
+export ECHO:=$(firstword $(ECHO))
+endif
+endif
+
+# gdate/date
 ifndef DATE
-# first try go32v2 specific gdate
-DATE=$(strip $(wildcard $(addsuffix /gdate.exe,$(subst ;, ,$(PATH)))))
-# try generic date.exe
-ifeq ($(DATE),)
-DATE=$(strip $(wildcard $(addsuffix /date.exe,$(subst ;, ,$(PATH)))))
-# finally try for linux
+DATE=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
-DATE=$(strip $(wildcard $(addsuffix /date,$(subst :, ,$(PATH)))))
+DATE=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
 ifeq ($(DATE),)
 DATE=
-endif
 else
-DATE:=$(subst \,/,$(firstword $(DATE)))
+export DATE:=$(firstword $(DATE))
 endif
 else
-DATE:=$(subst \,/,$(firstword $(DATE)))
+export DATE:=$(firstword $(DATE))
 endif
 endif
 
 # Sed
 ifndef SED
-SED=$(strip $(wildcard $(addsuffix /sed.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(SED),)
-SED=$(strip $(wildcard $(addsuffix /sed,$(subst :, ,$(PATH)))))
+SED=$(strip $(wildcard $(addsuffix /sed$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(SED),)
 SED=
-endif
 else
-SED:=$(subst \,/,$(firstword $(SED)))
+export SED:=$(firstword $(SED))
 endif
 endif
 
 # Look if UPX is found for go32v2 and win32
+ifndef UPX
 ifeq ($(OS_TARGET),go32v2)
 UPX=1
 endif
@@ -261,17 +279,35 @@ ifeq ($(OS_TARGET),win32)
 UPX=1
 endif
 ifdef UPX
-UPX=$(strip $(wildcard $(addsuffix /upx.exe,$(subst ;, ,$(PATH)))))
+UPX=$(strip $(wildcard $(addsuffix /upx$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(UPX),)
 UPX=
+else
+export UPX:=$(firstword $(UPX))
 endif
 else
 UPX=
 endif
+endif
 
-# Zip
-ifndef ZIP
-ZIP=zip -D9 -r
+# ZipProg, you can't use Zip as the var name (PFV)
+ifndef ZIPPROG
+ifdef inlinux
+export ZIPPROG=tar cvz --file
+else
+ZIPPROG=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG=
+else
+export ZIPPROG:=$(firstword $(ZIPPROG)) -D9 -r
+endif
+endif
+endif
+
+ifdef inlinux
+ZIPEXT=.tar.gz
+else
+ZIPEXT=.zip
 endif
 
 
@@ -281,13 +317,15 @@ endif
 
 # Base dir
 ifdef PWD
-BASEDIR=$(shell $(PWD))
+BASEDIR:=$(shell $(PWD))
+else
+BASEDIR=.
 endif
 
 # set the directory to the rtl base
 ifndef RTLDIR
 ifdef RTL
-RTLDIR=$(RTL)/$(OS_TARGET)
+RTLDIR:=$(RTL)/$(OS_TARGET)
 else
 RTLDIR:=$(FPCDIR)/rtl/$(OS_TARGET)
 endif
@@ -307,7 +345,7 @@ ifndef PREFIXINSTALLDIR
 ifdef inlinux
 PREFIXINSTALLDIR=/usr
 else
-PREFIXINSTALLDIR=$(FPCDIR)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 
@@ -343,11 +381,6 @@ BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
 endif
 endif
 
-# set the directory where to install extra files
-ifndef EXTRAINSTALLDIR
-EXTRAINSTALLDIR=$(BININSTALLDIR)
-endif
-
 # Where the .msg files will be stored
 ifndef MSGINSTALLDIR
 ifdef inlinux
@@ -508,6 +541,7 @@ override COMPILER=$(PP) $(PPOPT)
 #####################################################################
 
 # Default needed extensions (Go32v2,Linux)
+LOADEREXT=.as
 PPLEXT=.ppl
 PPUEXT=.ppu
 OEXT=.o
@@ -515,13 +549,7 @@ ASMEXT=.s
 SMARTEXT=.sl
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
-
-# Executable extension
-ifdef inlinux
-EXEEXT=
-else
-EXEEXT=.exe
-endif
+PACKAGESUFFIX=
 
 # Go32v1
 ifeq ($(OS_TARGET),go32v1)
@@ -531,6 +559,17 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
+PACKAGESUFFIX=v1
+endif
+
+# Go32v2
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=go32
+endif
+
+# Linux
+ifeq ($(OS_TARGET),linux)
+PACKAGESUFFIX=lin
 endif
 
 # Win32
@@ -541,6 +580,7 @@ ASMEXT=.sw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
+PACKAGESUFFIX=w32
 endif
 
 # OS/2
@@ -551,6 +591,7 @@ OEXT=.o2
 SMARTEXT=.so
 STATICLIBEXT=.ao
 SHAREDLIBEXT=.dll
+PACKAGESUFFIX=os2
 endif
 
 # determine libary extension.
@@ -569,7 +610,7 @@ ifeq ($(OS_TARGET),go32v1)
 LIBPREFIX=
 endif
 
-# determine with .pas extension is used
+# determine which .pas extension is used
 ifdef EXEOBJECTS
 override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
 else
@@ -582,6 +623,19 @@ else
 PASEXT=.pas
 endif
 
+# also call ppas if with command option -s
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+EXECPPAS=@$(PPAS)
+endif
+
+ifdef DATE
+DATESTR=$(shell $(DATE) +%y%m%d)
+else
+DATESTR=
+endif
+
 
 #####################################################################
 # Export commandline values, so nesting use the same values
@@ -590,7 +644,7 @@ endif
 export FPCDIR FPCMAKE
 export RELEASEVER OS_SOURCE OS_TARGET OPT OPTDEF CPU PP RELEASE VERBOSE
 export SMARTLINK LIBTYPE LIBNAME
-export BASEINSTALLDIR
+export BASEINSTALLDIR PACKAGESUFFIX
 
 
 #####################################################################
@@ -600,37 +654,48 @@ export BASEINSTALLDIR
 ifndef NODEFAULTRULES
 
 # Create Filenames
+LOADEROFILES=$(addsuffix $(OEXT),$(LOADEROBJECTS))
 EXEFILES=$(addsuffix $(EXEEXT),$(EXEOBJECTS))
 EXEOFILES=$(addsuffix $(OEXT),$(EXEOBJECTS))
 UNITFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
 UNITOFILES=$(addsuffix $(OEXT),$(UNITOBJECTS))
 
 .PHONY : all clean install \
+	 libsclean staticlibinstall sharedlibinstall libinstall \
 	 info cfginfo objectinfo installinfo filesinfo
 
-.SUFFIXES : $(EXEEXT) $(PPUEXT) $(PASEXT)
+.SUFFIXES : $(EXEEXT) $(PPUEXT) $(PASEXT) $(OEXT)
 
 
 #####################################################################
 # Default
 #####################################################################
 
+ifndef NODEFAULTALL
 ifdef DEFAULTUNITS
-all: units
+all: loaders units
 else
-all: units exes
+all: loaders units exes
+endif
 endif
 
+loaders: $(LOADEROFILES)
+
 units: $(UNITFILES)
 
 exes: $(EXEFILES)
 
 # General compile rules
 %$(PPUEXT): %$(PASEXT)
-	$(COMPILER) $<
+	$(COMPILER) $< $(REDIR)
+	$(EXECPASS)
 
 %$(EXEEXT): %$(PASEXT)
-	$(COMPILER) $<
+	$(COMPILER) $< $(REDIR)
+	$(EXECPASS)
+
+%$(OEXT): %$(LOADEREXT)
+	$(AS) -o $*$(OEXT) $<
 
 
 #####################################################################
@@ -647,19 +712,15 @@ ifdef inlinux
 	$(MAKE) libsclean
 	$(MAKE) all LIBTYPE=shared
 else
-	@echo Shared Libraries not supported
+	@$(ECHO) Shared Libraries not supported
 endif
 
 
-libsclean : clean
-	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-
-
 #####################################################################
 # Install rules
 #####################################################################
 
-install : all
+standardinstall : all
 ifndef DEFAULTUNITS
 ifdef EXEOBJECTS
 	$(MKDIR) $(BININSTALLDIR)
@@ -670,6 +731,10 @@ endif
 	$(INSTALLEXE) $(EXEFILES) $(BININSTALLDIR)
 endif
 endif
+ifdef LOADEROBJECTS
+	$(MKDIR) $(UNITINSTALLDIR)
+	$(INSTALL) $(LOADEROFILES) $(UNITINSTALLDIR)
+endif
 ifdef UNITOBJECTS
 	$(MKDIR) $(UNITINSTALLDIR)
 	$(INSTALL) $(UNITFILES) $(UNITINSTALLDIR)
@@ -679,10 +744,19 @@ else
 	-$(INSTALL) $(UNITOFILES) $(UNITINSTALLDIR)
 endif
 endif
-ifdef INSTALLEXTRA
-	$(INSTALL) $(INSTALLEXTRA) $(EXTRAINSTALLDIR)
+
+ifndef NODEFAULTINSTALL
+install: standardinstall $(EXTRAINSTALL)
 endif
 
+# Target for the sharedlib install which is not avail for all targets
+SHAREDINSTALL=sharedlibinstall
+ifeq ($(OS_TARGET),go32v1)
+SHAREDINSTALL=
+endif
+ifeq ($(OS_TARGET),go32v2)
+SHAREDINSTALL=
+endif
 
 staticlibinstall: staticlib
 	$(MKDIR) $(STATIC_UNITINSTALLDIR)
@@ -698,7 +772,7 @@ sharedlibinstall: sharedlib
 	$(INSTALLEXE) *$(SHAREDLIBEXT) $(SHARED_LIBINSTALLDIR)
 
 
-libinstall: staticlibinstall sharedlibinstall
+libinstall: staticlibinstall $(SHAREDINSTALL)
 
 
 #####################################################################
@@ -715,22 +789,44 @@ ifndef PACKAGEDIR
 PACKAGEDIR=$(BASEDIR)
 endif
 
-zipinstall:
-# Some checks first
+# Add .zip/.tar.gz extension
+ifdef ZIPNAME
+override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
+endif
+
+# Default target which is call before zipping
+ifndef ZIPTARGET
+ZIPTARGET=install
+endif
+
+# Note: This will not remove the zipfile first
+zipinstalladd:
 ifndef ZIPNAME
-	@echo Please specify ZIPNAME!
+	@$(ECHO) Please specify ZIPNAME!
 	@exit
-endif
-	make install BASEINSTALLDIR=$(PACKDIR)
+else
+	$(MAKE) $(ZIPTARGET) BASEINSTALLDIR=$(PACKDIR)
 	cd $(PACKDIR)
-	$(ZIP) $(PACKAGEDIR)/$(ZIPNAME) *
+	$(ZIPPROG) $(PACKAGEDIR)/$(ZIPNAME) *
 	cd $(BASEDIR)
 	$(DELTREE) $(PACKDIR)
+endif
+
+# This will remove the zipfile
+zipinstalldel:
+ifdef ZIPNAME
+	$(DEL) $(PACKAGEDIR)/$(ZIPNAME)
+endif
+
+# First remove the zip and then install
+zipinstall: zipinstalldel zipinstalladd
+
 
 #####################################################################
 # Clean rules
 #####################################################################
 
+ifndef NODEFAULTCLEAN
 clean:
 	-$(DEL) $(UNITOFILES) $(UNITFILES) $(PPAS) link.res log
 ifeq ($(SMARTLINK),YES)
@@ -739,10 +835,17 @@ endif
 ifdef EXEOBJECTS
 	-$(DEL) $(EXEFILES) $(EXEOFILES)
 endif
+ifdef LOADEROBJECTS
+	-$(DEL) $(LOADEROFILES)
+endif
 ifdef EXTRACLEAN
 	-$(DEL) $(EXTRACLEAN)
 endif
 
+libsclean : clean
+	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+endif
+
 
 #####################################################################
 # Depend rules
@@ -756,52 +859,70 @@ depend:
 # Info rules
 #####################################################################
 
-info: cfginfo objectinfo installinfo
+info: cfginfo objectinfo toolsinfo installinfo
 
 cfginfo:
-	@echo
-	@echo  == Configuration info ==
-	@echo
-	@echo  FPCDir.... $(FPCDIR)
-	@echo  FPCMake... $(FPCMAKE)
-	@echo
-	@echo  Target.... $(OS_TARGET)
-	@echo  Source.... $(OS_SOURCE)
-	@echo  Target.... $(OS_TARGET)
-	@echo  Basedir... $(BASEDIR)
-	@echo  Pwd....... $(PWD)
+	@$(ECHO)
+	@$(ECHO)  == Configuration info ==
+	@$(ECHO)
+	@$(ECHO)  FPCDir.... $(FPCDIR)
+	@$(ECHO)  FPCMake... $(FPCMAKE)
+	@$(ECHO)
+	@$(ECHO)  Source.... $(OS_SOURCE)
+	@$(ECHO)  Target.... $(OS_TARGET)
+	@$(ECHO)  Basedir... $(BASEDIR)
+	@$(ECHO)
+
+toolsinfo:
+	@$(ECHO)
+	@$(ECHO)  == Tools info ==
+	@$(ECHO)
+	@$(ECHO)  Pwd....... $(PWD)
+	@$(ECHO)  Echo...... $(ECHO)
 ifdef SED
-	@echo  Sed....... $(SED)
+	@$(ECHO)  Sed....... $(SED)
+endif
+ifdef DATE
+	@$(ECHO)  Date...... $(DATE)
+endif
+ifdef DIFF
+	@$(ECHO)  Diff...... $(DIFF)
 endif
 ifdef UPX
-	@echo  Upx....... $(UPX)
+	@$(ECHO)  Upx....... $(UPX)
 endif
-	@echo
+ifdef UPX
+	@$(ECHO)  Zip....... $(ZIPPROG)
+endif
+	@$(ECHO)
 
 objectinfo:
-	@echo
-	@echo  == Object info ==
-	@echo
-	@echo  UnitObjects... $(UNITOBJECTS)
-	@echo  ExeObjects.... $(EXEOBJECTS)
-	@echo
+	@$(ECHO)
+	@$(ECHO)  == Object info ==
+	@$(ECHO)
+	@$(ECHO)  LoaderObjects. $(LOADEROBJECTS)
+	@$(ECHO)  UnitObjects... $(UNITOBJECTS)
+	@$(ECHO)  ExeObjects.... $(EXEOBJECTS)
+	@$(ECHO)
 
 installinfo:
-	@echo
-	@echo  == Install info ==
-	@echo
-	@echo  BaseInstallDir....... $(BASEINSTALLDIR)
-	@echo  BinInstallDir........ $(BININSTALLDIR)
-	@echo  UnitInstallDir....... $(UNITINSTALLDIR)
-	@echo  StaticUnitInstallDir. $(STATIC_UNITINSTALLDIR)
-	@echo  SharedUnitInstallDir. $(SHARED_UNITINSTALLDIR)
-	@echo  LibInstallDir........ $(LIBINSTALLDIR)
-	@echo  StaticLibInstallDir.. $(STATIC_LIBINSTALLDIR)
-	@echo  SharedLibInstallDir.. $(SHARED_LIBINSTALLDIR)
-	@echo  MsgInstallDir........ $(MSGINSTALLDIR)
-	@echo  DocInstallDir........ $(DOCINSTALLDIR)
-	@echo  ExtraInstallDir...... $(EXTRAINSTALLDIR)
-	@echo
+	@$(ECHO)
+	@$(ECHO)  == Install info ==
+	@$(ECHO)
+	@$(ECHO)  DateStr.............. $(DATESTR)
+	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
+	@$(ECHO)
+	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
+	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
+	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
+	@$(ECHO)  StaticUnitInstallDir. $(STATIC_UNITINSTALLDIR)
+	@$(ECHO)  SharedUnitInstallDir. $(SHARED_UNITINSTALLDIR)
+	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
+	@$(ECHO)  StaticLibInstallDir.. $(STATIC_LIBINSTALLDIR)
+	@$(ECHO)  SharedLibInstallDir.. $(SHARED_LIBINSTALLDIR)
+	@$(ECHO)  MsgInstallDir........ $(MSGINSTALLDIR)
+	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
+	@$(ECHO)
 
 # try to get the files in the currentdir
 PASFILES:=$(wildcard *.pas)
@@ -811,23 +932,30 @@ MSGFILES:=$(wildcard *.msg)
 ASFILES:=$(wildcard *.as)
 
 filesinfo:
-	@echo
-	@echo  == Files info ==
-	@echo
+	@$(ECHO)
+	@$(ECHO)  == Files info ==
+	@$(ECHO)
 ifdef PASFILES
-	@echo  Pas files are $(PASFILES)
+	@$(ECHO)  Pas files are $(PASFILES)
 endif
 ifdef PPFILES
-	@echo  PP  files are $(PPFILES)
+	@$(ECHO)  PP  files are $(PPFILES)
 endif
 ifdef INCFILES
-	@echo  Inc files are $(INCFILES)
+	@$(ECHO)  Inc files are $(INCFILES)
 endif
 ifdef MSGFILES
-	@echo  Msg files are $(MSGFILES)
+	@$(ECHO)  Msg files are $(MSGFILES)
 endif
 ifdef ASFILES
-	@echo  As  files are $(ASFILES)
+	@$(ECHO)  As  files are $(ASFILES)
 endif
 
 endif #NODEFAULTRULES
+
+#
+# $Log$
+# Revision 1.8  1999-03-09 01:35:47  peter
+#   * makefile.fpc updates and defaultfpcdir var
+#
+#

+ 120 - 252
compiler/Makefile

@@ -1,7 +1,7 @@
 #
 #   $Id$
 #   This file is part of the Free Pascal run time library.
-#   Copyright (c) 1993-98 by the Free Pascal Development Team
+#   Copyright (c) 1993-99 by the Free Pascal Development Team
 #
 #   Makefile for the Free Pascal Compiler
 #
@@ -21,10 +21,6 @@ ifndef LANGUAGE
 LANGUAGE=e
 endif
 
-ifndef CPU
-CPU=i386
-endif
-
 # Local defines for the compiler only
 ifndef LOCALDEF
 LOCALDEF=
@@ -40,39 +36,88 @@ ifndef RTLOPTS
 RTLOPTS=
 endif
 
-# Path to libgcc.a
-ifndef GCCLIBPATH
-GCCLIBPATH=/usr/lib/gcc-lib/i486-linux/2.7.2.3
-endif
-
 
 #####################################################################
 # Defaults
 #####################################################################
 
-# Where is the makefile.cfg ?
-CFG=../rtl/cfg
+# Default place of the makefile.fpc
+DEFAULTFPCDIR=..
+
+# RTL
+RTL=../rtl
 
 # At least set -Sg
 override LOCALOPT+=-Sg
 
-# set correct defines (-d$(CPU) is automaticly added in makefile.cfg)
-override LOCALDEF+=-dGDB -dFPC
+# set correct defines (-d$(CPU) is automaticly added in makefile.fpc)
+override LOCALDEF+=-dGDB
 
 override LOCALOPT+=$(LOCALDEF)
 
 
+#####################################################################
+# Override default makefile settings
+#####################################################################
+
+NODEFAULTALL=1
+NODEFAULTCLEAN=1
+
+# Change the default target to our local all target
+first: all
+
+EXTRAINSTALL=myinstall
+
+
 #####################################################################
 # Include default makefile
 #####################################################################
 
-include $(CFG)/makefile.cfg
+# test if FPCMAKE is still valid
+ifdef FPCMAKE
+ifeq ($(strip $(wildcard $(FPCMAKE))),)
+FPCDIR=
+FPCMAKE=
+endif
+endif
+
+ifndef FPCDIR
+ifdef DEFAULTFPCDIR
+FPCDIR=$(DEFAULTFPCDIR)
+endif
+endif
+
+ifndef FPCMAKE
+ifdef FPCDIR
+FPCMAKE=$(FPCDIR)/makefile.fpc
+else
+FPCMAKE=makefile.fpc
+endif
+endif
+
+override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
+ifeq ($(FPCMAKE),)
+nofpcmake:
+	@echo makefile.fpc not found!
+	@echo Check the FPCMAKE and FPCDIR environment variables.
+	@exit
+else
+include $(FPCMAKE)
+endif
+
+
+#####################################################################
+# Setup Defs/Opts which depend on the makefile.fpc
+#####################################################################
 
 # for i386 also insert MMX support
 ifneq ($(findstring -di386,$(COMPILER)),)
-override LOCALDEF+=-dSUPPORT_MMX
+override COMPILER+=-dSUPPORT_MMX
 endif
 
+override COMPILER+=$(LOCALOPT)
+
+
 # include OPT also for the RTL (also needed to pass the RELEASE options
 # to the RTL !!)
 override RTLOPTS+=$(OPT)
@@ -82,17 +127,14 @@ override RTLOPTS+=$(OPT)
 # Setup Targets
 #####################################################################
 
-
 MSGFILE=error$(LANGUAGE).msg
 
-DIFFEXIST:=$(shell $(DIFF) --help)
-
-ifeq ($(OS_TARGET),win32) 
+ifeq ($(OS_TARGET),win32)
 override DIFF=cmp -i138
 endif
 
 # Used to avoid unnecessary steps in remake3
-ifdef DIFFEXIST
+ifdef DIFF
 ifdef OLDPP
 DIFFRESULT:=$(shell $(DIFF) $(OLDPP) $(PP))
 else
@@ -122,45 +164,26 @@ MSG2INC=msg2inc$(EXEEXT)
 # Default makefile
 #####################################################################
 
-.SUFFIXES: .pas $(EXEEXT) .ppu .dif .d3p .d3i .d3m .new
-
-.PHONY : all clean info \
-	 cycle remake remake3 \
-	 install next \
-	 diff diff3 patch replacediff3 restorediff3 \
-	 test rtl rtlclean \
-
-# also call ppas if with command option -s
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-EXECPPAS=@$(PPAS)
-endif
-
-.pas$(PPUEXT):
-	$(COMPILER) $(LOCALOPT) $<
-	$(EXECPPAS)
-
-.pas$(EXEEXT):
-	$(COMPILER) $(LOCALOPT) $<
-	$(EXECPPAS)
-
-
-all : $(EXENAME)
-#	@echo Start $(STARTTIME) now $(ENDTIME)
-# does not work because $(ENDTIME) is expanded
-# before execution !!
-	make echotime
+all: $(EXENAME)
+	$(MAKE) echotime
 
 ifeq ($(MAKELEVEL),0)
 ifndef STARTTIME
+ifdef DATE
 STARTTIME:=$(shell $(DATE) +%T)
+else
+STARTTIME:=unknown
+endif
 endif
 endif
 
 export STARTTIME
 
+ifdef DATE
 ENDTIME=$(shell $(DATE) +%T)
+else
+ENDTIME:=unknown
+endif
 
 echotime:
 	@echo Start $(STARTTIME) now $(ENDTIME)
@@ -171,14 +194,13 @@ next :
 	$(COPY) $(PP) $(EXENAME)
 else
 next :
-	make execlean
-	make -C $(UNITDIR) libsclean
-	make -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(PP)' 'OPT=$(RTLOPTS)' all
-	make clean
-	make all
+	$(MAKE) execlean
+	$(MAKE) -C $(RTLDIR) libsclean
+	$(MAKE) -C $(RTLDIR) 'PP=$(BASEDIR)/$(PP)' 'OPT=$(RTLOPTS)' all
+	$(MAKE) clean
+	$(MAKE) all
 endif
 
-
 clean :
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(ASMEXT) *$(STATICLIBEXT) $(EXENAME)
 	-$(DELTREE) $(SMARTEXT)
@@ -194,9 +216,9 @@ distclean: clean
 # Include depencies
 #####################################################################
 
-$(MAKEDEP): $(RTLDIR)/utils/mkdep.pp
-	$(COMPILER) $(RTLDIR)/utils/mkdep.pp
-	$(COPY) $(RTLDIR)/utils/$(MAKEDEP) $(MAKEDEP)
+$(MAKEDEP): $(RTL)/utils/mkdep.pp
+	$(COMPILER) $(RTL)/utils/mkdep.pp
+	$(COPY) $(RTL)/utils/$(MAKEDEP) $(MAKEDEP)
 
 dependencies : $(MAKEDEP)
 	$(MAKEDEP) pp.pas $(PPOPTDEF) $(LOCALDEF) '-F$$(COMPILER) $$(LOCALOPT)' > depend
@@ -212,36 +234,30 @@ endif
 # Make targets
 #####################################################################
 
-$(MSG2INC): $(RTLDIR)/utils/msg2inc.pp
-	$(COMPILER) $(RTLDIR)/utils/msg2inc.pp
-	$(COPY) $(RTLDIR)/utils/$(MSG2INC) $(MSG2INC)
+$(MSG2INC): $(RTL)/utils/msg2inc.pp
+	$(COMPILER) -FE. $(RTL)/utils/msg2inc.pp
 
 msgtxt.inc: $(MSGFILE) $(MSG2INC)
-	$(RTLDIR)/utils/$(MSG2INC) $(MSGFILE) msg msg
+	$(MSG2INC) $(MSGFILE) msg msg
 
 msg: msgtxt.inc
 
 # Make only the compiler
-ifdef inlinux
-$(EXENAME) : $(PPEXENAME)
-	$(MOVE) $(PPEXENAME) $(EXENAME)
-else
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc)
 	$(COMPILER) $(LOCALOPT) pp.pas
 	$(EXECPPAS)
 	$(MOVE) $(PPEXENAME) $(EXENAME)
-endif
 
 # This target remakes the units with the currently made version
 remake: $(EXENAME)
 	$(MOVE) $(EXENAME) $(TEMPNAME)
-	make execlean
-	make -C $(UNITDIR) libsclean
-	make clean
-	make 'PP=./$(TEMPNAME)' all
+	$(MAKE) execlean
+	$(MAKE) -C $(RTLDIR) libsclean
+	$(MAKE) clean
+	$(MAKE) 'PP=$(TEMPNAME)' all
 
 remake3: $(TEMPNAME3)
-	make 'PP=./$(TEMPNAME3)' 'OLDPP=./$(TEMPNAME2)' next
+	$(MAKE) 'PP=$(TEMPNAME3)' 'OLDPP=$(TEMPNAME2)' next
 	$(DIFF) $(TEMPNAME3) $(EXENAME)
 
 $(TEMPNAME1) : $(EXENAME)
@@ -249,47 +265,56 @@ $(TEMPNAME1) : $(EXENAME)
 	$(MOVE) $(EXENAME) $(TEMPNAME1)
 
 $(TEMPNAME2) : $(TEMPNAME1)
-	make 'PP=./$(TEMPNAME1)' 'OLDPP=' next
+	$(MAKE) 'PP=$(TEMPNAME1)' 'OLDPP=' next
 	-$(DEL) $(TEMPNAME2)
 	$(MOVE) $(EXENAME) $(TEMPNAME2)
 
 $(TEMPNAME3) : $(TEMPNAME2)
-	make 'PP=./$(TEMPNAME2)' 'OLDPP=./$(TEMPNAME1)' next
+	$(MAKE) 'PP=$(TEMPNAME2)' 'OLDPP=$(TEMPNAME1)' next
 	-$(DEL) $(TEMPNAME3)
 	$(MOVE) $(EXENAME) $(TEMPNAME3)
 
 cycle:
-	make clean
-	make -C $(UNITDIR) libsclean
-	make -C $(UNITDIR) 'OPT=$(RTLOPTS)' all
-	make remake3
-	make echotime
+	$(MAKE) clean
+	$(MAKE) -C $(RTLDIR) libsclean
+	$(MAKE) -C $(RTLDIR) 'OPT=$(RTLOPTS)' all
+	$(MAKE) remake3
+	$(MAKE) echotime
 
 cycledep:
-	make cycle USEDEPEND=1
+	$(MAKE) cycle USEDEPEND=1
 
 cvstest:
-	make cycle 'LOCALOPT=-n -Se' 'RTLOPTS=-n -Se'
+	$(MAKE) cycle 'LOCALOPT=-n -Se' 'RTLOPTS=-n -Se'
+
 
 #####################################################################
 # Installation
 #####################################################################
 
-installlib:
+# This will only install the ppc386.exe, not the message files etc.
+quickinstall:
 ifdef inlinux
 	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALLEXE) ppc386 $(LIBINSTALLDIR)
-	chmod 755 makecfg
-	makecfg $(LIBINSTALLDIR)/samplecfg
+	$(INSTALLEXE) $(EXENAME) $(LIBINSTALLDIR)
 else
 	$(MKDIR) $(BININSTALLDIR)
-	$(INSTALLEXE) ppc386$(EXEEXT) $(BININSTALLDIR)
+ifdef UPX
+	-$(UPX) $(EXENAME)
+endif
+	$(INSTALLEXE) $(EXENAME) $(BININSTALLDIR)
+endif
+
+installlib: quickinstall
+ifdef inlinux
+	chmod 755 makecfg
+	makecfg $(LIBINSTALLDIR)/samplecfg
 endif
 	$(MKDIR) $(MSGINSTALLDIR)
 	$(INSTALL) errore.msg errorn.msg $(MSGINSTALLDIR)
 
 # this also installs the link /usr/bin/ppc386. The .deb does that later
-install: installlib
+myinstall: installlib
 ifdef inlinux
 	$(MKDIR) $(BININSTALLDIR)
 	ln -sf $(LIBINSTALLDIR)/ppc386 $(BININSTALLDIR)/ppc386
@@ -301,17 +326,11 @@ endif
 #####################################################################
 
 rtl :
-	make -C $(UNITDIR) all
+	$(MAKE) -C $(RTLDIR) all
 
 rtlclean :
-	make -C $(UNITDIR) libsclean
-
-ansirtl:
-	make -C $(UNITDIR) libsclean
-	make -C $(UNITDIR) PP=$(COMPILERDIR)/ppc386 OPT='-g -dUSeAnsiStrings' all
+	$(MAKE) -C $(RTLDIR) libsclean
 
-test:
-	@echo time is $(STARTTIME) date.exe is $(DATE)
 
 #####################################################################
 # local user configurable file
@@ -326,171 +345,20 @@ endif
 
 
 #####################################################################
-# Default targets
+# M68k test targets
 #####################################################################
 
-include $(CFG)/makefile.def
-
 # just a quick way to get ppc68k
 # needs to be after makefile.def for PASFILES INCFILES
 
 $(M68KEXENAME): $(PASFILES) $(INCFILES)
-	make clean
+	$(MAKE) clean
 	$(PP) -uI386 -uSUPPORT_MMX -dm68k -o$(M68KEXENAME) pp
-	make clean
+	$(MAKE) clean
 
 #
 # $Log$
-# Revision 1.17  1998-12-21 13:13:08  peter
-#   * makecfg updated
-#
-# Revision 1.16  1998/11/16 15:30:19  pierre
-#  + shorter cycle for win32 with cygnus b20
-#
-# Revision 1.15  1998/11/13 15:40:12  pierre
-#   + added -Se in Makefile cvstest target
-#   + lexlevel cleanup
-#     normal_function_level main_program_level and unit_init_level defined
-#   * tins_cache grown to A_EMMS (gave range check error in asm readers)
-#     (test added in code !)
-#   * -Un option was wrong
-#   * _FAIL and _SELF only keyword inside
-#     constructors and methods respectively
-#
-# Revision 1.14  1998/11/10 17:56:48  peter
-#   * fixes to build correct again
-#
-# Revision 1.13  1998/10/22 23:55:24  peter
-#   * dependencies,mkdep target is not linux only
-#
-# Revision 1.12  1998/10/22 19:15:46  peter
-#   + VERBOSE=1 to set -vwni (necessary due the -n)
-#   * fixed OPT, now also passed to RTLOPTS
-#
-# Revision 1.11  1998/10/12 12:20:37  pierre
-#   + added tai_const_symbol_offset
-#     for r : pointer = @var.field;
-#   * better message for different arg names on implementation
-#     of function
-#
-# Revision 1.10  1998/10/09 12:59:07  pierre
-#   * MMX_SUPPORT used by default
-#
-# Revision 1.9	1998/10/09 11:07:44  peter
-#   + cycledep
-#
-# Revision 1.8	1998/10/09 08:54:18  pierre
-#   + added cvstest target
-#     uses -n option to avoid use of local ppc386.cfg
-#
-# Revision 1.7	1998/09/29 18:34:45  peter
-#   + chmod 755 makecfg
-#
-# Revision 1.6	1998/09/23 15:41:42  pierre
-#  export for RTLOPTS (useful for make) !!
-#
-# Revision 1.5	1998/09/22 13:09:24  pierre
-#   + added possibility to read makefile.loc if it exists
-#     this allows simple addition of private rules
-#   * restored EXENAME dependencies
-#     PASFILES and INCFILES where not defined anymore !!
-#
-# Revision 1.4	1998/09/16 16:41:38  peter
-#   * merged fixes
-#
-# Revision 1.1.2.2  1998/09/16 16:12:43  peter
-#   * uses makefile.cfg
-#
-# Revision 1.3	1998/09/11 13:12:45  michael
-# + makecfg has support for different kinds of units
-#
-# Revision 1.2	1998/09/11 12:27:04  pierre
-#  added execlean target to be able to keep *.s files
-#
-# Revision 1.1.2.1  1998/09/11 12:07:51  pierre
-#   + added execlean to be able to keep last *.s files
-#
-# Revision 1.1	1998/09/10 13:53:54  peter
-#   * msg2inc compile works
-#
-# Revision 1.31  1998/09/09 18:26:25  michael
-# Spaces to tabs...
-#
-# Revision 1.30  1998/09/09 18:17:15  florian
-#   * version number changed to 0.99.8
-#
-# Revision 1.29  1998/09/02 08:51:30  pierre
-#   + added -s support must be defined as LOCALOPT
-#     because it does not work for rtl building
-#   + added some compilation time info
-#
-# Revision 1.28  1998/08/29 13:52:30  peter
-#   + new messagefile
-#   * merged optione.msg into errore.msg
-#
-# Revision 1.27  1998/08/21 15:16:56  peter
-#   * win32 compiles a bit better, no growheap crash
-#
-# Revision 1.26  1998/08/21 14:08:46  pierre
-#   + TEST_FUNCRET now default (old code removed)
-#     works also for m68k (at least compiles)
-#
-# Revision 1.25  1998/08/18 09:24:41  pierre
-#   * small warning position bug fixed
-#   * support_mmx switches splitting was missing
-#   * rhide error and warning output corrected
-#
-# Revision 1.24  1998/08/14 09:29:53  michael
-# Updated compiler number
-#
-# Revision 1.23  1998/08/06 10:42:56  pierre
-#   + faster remake3 :
-#     stops when two executables are equal
-#
-# Revision 1.22  1998/07/23 18:17:58  michael
-# + Added ansirtl target to make an ansistrings capable rtl
-#
-# Revision 1.21  1998/07/22 21:33:32  michael
-# + COPY and Replace back to mv and cp
-#
-# Revision 1.20  1998/06/24 14:02:58  peter
-#   * new depend for the new ra units
-#
-# Revision 1.19  1998/06/23 14:00:15  peter
-#   * renamed RA* units
-#
-# Revision 1.18  1998/06/10 10:42:44  peter
-#   * ifndef TARGET to allow target on commandline
-#
-# Revision 1.17  1998/06/08 09:22:02  michael
-# fixed dependcies and rules. Make would not run any more after peters changes.
-#
-# Revision 1.16  1998/06/05 14:37:28  pierre
-#   * fixes for inline for operators
-#   * inline procedure more correctly restricted
-#
-# Revision 1.15  1998/06/03 09:33:39  michael
-# added distclean target to remove ppc1-ppc3 too
-#
-# Revision 1.14  1998/06/03 09:27:51  michael
-# Clean cannot remove ppc1-ppc3 : make cycle uses clean
-#
-# Revision 1.13  1998/06/02 11:29:36  peter
-#   + make clean removes also ppc1 - ppc3
-#
-# Revision 1.12  1998/05/31 14:09:45  peter
-#   * use mv -f instead of move /y whch is not dos6.2 compatible
-#
-# Revision 1.11  1998/05/06 14:03:27  michael
-# + Make install doesn't stop if makecfg not found
-#
-# Revision 1.10  1998/04/23 13:21:46  michael
-# Updated version number
-#
-# Revision 1.9	1998/04/15 14:16:48  michael
-# + Removed CR characters
+# Revision 1.18  1999-03-09 01:35:48  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
-# Revision 1.8	1998/04/06 12:28:23  pierre
-#   Test of makefile log !
 #
-# End of log

+ 29 - 68
ide/text/Makefile

@@ -16,11 +16,11 @@
 # Defaults
 #####################################################################
 
+# Default place of the makefile.fpc
+DEFAULTFPCDIR=../..
+
 # We always need the API and FV
 NEEDUNITDIR=../../api ../../fv
-# Adding these is not possible, because it will then find views.pas before
-# it finds views.ppu !! (PFV)
-# ../../fv/base ../../fv/app ../../fv/dialogs
 
 # when making a full version include the compiler
 ifeq ($(FULL),1)
@@ -43,8 +43,7 @@ else
 override NEEDUNITDIR+=../fake/gdb
 endif
 
-
-INSTALLEXTRA=$(wildcard *.pt) $(wildcard *.tdf)
+EXTRAINSTALL=myinstall
 
 
 #####################################################################
@@ -59,6 +58,20 @@ EXEOBJECTS=fp
 # Include default makefile
 #####################################################################
 
+# test if FPCMAKE is still valid
+ifdef FPCMAKE
+ifeq ($(strip $(wildcard $(FPCMAKE))),)
+FPCDIR=
+FPCMAKE=
+endif
+endif
+
+ifndef FPCDIR
+ifdef DEFAULTFPCDIR
+FPCDIR=$(DEFAULTFPCDIR)
+endif
+endif
+
 ifndef FPCMAKE
 ifdef FPCDIR
 FPCMAKE=$(FPCDIR)/makefile.fpc
@@ -70,10 +83,8 @@ endif
 override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
 ifeq ($(FPCMAKE),)
 nofpcmake:
-	@echo
 	@echo makefile.fpc not found!
 	@echo Check the FPCMAKE and FPCDIR environment variables.
-	@echo
 	@exit
 else
 include $(FPCMAKE)
@@ -99,71 +110,21 @@ full:
 fullgdb:
 	make all FULL=1 GDB=1
 
-clean_compiler:
-	make -C ../../compiler clean
-
 #
-# $Log$
-# Revision 1.12  1999-03-08 14:59:25  peter
-#   * installextra pt,tdf files
+# Installation
 #
-# Revision 1.11  1999/03/01 15:41:47  peter
-#   + Added dummy entries for functions not yet implemented
-#   * MenuBar didn't update itself automatically on command-set changes
-#   * Fixed Debugging/Profiling options dialog
-#   * TCodeEditor converts spaces to tabs at save only if efUseTabChars is set
-#   * efBackSpaceUnindents works correctly
-#   + 'Messages' window implemented
-#   + Added '$CAP MSG()' and '$CAP EDIT' to available tool-macros
-#   + Added TP message-filter support (for ex. you can call GREP thru
-#     GREP2MSG and view the result in the messages window - just like in TP)
-#   * A 'var' was missing from the param-list of THelpFacility.TopicSearch,
-#     so topic search didn't work...
-#   * In FPHELP.PAS there were still context-variables defined as word instead
-#     of THelpCtx
-#   * StdStatusKeys() was missing from the statusdef for help windows
-#   + Topic-title for index-table can be specified when adding a HTML-files
-#
-# Revision 1.10  1999/02/22 02:15:12  peter
-#   + default extension for save in the editor
-#   + Separate Text to Find for the grep dialog
-#   * fixed redir crash with tp7
-#
-# Revision 1.9  1999/02/16 10:43:53  peter
-#   * use -dGDB for the compiler
-#   * only use gdb_file when -dDEBUG is used
-#   * profiler switch is now a toggle instead of radiobutton
-#
-# Revision 1.8  1999/02/04 17:19:23  peter
-#   * linux fixes
-#
-# Revision 1.7  1999/02/04 13:32:00  pierre
-#   * Several things added (I cannot commit them independently !)
-#   + added TBreakpoint and TBreakpointCollection
-#   + added cmResetDebugger,cmGrep,CmToggleBreakpoint
-#   + Breakpoint list in INIFile
-#   * Select items now also depend of SwitchMode
-#   * Reading of option '-g' was not possible !
-#   + added search for -Fu args pathes in TryToOpen
-#   + added code for automatic opening of FileDialog
-#     if source not found
-#
-# Revision 1.6  1999/01/29 10:34:31  peter
-#   + needobjdir,needlibdir
-#
-# Revision 1.5  1999/01/28 19:58:23  peter
-#   * makefile updates
+myinstall:
+	$(INSTALL) $(wildcard *.pt) $(wildcard *.tdf) $(BININSTALLDIR)
+
 #
-# Revision 1.4  1999/01/22 18:10:42  pierre
-#  * added missing directories
+# Misc
 #
-# Revision 1.3  1999/01/21 11:54:09  peter
-#   + tools menu
-#   + speedsearch in symbolbrowser
-#   * working run command
+clean_compiler:
+	make -C ../../compiler clean
+
 #
-# Revision 1.2  1999/01/19 18:21:49  peter
-#   * Use FPCDIR and FPCMAKE environment to find makefile.fpc
-#   * better install dir setting
+# $Log$
+# Revision 1.13  1999-03-09 01:35:52  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
 #

+ 19 - 6
install/fpinst/Makefile

@@ -17,6 +17,9 @@
 # Defaults
 #####################################################################
 
+# Default place of the makefile.fpc
+DEFAULTFPCDIR=..
+
 NEEDUNITDIR=../api ../fv
 
 
@@ -27,11 +30,24 @@ NEEDUNITDIR=../api ../fv
 UNITOBJECTS=ziptypes unzip
 EXEOBJECTS=install
 
-
 #####################################################################
 # Include default makefile
 #####################################################################
 
+# test if FPCMAKE is still valid
+ifdef FPCMAKE
+ifeq ($(strip $(wildcard $(FPCMAKE))),)
+FPCDIR=
+FPCMAKE=
+endif
+endif
+
+ifndef FPCDIR
+ifdef DEFAULTFPCDIR
+FPCDIR=$(DEFAULTFPCDIR)
+endif
+endif
+
 ifndef FPCMAKE
 ifdef FPCDIR
 FPCMAKE=$(FPCDIR)/makefile.fpc
@@ -43,10 +59,8 @@ endif
 override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
 ifeq ($(FPCMAKE),)
 nofpcmake:
-	@echo
 	@echo makefile.fpc not found!
 	@echo Check the FPCMAKE and FPCDIR environment variables.
-	@echo
 	@exit
 else
 include $(FPCMAKE)
@@ -59,8 +73,7 @@ endif
 
 #
 # $Log$
-# Revision 1.1  1999-02-19 16:45:26  peter
-#   * moved to fpinst/ directory
-#   + makefile
+# Revision 1.2  1999-03-09 01:35:53  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
 #

+ 69 - 222
rtl/go32v2/Makefile

@@ -18,77 +18,94 @@
 # spaces, or the makefile won't work anymore after you save.
 
 #####################################################################
-# Configuration section
+# Makefile Defaults
 #####################################################################
 
-# Use smartlinking ?
-ifndef SMARTLINK
-SMARTLINK=NO
-endif
-
-# Name of library ?
-# If this is set, all units will be put in the same library.
-# If it is empty (default), the units will be left in separate files.
-ifndef LIBNAME
-LIBNAME=
-#LIBNAME=fpc
-endif
-
-# Should the library be shared or static (only if LIBNAME is set).
-# Set this to 'shared' or 'static' to create a librrary
-# Setting this to shared will disable smart linking.
-ifndef	LIBTYPE
-LIBTYPE=
-#LIBTYPE=static
-endif
-
-
-#####################################################################
-# Defaults
-#####################################################################
+# Default place of the makefile.fpc
+DEFAULTFPCDIR=../..
 
 # set target and cpu which are required
-OS_TARGET=go32v2
-CPU=i386
+override OS_TARGET=go32v2
+override CPU=i386
 
 # Where are the include files
 RTL=..
-CFG=$(RTL)/cfg
 INC=$(RTL)/inc
 PROCINC=$(RTL)/$(CPU)
-OBJPASDIR=$(RTL)/objpas
-PPI=ppi
 
 # Where to place the result files
 TARGETDIR=.
 
+# These units belong to the RTL
+UNITPREFIX=rtl
+
+
 #####################################################################
-# Include default makefile
+# Own defaults
 #####################################################################
 
-include $(CFG)/makefile.cfg
+# Paths
+OBJPASDIR=$(RTL)/objpas
+PPI=ppi
+
+# Define Go32v2 Units
+SYSTEMUNIT=system
+
+# Loaders
+LOADEROBJECTS=prt0 exceptn fpu
+
+# Unit Objects
+UNITOBJECTS=$(SYSTEMUNIT) strings go32 initc \
+	  dpmiexcp profile dxeload emu387 \
+	  dos crt objects printer \
+	  objpas sysutils math typinfo \
+	  cpu mmx getopts heaptrc \
+	  msmouse graph
 
 
 #####################################################################
-# System dependent
+# Include default makefile
 #####################################################################
 
-# Define Go32v2 Units
-SYSTEMPPU=system$(PPUEXT)
+# test if FPCMAKE is still valid
+ifdef FPCMAKE
+ifeq ($(strip $(wildcard $(FPCMAKE))),)
+FPCDIR=
+FPCMAKE=
+endif
+endif
 
-OBJECTS=strings go32 initc \
-	dpmiexcp profile dxeload emu387 \
-	dos crt objects printer \
-        objpas sysutils \
-        cpu mmx msmouse getopts heaptrc graph typinfo
+ifndef FPCDIR
+ifdef DEFAULTFPCDIR
+FPCDIR=$(DEFAULTFPCDIR)
+endif
+endif
 
-LOADERS=prt0 exceptn fpu
+ifndef FPCMAKE
+ifdef FPCDIR
+FPCMAKE=$(FPCDIR)/makefile.fpc
+else
+FPCMAKE=makefile.fpc
+endif
+endif
+
+override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
+ifeq ($(FPCMAKE),)
+nofpcmake:
+	@echo makefile.fpc not found!
+	@echo Check the FPCMAKE and FPCDIR environment variables.
+	@exit
+else
+include $(FPCMAKE)
+endif
 
 
 #####################################################################
 # Include system unit dependencies
 #####################################################################
 
+SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
+
 # Get the system independent include file names.
 # This will set the following variables :
 # SYSINCNAMES
@@ -106,44 +123,17 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
 
 #####################################################################
-# System independent Makefile
+# Dependencies
 #####################################################################
 
-# Add Prefix and Suffixes
-OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
-PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
-
-.PHONY : all install clean \
-	 libs libsclean \
-	 diffs diffclean \
-
-all : $(OBJLOADERS) $(PPUOBJECTS)
-
-install : all
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
-
-clean :
-	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) $(PPAS) link.res log
-	-$(DELTREE) *$(SMARTEXT)
-
-
-#####################################################################
-# Files
-#####################################################################
+vpath %$(PASEXT) $(INC) $(PROCINC)
 
 #
 # Loaders
 #
 
 prt0$(OEXT) : v2prt0.as
-	as -o prt0$(OEXT) v2prt0.as
-
-exceptn$(OEXT) : exceptn.as
-	as -o exceptn$(OEXT) exceptn.as
-
-fpu$(OEXT) : fpu.as
-	as -o fpu$(OEXT) fpu.as
+	$(AS) -o prt0$(OEXT) v2prt0.as
 
 #
 # Base Units (System, strings, os-dependent-base-unit)
@@ -152,13 +142,11 @@ fpu$(OEXT) : fpu.as
 $(SYSTEMPPU) : system.pp $(SYSDEPS)
 	$(COMPILER) -Us -Sg system.pp $(REDIR)
 
-strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
-                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
-                   $(SYSTEMPPU)
-	$(COMPILER) $(INC)/strings.pp $(REDIR)
+strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
+		   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
+		   $(SYSTEMPPU)
 
 go32$(PPUEXT) : go32.pp $(SYSTEMPPU)
-	$(COMPILER) go32.pp $(REDIR)
 
 #
 # Delphi Object Model
@@ -171,22 +159,17 @@ include $(OBJPASDIR)/makefile.op
 # System Dependent Units
 #
 
-# new version need -Sv switch for external variables
 dpmiexcp$(PPUEXT) : dpmiexcp.pp exceptn$(OEXT) $(SYSTEMPPU)
 	$(COMPILER) -Sg dpmiexcp.pp $(REDIR)
 
 initc$(PPUEXT) : initc.pp $(SYSTEMPPU)
-	$(COMPILER) initc.pp $(REDIR)
 
 profile$(PPUEXT) : profile.pp dpmiexcp$(PPUEXT) go32$(PPUEXT)
-	$(COMPILER) profile.pp $(REDIR)
 
 dxeload$(PPUEXT) : dxeload.pp $(SYSTEMPPU)
-	$(COMPILER) dxeload.pp $(REDIR)
 
 emu387$(PPUEXT) : emu387.pp fpu$(OEXT) strings$(PPUEXT) dxeload$(PPUEXT) \
 		  dpmiexcp$(PPUEXT)
-	$(COMPILER) emu387.pp $(REDIR)
 
 #
 # TP7 Compatible RTL Units
@@ -194,170 +177,34 @@ emu387$(PPUEXT) : emu387.pp fpu$(OEXT) strings$(PPUEXT) dxeload$(PPUEXT) \
 
 dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc \
 	       go32$(PPUEXT) strings$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) dos.pp $(REDIR)
 
 crt$(PPUEXT) : crt.pp $(INC)/textrec.inc go32$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) crt.pp $(REDIR)
 
 objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
-	$(COMPILER) $(INC)/objects.pp $(REDIR)
 
 printer$(PPUEXT) : printer.pp $(SYSTEMPPU)
-	$(COMPILER) printer.pp $(REDIR)
 
 #
 # Other RTL Units
 #
 
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMPPU)
-	$(COMPILER) $(PROCINC)/cpu.pp $(REDIR)
 
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) $(PROCINC)/mmx.pp $(REDIR)
 
 msmouse$(PPUEXT) : msmouse.pp $(SYSTEMPPU)
-	$(COMPILER) msmouse.pp $(REDIR)
 
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
-	$(COMPILER) $(INC)/getopts.pp $(REDIR)
 
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMPPU)
-	$(COMPILER) $(INC)/heaptrc.pp $(REDIR)
 
-PPIFILES:=$(wildcard $(PPI)/*.ppi)
-graph$(PPUEXT) : graph.pp go32$(PPUEXT) $(SYSTEMPPU) mmx$(PPUEXT) $(PPIFILES)
+graph$(PPUEXT) : graph.pp go32$(PPUEXT) $(SYSTEMPPU) mmx$(PPUEXT) \
+		 $(wildcard $(PPI)/*.ppi)
 	$(COMPILER) -I$(PPI) graph.pp $(REDIR)
 
-
-#####################################################################
-# Libs
-#####################################################################
-
-staticlib:
-	make libsclean
-	make all SMARTLINK=YES LIBNAME=fpc LIBTYPE=static
-
-sharedlib:
-	@echo Shared Libraries not supported for Go32v2
-
-staticlibinstall: staticlib
-	$(MKDIR) $(STATIC_LIBINSTALLDIR)
-	$(MKDIR) $(STATIC_UNITINSTALLDIR)
-	$(INSTALLEXE) *$(STATICLIBEXT) $(STATIC_LIBINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) *$(OEXT) $(STATIC_UNITINSTALLDIR)
-
-sharedlibinstall: sharedlib
-
-libinstall: staticlibinstall
-
-libsclean : clean
-	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-
-
-#####################################################################
-# Default targets
-#####################################################################
-
-include $(CFG)/makefile.def
-
 #
 # $Log$
-# Revision 1.8  1999-02-25 10:00:01  michael
-# + Fixed type in strings target
-#
-# Revision 1.7  1999/02/25 07:39:20  michael
-# * Joined strings and sysutils
-#
-# Revision 1.6  1999/02/09 17:16:58  florian
-#   + typinfo is now also in the makefile for go32v2
-#   + sysutils.filetruncate for go32v2
-#
-# Revision 1.5  1999/01/21 11:54:35  peter
-#   * renamed mouse->msmouse to resolve conflict with the api mouse unit
-#
-# Revision 1.4  1999/01/15 11:47:16  peter
-#   + added math unit to objects
-#
-# Revision 1.3  1998/12/28 23:37:39  peter
-#   * clean target fix, theres no objpas dir to clean anymore
-#
-# Revision 1.2  1998/12/21 14:20:37  pierre
-#  * initc unit added
-#
-# Revision 1.1  1998/12/21 13:07:02  peter
-#   * use -FE
-#
-# Revision 1.12  1998/11/24 23:06:40  peter
-#   * removed platform.inc
-#
-# Revision 1.11  1998/11/24 19:50:01  jonas
-#   + added warning about TABs
-#
-# Revision 1.10  1998/10/21 16:51:07  pierre
-#  * dxeload range check problem solved
-#
-# Revision 1.9	1998/10/14 07:56:02  pierre
-#  * -Sv now necessary for dpmiexcp unit
-#
-# Revision 1.8	1998/10/12 08:36:31  pierre
-#  * wrong 'objpas' target in all removed
-#
-# Revision 1.7	1998/10/11 13:45:05  michael
-# + Added disk.inc to sysutils dependencies
-#
-# Revision 1.6	1998/10/11 12:21:48  michael
-# + Further sysutils implementations.
-#
-# Revision 1.5	1998/10/06 22:10:30  peter
-#   + heaptrc
-#
-# Revision 1.4	1998/10/02 09:26:00  peter
-#   * fixed rtl path
-#
-# Revision 1.3	1998/09/16 16:47:27  peter
-#   * merged fixes
-#
-# Revision 1.1.2.2  1998/09/16 16:17:50  peter
-#   * updates to install with go32,win32
-#
-# Revision 1.2	1998/09/15 12:09:09  peter
-#   * merged updates
-#
-# Revision 1.1.2.1  1998/09/15 12:02:03  peter
-#   * updates to get objpas using its own makefile
-#
-# Revision 1.1	1998/09/10 14:13:28  peter
-#   * renamed
-#
-# Revision 1.16  1998/09/10 10:20:41  florian
-#   * fixed typo of previous commit
-#
-# Revision 1.15  1998/09/10 10:16:52  florian
-#   * make staticlib does now a make libclean instead of make clean
-#
-# Revision 1.14  1998/08/20 08:08:37  pierre
-#   * dpmiexcp did not compile with older versions
-#     due to the proc to procvar bug
-#   * makefile separator problem fixed
-#
-# Revision 1.13  1998/08/19 10:05:01  peter
-#   * fixed for go32v2 staticlib
-#
-# Revision 1.12  1998/08/05 10:31:05  pierre
-#   + added BUGFIX test to be able to compile bugfix branch
-#
-# Revision 1.11  1998/07/29 15:44:37  michael
-#  included sysutils and math.pp as target. They compile now.
-#
-# Revision 1.10  1998/07/22 21:37:03  michael
-# make cycle now works
-#
-# Revision 1.9	1998/05/22 00:39:36  peter
-#   * go32v1, go32v2 recompiles with the new objects
-#   * remake3 works again with go32v2
-#   - removed some "optimizes" from daniel which were wrong
-#
-# Revision 1.8	1998/05/06 11:53:40  peter
-#   * update
+# Revision 1.9  1999-03-09 01:35:54  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
 #

+ 92 - 284
rtl/linux/Makefile

@@ -18,228 +18,151 @@
 # spaces, or the makefile won't work anymore after you save.
 
 #####################################################################
-# Start of configurable section.
-# Please note that all these must be set in the main makefile, and
-# should be set there.
-# Don't remove the indef statements. They serve to avoid conflicts
-# with the main makefile.
+# Makefile Defaults
 #####################################################################
 
-# What is the Operating System ?
-ifndef OS_SOURCE
-OS_SOURCE=linux
-endif
-
-# What is the target operating system ?
-ifndef OS_TARGET
-OS_TARGET=linux
-endif
-
-# What is the target processor :
-ifndef CPU
-CPU=i386
-#CPU=m68k
-endif
-
-# Use smartlinking ?
-ifndef SMARTLINK
-SMARTLINK=NO
-endif
-
-# Name of library ?
-# If this is set, all units will be put in the same library.
-# If it is empty (default), the units will be left in separate files.
-ifndef LIBNAME
-LIBNAME=
-#LIBNAME=fpc
-endif
-
-# Should the library be shared or static (only if LIBNAME is set).
-# Set this to 'shared' or 'static' to create a librrary
-# Setting this to shared will disable smart linking.
-ifndef  LIBTYPE
-LIBTYPE=
-#LIBTYPE=static
-endif
-
-# What compiler to use ?
-ifndef PP
-PP=ppc386
-endif
+# Default place of the makefile.fpc
+DEFAULTFPCDIR=../..
 
-# What options to pass to the compiler ?
-# You may want to specify a config file or error definitions file here.
-ifndef OPT
-OPT=
-endif
+# set target and cpu which are required
+override OS_TARGET=linux
+override CPU=i386
 
-# Where is the PPUMOVE program ?
-ifndef PPUMOVE
-PPUMOVE=ppumove
-endif
+# Where are the include files
+RTL=..
+INC=$(RTL)/inc
+PROCINC=$(RTL)/$(CPU)
 
+# Where to place the result files
+TARGETDIR=.
 
-# AOUT should be defined in main makefile.
-# But you can set it here too.
-# AOUT = -DAOUT
+# These units belong to the RTL
+UNITPREFIX=rtl
 
-# Do you want to link to the C library ?
-# Standard it is NO. You can set it to YES to link in th C library.
-ifndef LINK_TO_C
-LINK_TO_C=NO
-endif
 
 #####################################################################
-# End of configurable section.
-# Do not edit after this line.
+# Own defaults
 #####################################################################
 
-#####################################################################
-# System independent
-#####################################################################
+# Paths
+OBJPASDIR=$(RTL)/objpas
 
-# Check if we need C library.
-ifeq ($(LINK_TO_C),YES)
-override OPT+=-dCRTLIB
-endif
+# Define Go32v2 Units
+SYSTEMUNIT=syslinux
 
-# Where are the include files
-RTL=..
-CFG=$(RTL)/cfg
-INC=$(RTL)/inc
-PROCINC=$(RTL)/$(CPU)
-OBJPASDIR=$(RTL)/objpas
 
-# Where to place the resuts
-TARGETDIR=.
+# Define Loaders
+ifdef AOUT
+PRT=prt0
+else
+PRT=prt1
+endif
 
-# Get some defaults for Programs and OSes.
-# This will set the following variables :
-# inlinux indos COPY REPLACE DEL INSTALL INSTALLEXE MKDIR
-# It will also set OPT for cross-compilation, and add required options.
-# also checks for config file.
-# it expects INC PROCINC to be set !!
-include $(CFG)/makefile.cfg
+LOADERAS=$(CPU)/$(PRT).as
+CLOADERAS=$(CPU)/c$(PRT).as
+GLOADERAS=$(CPU)/g$(PRT).as
 
-# Get the system independent include file names.
-# This will set the following variables : 
-# SYSINCNAMES
-include $(INC)/makefile.inc
-SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+LOADEROBJECTS=prt0 cprt0 gprt0
 
-# Get the processor dependent include file names.
-# This will set the following variables : 
-# CPUINCNAMES
-include $(PROCINC)/makefile.cpu
-SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+# Unit Objects
+UNITOBJECTS=$(SYSTEMUNIT) strings linux \
+            dos crt objects printer ports \
+            objpas sysutils typinfo math \
+            cpu mmx getopts heaptrc \
+            errors sockets ipc graph
 
-# Put system unit dependencies together.
-SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
 #####################################################################
-# System dependent
+# Include default makefile
 #####################################################################
 
-# Define Linux Units
-SYSTEMPPU=syslinux$(PPUEXT)
-OBJECTS=strings linux \
-	dos crt objects printer ports \
-	objpas sysutils typinfo math \
-	cpu mmx getopts heaptrc ports \
-	errors sockets graph
-
-# Which units may be placed in the shared lib file
-SHAREDLIBFILES=syslinux strings linux objpas sysutils math \
-	dos crt objects printer \
-	getopts errors sockets ports
-
-# Extra Syslinux Depends
-ifeq ($(LINK_TO_C),YES)
-SYSLINUXDEPS=lprt$(OEXT)
-else
-SYSLINUXDEPS=sysconst.inc systypes.inc syscalls.inc
+# test if FPCMAKE is still valid
+ifdef FPCMAKE
+ifeq ($(strip $(wildcard $(FPCMAKE))),)
+FPCDIR=
+FPCMAKE=
+endif
 endif
 
-# Determine on what dos unit should depend.
-DOSDEPS = dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT)
-ifeq ($(LINK_TO_C),YES)
-DOSDEPS:=$(DOSDEPS) lprt$(OEXT)
-else
-DOSDEPS:=$(DOSDEPS) linux$(PPUEXT)
+ifndef FPCDIR
+ifdef DEFAULTFPCDIR
+FPCDIR=$(DEFAULTFPCDIR)
+endif
 endif
 
-# Which prt to use ?
-ifdef AOUT
-PRT=prt0
+ifndef FPCMAKE
+ifdef FPCDIR
+FPCMAKE=$(FPCDIR)/makefile.fpc
 else
-PRT=prt1
+FPCMAKE=makefile.fpc
+endif
 endif
 
-LOADERAS=$(CPU)/$(PRT).as
-CLOADERAS=$(CPU)/c$(PRT).as
-GLOADERAS=$(CPU)/g$(PRT).as
-
-# Define Loaders
-ifeq ($(LINK_TO_C),NO)
-LOADERS=prt0 cprt0 gprt0
+override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
+ifeq ($(FPCMAKE),)
+nofpcmake:
+	@echo makefile.fpc not found!
+	@echo Check the FPCMAKE and FPCDIR environment variables.
+	@exit
 else
-LOADERS=lprt
+include $(FPCMAKE)
 endif
 
-# Add Prefix and Suffixes
-OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
-PPUOBJECTS=$(SYSTEMPPU) $(addsuffix $(PPUEXT), $(OBJECTS))
 
-.PHONY : all install clean \
-	 libs libsclean \
-	 diffs diffclean \
+#####################################################################
+# Include system unit dependencies
+#####################################################################
 
-all : $(OBJLOADERS) $(PPUOBJECTS) 
+SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
 
-install : all
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
+# Get the system independent include file names.
+# This will set the following variables :
+# SYSINCNAMES
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 
-clean :
-	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) $(PPAS) link.res log
-	-$(DELTREE) *$(SMARTEXT)
+# 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)
 
 
 #####################################################################
-# Files
+# Dependencies
 #####################################################################
 
+vpath %$(PASEXT) $(INC) $(PROCINC)
+
 #
 # Loaders
 #
 
 prt0$(OEXT) : $(LOADERAS)
-	-as $(LOADERAS) -o prt0$(OEXT)
+	$(AS) -o prt0$(OEXT) $(LOADERAS)
 
 cprt0$(OEXT) : $(CLOADERAS)
-	-as $(CLOADERAS) -o cprt0$(OEXT)
+	$(AS) -o cprt0$(OEXT) $(CLOADERAS)
 
 gprt0$(OEXT) : $(GLOADERAS)
-	-as $(GLOADERAS) -o gprt0$(OEXT)
-
-lprt$(OEXT) : lprt.c
-	gcc $(AOUT) -c lprt.c -o lprt$(OEXT)
+	$(AS) -o gprt0$(OEXT) $(GLOADERAS)
 
 #
 # Base Units (System, strings, os-dependent-base-unit)
 #
 
-$(SYSTEMPPU) : syslinux.pp $(SYSLINUXDEPS) $(SYSDEPS)
+$(SYSTEMPPU) : syslinux.pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS)
 	$(COMPILER) -Us -Sg syslinux.pp $(REDIR)
 
 strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
                    $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
                    $($(SYSTEMPPU)
-	$(COMPILER) $(INC)/strings.pp $(REDIR)
 
 linux$(PPUEXT) : linux.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 syscalls.inc systypes.inc sysconst.inc $(SYSTEMPPU)
-	$(COMPILER) linux.pp $(REDIR)
+                 syscalls.inc systypes.inc sysconst.inc $(SYSTEMPPU)
 
 #
 # Delphi Object Model
@@ -252,159 +175,44 @@ include $(OBJPASDIR)/makefile.op
 #
 
 sockets$(PPUEXT) : sockets.pp $(INC)/textrec.inc $(INC)/filerec.inc \
-		   linux$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) sockets.pp $(REDIR)
+                   linux$(PPUEXT) $(SYSTEMPPU)
 
 errors$(PPUEXT) : errors.pp strings$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) errors.pp $(REDIR)
+
+ipc$(PPUEXT) : ipc.pp linux$(PPUEXT) $(SYSTEMPPU)
 
 #
 # TP7 Compatible RTL Units
 #
 
-dos$(PPUEXT) : $(DOSDEPS) $(SYSTEMPPU)
-	$(COMPILER) dos.pp $(REDIR)
+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)
-	$(COMPILER) crt.pp $(REDIR)
 
 objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
-	$(COMPILER) $(INC)/objects.pp $(REDIR)
 
 printer$(PPUEXT) : printer.pp $(INC)/textrec.inc linux$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) printer.pp $(REDIR)
-
-graph$(PPUEXT) : graph.pp linux$(PPUEXT) objects$(PPUEXT)
-	$(COMPILER) graph.pp $(REDIR)
 
 ports$(PPUEXT) : ports.pp linux$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) ports.pp $(REDIR)
+
+graph$(PPUEXT) : graph.pp linux$(PPUEXT) objects$(PPUEXT)
 
 #
 # Other RTL Units
 #
 
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMPPU)
-	$(COMPILER) $(PROCINC)/cpu.pp $(REDIR)
 
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) $(PROCINC)/mmx.pp $(REDIR)
 
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
-	$(COMPILER) $(INC)/getopts.pp $(REDIR)
 
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMPPU)
-	$(COMPILER) $(INC)/heaptrc $(REDIR)
-
-
-#####################################################################
-# Libs
-#####################################################################
-
-libs: staticlib sharedlib
-
-staticlib:
-	make clean
-	make all SMARTLINK=YES LIBNAME=fpc LIBTYPE=static
-
-sharedlib:
-	make clean
-	make all
-	$(PPUMOVE) -ofpc $(SHAREDLIBFILES)
-
-staticlibinstall: staticlib
-	$(MKDIR) $(STATIC_LIBINSTALLDIR)
-	$(MKDIR) $(STATIC_UNITINSTALLDIR)
-	$(INSTALLEXE) libfpc$(STATICLIBEXT) $(STATIC_LIBINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) $(OBJLOADERS) $(STATIC_UNITINSTALLDIR)
-
-sharedlibinstall: sharedlib
-	$(MKDIR) $(SHARED_LIBINSTALLDIR)
-	$(MKDIR) $(SHARED_UNITINSTALLDIR)
-	$(INSTALLEXE) libfpc$(SHAREDLIBEXT) $(SHARED_LIBINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) $(OBJLOADERS) $(SHARED_UNITINSTALLDIR)
-	$(LDCONFIG)
-
-libinstall: staticlibinstall sharedlibinstall
-
-libsclean : clean
-	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-
-#####################################################################
-# Default targets
-#####################################################################
-
-include $(CFG)/makefile.def
 
 #
 # $Log$
-# Revision 1.14  1999-02-25 07:39:17  michael
-# * Joined strings and sysutils
-#
-# Revision 1.13  1999/01/15 11:45:14  peter
-#   * added math unit to objects
-#
-# Revision 1.12  1998/12/21 13:07:05  peter
-#   * use -FE
-#
-# Revision 1.11  1998/12/11 00:10:50  peter
-#   * use $mode directive
-#
-# Revision 1.10  1998/12/07 16:38:48  michael
-# Added ports unit
-#
-# Revision 1.9  1998/11/24 19:50:49  jonas
-#   + added warning about TABs
-#
-# Revision 1.8  1998/11/10 17:56:56  peter
-#   * fixes to build correct again
-#
-# Revision 1.7  1998/10/11 13:47:21  michael
-# sysutils disk.inc
-#
-# Revision 1.6  1998/10/11 12:21:49  michael
-# + Further sysutils implementations.
-#
-# Revision 1.5  1998/10/06 22:10:31  peter
-#   + heaptrc
-#
-# Revision 1.4  1998/10/02 09:26:01  peter
-#   * fixed rtl path
-#
-# Revision 1.3  1998/09/15 12:09:10  peter
-#   * merged updates
-#
-# Revision 1.2  1998/09/11 13:14:01  michael
-# many libs and libinstall fixes
-#
-# Revision 1.1.2.1  1998/09/15 12:02:04  peter
-#   * updates to get objpas using its own makefile
-#
-# Revision 1.1  1998/09/10 14:15:49  peter
-#   - renamed makefile to Makefile
-#
-# Revision 1.24  1998/09/10 09:10:05  michael
-# errors when making libs
-#
-# Revision 1.23  1998/09/07 18:31:53  peter
-#   * fixed $smartlibext -> $staticlibext to fix a 'rm *' :(
-#
-# Revision 1.22  1998/08/21 20:20:12  michael
-# + Fixed spaces to tabs.
-#
-# Revision 1.21  1998/08/21 15:17:00  peter
-#   * win32 compiles a bit better, no growheap crash
-#
-# Revision 1.20  1998/08/18 08:35:06  peter
-#   * updated for new lib options
-#
-# Revision 1.19  1998/08/17 09:30:00  peter
-#   * libtype/libname is by default off
-#
-# Revision 1.18  1998/08/16 10:22:57  michael
-# Added library support, and smartlinking
-#
-# Revision 1.17  1998/08/15 17:08:09  peter
-#   + support for cprt0.o
+# Revision 1.15  1999-03-09 01:35:55  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
 #

+ 85 - 222
rtl/win32/Makefile

@@ -17,69 +17,47 @@
 # make. Make sure you use an editor that does not replace TABs with
 # spaces, or the makefile won't work anymore after you save.
 
-#####################################################################
-# Configuration section
-#####################################################################
-
-# Use smartlinking ?
-ifndef SMARTLINK
-SMARTLINK=NO
-endif
-
-# Name of library ?
-# If this is set, all units will be put in the same library.
-# If it is empty (default), the units will be left in separate files.
-ifndef LIBNAME
-LIBNAME=
-#LIBNAME=fpc
-endif
-
-# Should the library be shared or static (only if LIBNAME is set).
-# Set this to 'shared' or 'static' to create a librrary
-# Setting this to shared will disable smart linking.
-ifndef	LIBTYPE
-LIBTYPE=
-#LIBTYPE=static
-endif
-
-
 #####################################################################
 # Defaults
 #####################################################################
 
+# Default place of the makefile.fpc
+DEFAULTFPCDIR=../..
+
 # set target and cpu which are required
 override OS_TARGET=win32
 override CPU=i386
 
 # Where are the include files
 RTL=..
-CFG=$(RTL)/cfg
 INC=$(RTL)/inc
 PROCINC=$(RTL)/$(CPU)
-OBJPASDIR=$(RTL)/objpas
 
-# Where are the results placed
+# Where to place the result files
 TARGETDIR=.
 
+# These units belong to the RTL
+UNITPREFIX=rtl
+
 
 #####################################################################
-# Include default makefile
+# Own defaults
 #####################################################################
 
-include $(CFG)/makefile.cfg
+# Paths
+OBJPASDIR=$(RTL)/objpas
 
+# Define Win32 Units
+SYSTEMUNIT=syswin32
 
-#####################################################################
-# System dependent
-#####################################################################
+# Loaders
+LOADEROBJECTS=wprt0 wdllprt0
 
-# Define Win32 Units
-SYSTEMPPU=syswin32$(PPUEXT)
-LOADERS=wprt0 wdllprt0
-OBJECTS=strings windows \
-	dos objects \
-	objpas sysutils typinfo math \
-	cpu mmx getopts heaptrc
+# Unit Objects
+UNITOBJECTS=$(SYSTEMUNIT) strings windows \
+	    dos objects \
+	    objpas sysutils typinfo math \
+	    cpu mmx getopts heaptrc
 
 # Files used by windows.pp
 WINDOWS_FILES=base errors defines \
@@ -89,10 +67,49 @@ WINDOWS_FILES=base errors defines \
 WINDOWS_SOURCE_FILES=$(addsuffix .pp,$(WINDOWS_FILES))
 
 
+#####################################################################
+# Include default makefile
+#####################################################################
+
+# test if FPCMAKE is still valid
+ifdef FPCMAKE
+ifeq ($(strip $(wildcard $(FPCMAKE))),)
+FPCDIR=
+FPCMAKE=
+endif
+endif
+
+ifndef FPCDIR
+ifdef DEFAULTFPCDIR
+FPCDIR=$(DEFAULTFPCDIR)
+endif
+endif
+
+ifndef FPCMAKE
+ifdef FPCDIR
+FPCMAKE=$(FPCDIR)/makefile.fpc
+else
+FPCMAKE=makefile.fpc
+endif
+endif
+
+override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
+ifeq ($(FPCMAKE),)
+nofpcmake:
+	@echo makefile.fpc not found!
+	@echo Check the FPCMAKE and FPCDIR environment variables.
+	@exit
+else
+include $(FPCMAKE)
+endif
+
+
 #####################################################################
 # Include system unit dependencies
 #####################################################################
 
+SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
+
 # Get the system independent include file names.
 # This will set the following variables :
 # SYSINCNAMES
@@ -110,54 +127,36 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
 
 #####################################################################
-# System independent Makefile
+# Dependencies
 #####################################################################
 
-# Add Prefix and Suffixes
-OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
-PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
-
-.PHONY : all install clean \
-	 libs libsclean \
-	 diffs diffclean \
-	 dllnames test
-
-all : $(OBJLOADERS) $(PPUOBJECTS)
-
-install : all
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
-
-clean :
-	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) log
-	-$(DELTREE) *$(SMARTEXT)
-
-
-#####################################################################
-# Files
-#####################################################################
+vpath %$(PASEXT) $(INC) $(PROCINC)
 
 #
-# Base Units (System, strings, os-dependent-base-unit)
+# Loaders
 #
+
 ifneq ($(OS_SOURCE),win32)
 override AS=asw
 endif
 
-
 wprt0$(OEXT) : wprt0.as
 	$(AS) -o wprt0$(OEXT) wprt0.as
 
 wdllprt0$(OEXT) : wdllprt0.as
 	$(AS) -o wdllprt0$(OEXT) wdllprt0.as
 
+
+#
+# Base Units (System, strings, os-dependent-base-unit)
+#
+
 $(SYSTEMPPU) : syswin32.pp win32.inc $(SYSDEPS)
 	$(COMPILER) -Us -Sg syswin32.pp $(REDIR)
 
 strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
-                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
-                   $(SYSTEMPPU)
-	$(COMPILER) $(INC)/strings.pp $(REDIR)
+		   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
+		   $(SYSTEMPPU)
 
 #
 # Delphi Object Model
@@ -171,74 +170,32 @@ include $(OBJPASDIR)/makefile.op
 #
 
 base$(PPUEXT) : base.pp $(SYSTEMPPU)
-	$(COMPILER) base.pp $(REDIR)
 
 messages$(PPUEXT) : messages.pp $(SYSTEMPPU)
-	$(COMPILER) messages.pp $(REDIR)
 
 defines$(PPUEXT) : defines.pp $(SYSTEMPPU)
-	$(COMPILER) defines.pp $(REDIR)
 
 windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMPPU)
-	$(COMPILER) windows.pp $(REDIR)
 
 #
 # TP7 Compatible RTL Units
 #
 
 dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc $(SYSTEMPPU)
-	$(COMPILER) dos.pp $(REDIR)
 
 objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
-	 $(COMPILER) $(INC)/objects.pp $(REDIR)
 
 #
 # Other RTL Units
 #
 
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMPPU)
-	$(COMPILER) $(PROCINC)/cpu.pp $(REDIR)
 
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMPPU)
-	$(COMPILER) $(PROCINC)/mmx.pp $(REDIR)
 
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
-	$(COMPILER) $(INC)/getopts.pp $(REDIR)
 
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMPPU)
-	$(COMPILER) $(INC)/heaptrc $(REDIR)
-
-
-#####################################################################
-# Libs
-#####################################################################
-
-staticlib:
-	make clean
-	make all SMARTLINK=YES LIBNAME=fpc LIBTYPE=static
-
-sharedlib:
-	make clean
-	make all
-	$(PPUMOVE) -o fpc $(SHAREDLIBFILES)
-
-staticlibinstall: staticlib
-	$(MKDIR) $(STATIC_LIBINSTALLDIR)
-	$(MKDIR) $(STATIC_UNITINSTALLDIR)
-	$(INSTALLEXE) libfpc$(STATICLIBEXT) $(STATIC_LIBINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) *$(OEXT) $(STATIC_UNITINSTALLDIR)
-
-sharedlibinstall: sharedlib
-	$(MKDIR) $(SHARED_LIBINSTALLDIR)
-	$(MKDIR) $(SHARED_UNITINSTALLDIR)
-	$(INSTALLEXE) libfpc$(SHAREDLIBEXT) $(SHARED_LIBINSTALLDIR)
-	$(INSTALL) *$(PPUEXT) *$(OEXT) $(SHARED_UNITINSTALLDIR)
-	ldconfig
-
-libinstall: staticlibinstall
-
-libsclean : clean
-	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 
 
 #####################################################################
@@ -279,7 +236,7 @@ allexps : $(notdir $(patsubst %.dll,%.exp,$(wildcard $(WINDOWS_DIR)/system/*.dll
 # func.lst will contain all functions for which we still do
 # not know the origin DLL
 %.lst : %.pp
-	@echo listing DLL function names of $*.pp
+	@$(ECHO) listing DLL function names of $*.pp
 	sed -n -e "s/\(.*\)External_library name '\([^']*\)'\(.*\)/\2/p" $*.pp > $*.lst
 
 # get the DLL name from the listing in .exp files
@@ -297,9 +254,9 @@ endef
 # Level 1 : set filename variable
 # Level 2 :
 %.sub : %.lst
-	@echo getting DLL file name for $*
+	@$(ECHO) getting DLL file name for $*
 	-rm $*.sub
-	@echo # Substitutions for $* >$*.sub
+	@$(ECHO) # Substitutions for $* >$*.sub
 # call make for all names in lst file
 # define LongList if there is an error
 # because the list is too long
@@ -309,9 +266,9 @@ else
 	$(MAKE) subfile=$*.sub $(addsuffix .find,$(shell cat $*.lst))
 endif
 # resubstitute unfound ones !!
-	@echo s/external \'\' name \'\([^\']*\)\'/external\
+	@$(ECHO) s/external \'\' name \'\([^\']*\)\'/external\
 	External_library name \'\1\'/ >>$*.sub
-	@echo # End of substitutions for $* >>$*.sub
+	@$(ECHO) # End of substitutions for $* >>$*.sub
 
 # Change file according to function found in export
 # list remaining unfound functions in $*.mis
@@ -320,13 +277,13 @@ endif
 	sed -n -e "s/\(.*\)External_library name \'\([^\']*\)\'\(.*\)/\2/p" $*.npp > $*.mis
 
 %.find :
-	@echo $* is in $(grepname)
+	@$(ECHO) $* is in $(grepname)
 ifdef subfile
-	@echo s/external External_library name \'$*\'/external\
+	@$(ECHO) s/external External_library name \'$*\'/external\
 	\'$(filter %.dll %.drv ,$(subst .exd:,.drv ,$(subst .exp:,.dll ,$(shell grep @$*@ *.ex*))))\'\
 	name \'$*\'/ >>$(subfile)
 else
-	@echo external \
+	@$(ECHO) external \
 	\'$(filter %.dll %.drv ,$(subst .exd:,.drv ,$(subst .exp:,.dll ,$(shell grep @$*@ *.ex*))))\'\
 	name $*
 endif
@@ -334,8 +291,8 @@ endif
 GNUWIN32LIBDIR=./
 
 %.find2 :
-	@echo s/In archive \(.*\)/\1/p >find.sed
-	@echo s/\(.*\)___imp_$*@\(.*\)/found: $*/p >>find.sed
+	@$(ECHO) s/In archive \(.*\)/\1/p >find.sed
+	@$(ECHO) s/\(.*\)___imp_$*@\(.*\)/found: $*/p >>find.sed
 ifdef subfile
 	sed -n -f find.sed alllibs.sym >> $(subfile)
 else
@@ -348,9 +305,9 @@ missing : $(GNUWIN32LIBDIR)alllibs.sym $(addsuffix .lst,$(WINDOWS_FILES))
 
 substmissing : missing
 	dtou missing
-	@echo N > test.sed
-	@echo s/lib\(.*\)\.a:\nfound: \(.*\)/\1.dll : \2/p >> test.sed
-	@echo D >> test.sed
+	@$(ECHO) N > test.sed
+	@$(ECHO) s/lib\(.*\)\.a:\nfound: \(.*\)/\1.dll : \2/p >> test.sed
+	@$(ECHO) D >> test.sed
 	sed -n -f test.sed missing > missing.tmp
 	sed -e "s#\(.*\) : \(.*\)#s/external External_library name \'\2\'/external \'\1\' name \'\2\'/#" missing.tmp > missing.sub
 
@@ -358,7 +315,7 @@ dllnames:
 	$(MAKE) $(addsuffix .lst,$(WINDOWS_FILES))
 
 test:
-	@echo namelist of $(filename) is "$(namelist)"
+	@$(ECHO) namelist of $(filename) is "$(namelist)"
 
 # automatic conversion from ascfun.pp to ascdef.pp
 # and unifun.pp to unidef.pp
@@ -371,103 +328,9 @@ unidef.pp : unifun.pp unidef.sed
 	sed -f unidef.sed unifun.pp > unidef.pp
 endif
 
-
-#####################################################################
-# Default targets
-#####################################################################
-
-include $(CFG)/makefile.def
-
 #
 # $Log$
-# Revision 1.19  1999-02-25 09:59:03  michael
-# + Fixed type in strings target
-#
-# Revision 1.18  1999/02/25 07:39:19  michael
-# * Joined strings and sysutils
-#
-# Revision 1.17  1999/01/15 11:47:19  peter
-#   + added math unit to objects
-#
-# Revision 1.16  1999/01/04 11:57:45  peter
-#   * clean doesn't clean objpasdir anymore
+# Revision 1.20  1999-03-09 01:35:56  peter
+#   * makefile.fpc updates and defaultfpcdir var
 #
-# Revision 1.15  1998/12/21 13:07:07  peter
-#   * use -FE
 #
-# Revision 1.14  1998/11/30 13:13:40  pierre
-#  * needs asw to link correctly wprt0 or wdllprt0 file
-#
-# Revision 1.13  1998/11/30 09:16:57  pierre
-#   + added the changes from Pavel Ozerski after several modifications
-#     to be able to create DLLs
-#
-# Revision 1.12  1998/11/24 19:52:10  jonas
-#   + added warning about TABs
-#
-# Revision 1.11  1998/11/18 09:28:07  pierre
-#  + added objects unit
-#
-# Revision 1.10  1998/10/14 12:49:42  peter
-#   * fixed dos dependency
-#
-# Revision 1.9  1998/10/12 08:36:32  pierre
-#  * wrong 'objpas' target in all removed
-#
-# Revision 1.8  1998/10/11 13:45:03  michael
-# + Added disk.inc to sysutils dependencies
-#
-# Revision 1.7  1998/10/11 12:21:46  michael
-# + Further sysutils implementations.
-#
-# Revision 1.6  1998/10/06 22:10:32  peter
-#   + heaptrc
-#
-# Revision 1.5  1998/10/02 09:26:05  peter
-#   * fixed rtl path
-#
-# Revision 1.4  1998/09/16 16:47:35  peter
-#   * merged fixes
-#
-# Revision 1.1.2.2  1998/09/16 16:17:55  peter
-#   * updates to install with go32,win32
-#
-# Revision 1.3  1998/09/15 12:09:13  peter
-#   * merged updates
-#
-# Revision 1.2  1998/09/11 15:09:48  michael
-# fixed colon problem
-#
-# Revision 1.1.2.1  1998/09/15 12:02:06  peter
-#   * updates to get objpas using its own makefile
-#
-# Revision 1.1	1998/09/10 14:15:55  peter
-#   - renamed makefile to Makefile
-#
-# Revision 1.13  1998/09/07 18:31:54  peter
-#   * fixed $smartlibext -> $staticlibext to fix a 'rm *' :(
-#
-# Revision 1.12  1998/09/04 17:17:36  pierre
-#   + all unknown function ifdef with
-#     conditionnal unknown_functions
-#     testwin works now, but windowcreate still fails !!
-#
-# Revision 1.11  1998/09/04 12:33:12  pierre
-#   + added SED testing for ascdef.pp and unidef.pp
-#   * func.pp ready
-#     still some functions missing (commented out for now)
-#
-# Revision 1.10  1998/09/03 18:17:35  pierre
-#   * small improvements in number of found functions
-#     all remaining are in func.pp
-#
-# Revision 1.9	1998/09/03 17:14:54  pierre
-#   * most functions found in main DLL's
-#     still some missing
-#     use 'make dllnames' to get missing names
-#
-# Revision 1.7	1998/08/21 15:17:01  peter
-#   * win32 compiles a bit better, no growheap crash
-#
-#
-