Browse Source

* merged fixes

peter 27 years ago
parent
commit
d26cb63037
11 changed files with 416 additions and 406 deletions
  1. 7 7
      rtl/COPYING
  2. 2 7
      rtl/COPYING.FPC
  3. 150 221
      rtl/Makefile
  4. 9 5
      rtl/dos/Makefile
  5. 9 13
      rtl/dos/dos.pp
  6. 56 44
      rtl/dos/go32v1/Makefile
  7. 60 40
      rtl/dos/go32v2/Makefile
  8. 10 1
      rtl/dos/graph.pp
  9. 9 3
      rtl/objpas/Makefile
  10. 52 16
      rtl/template/Makefile
  11. 52 49
      rtl/win32/Makefile

+ 7 - 7
rtl/COPYING

@@ -1,13 +1,13 @@
 
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                           675 Mass Ave, Cambridge, MA 02139, USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -57,7 +57,7 @@ patent must be licensed for everyone's free use or not licensed at all.
   The precise terms and conditions for copying, distribution and
 modification follow.
 
-		    GNU GENERAL PUBLIC LICENSE
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -256,7 +256,7 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-			    NO WARRANTY
+                            NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -278,9 +278,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
+                     END OF TERMS AND CONDITIONS
 
-	Appendix: How to Apply These Terms to Your New Programs
+        Appendix: How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it

+ 2 - 7
rtl/COPYING.FPC

@@ -1,4 +1,4 @@
-This is the file COPYING.FPC, it applies to the Free Pascal Run-Time Library 
+This is the file COPYING.FPC, it applies to the Free Pascal Run-Time Library
 source files copyrighted by members of the Free Pascal Development Team.
 
 The source code of Free Pascal is distributed under the GNU General
@@ -7,14 +7,9 @@ Public License (see the file COPYING) with the following exceptions:
 - object files and libraries linked into an application may be
   distributed without source code
 
-If you didn't receive a copy of the file COPYING, contact: 
+If you didn't receive a copy of the file COPYING, contact:
       Free Software Foundation
       675 Mass Ave
       Cambridge, MA  02139
       USA
 
-
-Suggestions, ideas ?? Please correct spelling mistakes in the license,
-if you see one.
-
-

+ 150 - 221
rtl/Makefile

@@ -3,7 +3,7 @@
 #   This file is part of the Free Pascal run time library.
 #   Copyright (c) 1996-98 by Michael van Canneyt
 #
-#   Makefile for the Free Pascal Win32 Runtime Library
+#   Makefile for the Free Pascal Runtime Library
 #
 #   See the file COPYING.FPC, included in this distribution,
 #   for details about the copyright.
@@ -12,149 +12,66 @@
 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-#****************************************************************************
 
 #####################################################################
 # Start of configurable section
 #####################################################################
 
-# What compiler do you want to use :
-ifndef PP
-PP=ppc386
-endif
-
-# Where do you want to install the units ?
-# For each of the systems, a subdirectory OSunits of
-# this directry will be created, and the system dependent
-# files will be set there.
-# For linux:
-UNITINSTALLDIR=/usr/lib/fpc/0.99.6
-# For dos/os2 : 
-# UNITINSTALLDIR=\pp\units
-
-# Where do you want to install the (shared or static) run-time libraries ?
-# For linux:
-LIBINSTALLDIR=/usr/lib
-# For dos/os2 : 
-#LIBINSTALLDIR=\pp\units
-
-# Where do you want the utilities installed ?
-# for linux
-BININSTALLDIR=/usr/bin
-# for DOS, OS/2
-# BININSTALLDIR=\pp\bin
-
-#####################################################################
-# Try to determine Operating System
-#####################################################################
-
-BASEDIR=$(shell pwd)
-
-# in linux no : in pathes
-ifeq ($(findstring :,$(BASEDIR)),)
-inlinux=1
-endif
-
-# in case pwd is not present on the DOS-OS
-ifeq ($(strip $(BASEDIR)),'')
-inlinux=
-BASEDIR:=.
-endif
-
-# set here the type of the ppc386 you use:
-# Choose from: go32v1 go32v2 linux or os2
-# can determine if on linux otherwise assume go32v2
-
-ifdef inlinux
-OS_SRC=linux
-else
-OS_SRC=go32v2
-endif
-
-
 # Set redir to YES if you want a log file to be kept.
 ifndef REDIR
-REDIR=YES
+REDIR=NO
 endif
 
 # Set NODEBUG to YES if you DON'T want debugging
+ifndef NODEBUG
 NODEBUG=YES
-
-# set target processor type
-CPU=i386
-# CPU=m68k
-
-# Set REFPATH if you want to generate diffs to a standard RTL
-# this can not be a relative path.
-REFPATH=/usr/local/fpk/work/0.9.7/rtl
-
-# Where is the diff program ?  (No relative paths)
-DIFF=diff
-
-# What options do you want to pass to diff ?
-DIFFOPTS=-b -c
-
-# Where is the ppumove program ? (set only if you want to make libs)
-# Don't specify a relative path.
-PPUMOVE=ppumove
-
-#
-# Optional configuration settings.
-#
-
-# Set any options you wish to give to the compiler
-OPT=
+endif
 
 # Optional : Specify the place of the log file.
 # default is 'log' in the source directory
-# REDIRFILE=
-
+ifndef REDIRFILE
+REDIRFILE=
+endif
 
 # Optional: Error definitions file you want the compiler to use.
 # !! If you specify a path, specify an absolute path. !!
-# ERRORFILE=
+ifndef ERRORFILE
+ERRORFILE=
+endif
 
-# Optional: The program to create directories.
-# Under DOS this is by default 'mkdir'. Under Linux this is 'install -m 755 -d'
-# MKDIR=
+# Everything else has been moved to rtl/cfg/makefile.cfg
 
-# Optional: The program to install the files into the destination directory.
-# Under DOS this is by default 'copy', under Linux this is 'install -m 644'
-# copy will not work with /
-# use cp from djgpp instead
-# INSTALL=
+
+#####################################################################
+# Include default makefile
+#####################################################################
+
+CFG=cfg
+
+include $(CFG)/makefile.cfg
 
 
 #######################################################################
-# End of configurable section.
-# Do not edit after this line.
+# Fix options
 #######################################################################
 
 # Check debugging.
-ifneq (YES,$(NODEBUG))
-OPT:=$(OPT) -g
+ifneq ($(NODEBUG),YES)
+override OPT+=-g
 endif
 
 # Check error definitions file.
 ifdef ERRORFILE
-OPT:= $(OPT) -Fr$(ERRORFILE)
-endif
-
-# Check operating system.
-ifeq ($(OS_SRC),linux)
-DOS=NO
-else
-DOS=YES
-# also redirect the standard error to the redir file
-ifeq (YES,$(REDIR))
-PP:=redir -eo $(PP)
-# set the verbosity to max
-OPT:=$(OPT) -va
-endif
+override OPT+=-Fr$(ERRORFILE)
 endif
 
 # Check logfile.
-ifeq (YES,$(REDIR))
+ifeq ($(REDIR),YES)
+ifndef inlinux
+override PP=redir -eo $(PP)
+endif
+# set the verbosity to max
+override OPT+=-va
 ifdef REDIRFILE
 override REDIR:= >> $(REDIRFILE)
 else
@@ -164,177 +81,189 @@ else
 override REDIR:= >> con
 endif
 
-# Check copy delete commands.
-# You need cp from GNU to handle / as directory separator
-COPY=cp -p
-DEL=rm
-
-# To install programs
-ifndef INSTALL
-ifeq ($(DOS),YES)
-INSTALL=copy
-else
-INSTALL=install
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifeq ($(DOS),YES)
-MKDIR=mkdir
-else
-MKDIR=install -m 755 -d
-endif
-endif
+# Variables to export
+export PP OPT REDIR REDIRFILE ERRORFILE
 
-# add target processor define to command line options
-OPT:=$(OPT) -d$(CPU)
 
-# Variables to export
-export OS_SRC DOS SEP PP OPT REDIR COPY DEL LIBINSTALLDIR INSTALL MKDIR \
-       REFPATH CPU PPUMOVE UNITINSTALLDIR
+############################################################################
+# Defaults
+############################################################################
 
 .PHONY: rtl_go32v1 rtl_go32v2 rtl_linux rtl_os2 rtl_win32 \
-        install_go32v1 install_go32v2 install_linux install_os2 install_win32 \
-        go32v1libs go32v2libs linuxlibs os2libs win32libs \
+	install_go32v1 install_go32v2 install_linux install_os2 install_win32 \
+	go32v1libs go32v2libs linuxlibs os2libs win32libs \
 	clean install native diffs diffclean \
 	libs libinstall \
 	utils utils_install
 
-native: rtl$(OS_SRC)
+all: rtls
 
-nativelibs : $(OS_SRC)libs
+clean:
+	make -C template clean
+	make -C dos clean
+	make -C dos/go32v1 clean
+	make -C dos/go32v2 clean
+	make -C linux clean
+	make -C win32 clean
+	make -C os2 clean
+	make -C utils clean
+	-$(DEL) *.dif
 
-all: rtlgo32v1 rtlgo32v2 rtllinux rtlos2 rtlwin32
 
-libs: go32v1libs go32v2libs linuxlibs os2libs win32libs
+############################################################################
+# RTLs
+############################################################################
 
-diffs: diffs_rtl diffs_inc diffs_i386 diffs_m68k diffs_dos diffs_cfg \
-	diffs_os2 diffs_go32v1 diffs_go32v2 diffs_linux diffs_win32 \
-	diffs_template
+native: rtl$(OS_SOURCE)
 
+rtls: rtlgo32v1 rtlgo32v2 rtllinux rtlos2 rtlwin32
 
 rtlgo32v1:
-	$(MAKE) -C dos/go32v1 CFGFILE=../../cfg/ppgo32v1.cfg OS_TARGET=go32v1
+	make -C dos/go32v1
 
 rtlgo32v2:
-	$(MAKE) -C dos/go32v2 CFGFILE=../../cfg/ppgo32v2.cfg  OS_TARGET=go32v2
+	make -C dos/go32v2
 
 rtllinux:
-	$(MAKE) -C linux CFGFILE=../cfg/pplinux.cfg OS_TARGET=linux
+	make -C linux
 
 rtlos2:
-	$(MAKE) -C os2 CFGFILE=../cfg/ppos2.cfg OS_TARGET=os2
+	make -C os2
 
 rtlwin32:
-	$(MAKE) -C win32 CFGFILE=../cfg/ppwin32.cfg OS_TARGET=win32
+	make -C win32
+
+
+############################################################################
+# Libs
+############################################################################
+
+nativelibs : $(OS_SOURCE)libs
+
+libs: go32v1libs go32v2libs linuxlibs os2libs win32libs
 
 go32v1libs:
-	$(MAKE) -C dos/go32v1 CFGFILE=../../cfg/ppdos.cfg OS_TARGET=go32v1 libs
+	make -C dos/go32v1 libs
 
 go32v2libs:
-	$(MAKE) -C dos/go32v2 CFGFILE=../../cfg/ppgo32v2.cfg  OS_TARGET=go32v2 libs
+	make -C dos/go32v2 libs
 
 linuxlibs:
-	$(MAKE) -C linux CFGFILE=../cfg/pplinux.cfg OS_TARGET=linux libs
+	make -C linux libs
 
 os2libs:
-	$(MAKE) -C os2 CFGFILE=../cfg/ppos2.cfg OS_TARGET=os2 libs
+	make -C os2 libs
 
 win32libs:
-	$(MAKE) -C win32 CFGFILE=../cfg/ppwin32.cfg OS_TARGET=win32 libs
+	make -C win32 libs
 
-clean:
-	$(MAKE) -C template clean
-	$(MAKE) -C dos clean
-	$(MAKE) -C dos/go32v1 clean
-	$(MAKE) -C dos/go32v2 clean
-	$(MAKE) -C linux clean
-	$(MAKE) -C win32 clean
-	$(MAKE) -C os2 clean
-	$(MAKE) -C utils clean
-	-$(DEL) *.dif
-
-diffclean:
-	$(MAKE) -C template diffclean
-	$(MAKE) -C dos diffclean
-	$(MAKE) -C dos/go32v1 diffclean
-	$(MAKE) -C dos/go32v2 diffclean
-	$(MAKE) -C linux diffclean
-	$(MAKE) -C os2 diffclean
-	$(MAKE) -C win32 diffclean
-	-$(DEL) *.dif
 
+############################################################################
+# Install
+############################################################################
 
 install: install_linux install_go32v1 install_go32v2 install_os2 install_win32
 
+native_install: install_$(OS_SRC)
+
+install_go32v1:
+	make -C dos/go32v1 install
+install_go32v2:
+	make -C dos/go32v2 install
+install_linux:
+	make -C linux install
+install_os2:
+	make -C os2 install
+install_win32:
+	make -C win32 install
+
+
+############################################################################
+# LibInstall
+############################################################################
+
 libinstall: libinstall_linux libinstall_go32v1 libinstall_go32v2 \
 	libinstall_os2 libinstall_win32
 
-native_install: install_$(OS_SRC)
+native_libinstall: libinstall_$(OS_SOURCE)
+
+libinstall_go32v1:
+	make -C dos/go32v1 libinstall
+libinstall_go32v2:
+	make -C dos/go32v2 libinstall
+libinstall_linux:
+	make -C linux libinstall
+libinstall_os2:
+	make -C os2 libinstall
+libinstall_win32:
+	make -C win32 libinstall
 
-native_libinstall: libinstall_$(OS_SRC)
+
+############################################################################
+# Utils
+############################################################################
+
+utils:
+	make -C utils all
+utils_install:
+	make -C utils install
+
+
+############################################################################
+# Diffs
+############################################################################
+
+diffs: diffs_rtl diffs_inc diffs_i386 diffs_m68k diffs_dos diffs_cfg \
+	diffs_os2 diffs_go32v1 diffs_go32v2 diffs_linux diffs_win32 \
+	diffs_template
 
 makefile.dif : makefile
 	-$(DIFF) $(DIFFOPTS) makefile $(REFPATH)/makefile > makefile.dif
 
-
 diffs_rtl: makefile.dif
 
-diffs_dos:
-	$(MAKE) -C dos diffs
 diffs_inc:
-	$(MAKE) -C inc diffs
+	make -C inc diffs
 diffs_i386:
-	$(MAKE) -C i386 diffs
+	make -C i386 diffs
 diffs_m68k:
-	$(MAKE) -C m68k diffs
+	make -C m68k diffs
 diffs_cfg:
-	$(MAKE) -C cfg diffs
+	make -C cfg diffs
 diffs_template:
-	$(MAKE) -C template diffs
+	make -C template diffs
 diffs_go32v1:
-	$(MAKE) -C dos/go32v1 diffs
+	make -C dos/go32v1 diffs
 diffs_go32v2:
-	$(MAKE) -C dos/go32v2 diffs
+	make -C dos/go32v2 diffs
 diffs_linux:
-	$(MAKE) -C linux diffs
+	make -C linux diffs
 diffs_os2:
-	$(MAKE) -C os2 diffs
+	make -C os2 diffs
 diffs_win32:
-	$(MAKE) -C win32 diffs
-
-install_go32v1:
-	$(MAKE) -C dos/go32v1 install
-install_go32v2:
-	$(MAKE) -C dos/go32v2 install
-install_linux:
-	$(MAKE) -C linux install
-install_os2:
-	$(MAKE) -C os2 install
-install_win32:
-	$(MAKE) -C win32 install
+	make -C win32 diffs
 
-libinstall_go32v1:
-	$(MAKE) -C dos/go32v1 libinstall
-libinstall_go32v2:
-	$(MAKE) -C dos/go32v2 libinstall
-libinstall_linux:
-	$(MAKE) -C linux libinstall
-libinstall_os2:
-	$(MAKE) -C os2 libinstall
-libinstall_win32:
-	$(MAKE) -C win32 libinstall
-
-utils:
-	$(MAKE) -C utils all
-utils_install:
-	$(MAKE) -C utils install
+diffclean:
+	make -C template diffclean
+	make -C dos diffclean
+	make -C dos/go32v1 diffclean
+	make -C dos/go32v2 diffclean
+	make -C linux diffclean
+	make -C os2 diffclean
+	make -C win32 diffclean
+	-$(DEL) *.dif
 
+#
 # $Log$
-# Revision 1.1  1998-09-10 14:19:02  peter
+# Revision 1.2  1998-09-16 16:47:20  peter
+#   * merged fixes
+#
+# Revision 1.1.2.1  1998/09/16 16:17:46  peter
+#   * updates to install with go32,win32
+#
+# Revision 1.1	1998/09/10 14:19:02  peter
 #   - renamed
 #
 # Revision 1.10  1998/09/04 17:32:36  pierre
 #   * REDIR handling corrected
-#
+#

+ 9 - 5
rtl/dos/Makefile

@@ -1,13 +1,17 @@
 #
 # Minimalist version of a makefile, so make clean at least works.
 #
-.PHONY: clean install
+.PHONY: all clean install
+
+all:
+	-make -C go32v2 all
+	-make -C go32v1 all
 
 clean:
-	-$(MAKE) -C go32v2 clean
-	-$(MAKE) -C go32v1 clean
+	-make -C go32v2 clean
+	-make -C go32v1 clean
 
 install:
-	-$(MAKE) -C go32v2 install
-	-$(MAKE) -C go32v1 install
+	-make -C go32v2 install
+	-make -C go32v1 install
 

+ 9 - 13
rtl/dos/dos.pp

@@ -1014,10 +1014,6 @@ end;
 
 
 procedure getfattr(var f;var attr : word);
-{$ifndef GO32V2}
-var
-  n : array[0..255] of char;
-{$endif}
 begin
 {$ifdef GO32V2}
   copytodos(filerec(f).name,strlen(filerec(f).name)+1);
@@ -1030,8 +1026,7 @@ begin
    end
   else
 {$else}
-  strpcopy(n,filerec(f).name);
-  dosregs.edx:=longint(@n);
+  dosregs.edx:=longint(@filerec(f).name);
 {$endif GO32V2}
    dosregs.ax:=$4300;
   msdos(dosregs);
@@ -1041,10 +1036,6 @@ end;
 
 
 procedure setfattr(var f;attr : word);
-{$ifndef GO32V2}
-var
-  n : array[0..255] of char;
-{$endif}
 begin
 {$ifdef GO32V2}
   copytodos(filerec(f).name,strlen(filerec(f).name)+1);
@@ -1057,8 +1048,7 @@ begin
    end
   else
 {$else}
-  strpcopy(n,filerec(f).name);
-  dosregs.edx:=longint(@n);
+  dosregs.edx:=longint(@filerec(f).name);
 {$endif}
    dosregs.ax:=$4301;
   dosregs.cx:=attr;
@@ -1139,7 +1129,13 @@ End;
 end.
 {
   $Log$
-  Revision 1.12  1998-09-11 12:46:44  pierre
+  Revision 1.13  1998-09-16 16:47:24  peter
+    * merged fixes
+
+  Revision 1.11.2.2  1998/09/16 16:16:04  peter
+    * go32v1 compiles again
+
+  Revision 1.12  1998/09/11 12:46:44  pierre
     * range check problem with LFN attr removed
 
   Revision 1.11.2.1  1998/09/11 12:38:41  pierre

+ 56 - 44
rtl/dos/go32v1/Makefile

@@ -14,34 +14,39 @@
 #
 
 #####################################################################
-# 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.
+# Configuration section
 #####################################################################
 
-# What is the Operating System
-ifndef OS_SOURCE
-OS_SOURCE=go32v2
+# Use smartlinking ?
+ifndef SMARTLINK
+SMARTLINK=NO
 endif
 
-# What is the target operating system ?
-ifndef OS_TARGET
-OS_TARGET=go32v1
+# 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
 
-# What is the target processor :
-ifndef CPU
-CPU=i386
-#CPU=m68k
+# 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
 
+
 #####################################################################
-# End of configurable section.
-# Do not edit after this line.
+# Defaults
 #####################################################################
 
+# set target and cpu which are required
+OS_TARGET=go32v1
+CPU=i386
+
 # Where are the include files
 CFG=../../cfg
 INC=../../inc
@@ -50,14 +55,31 @@ OBJPASDIR=../../objpas
 # Where are the .ppi files.
 PPI=../ppi
 
-# 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 default makefile
+#####################################################################
+
 include $(CFG)/makefile.cfg
 
+
+#####################################################################
+# System dependent
+#####################################################################
+
+# Define Linux Units
+SYSTEMPPU=system$(PPUEXT)
+OBJECTS=strings go32 \
+	dos crt objects printer \
+	cpu mmx mouse getopts graph \
+
+LOADERS=prt0
+
+
+#####################################################################
+# Include system unit dependencies
+#####################################################################
+
 # Get the system independent include file names.
 # This will set the following variables :
 # SYSINCNAMES
@@ -70,27 +92,10 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 
-# Get the PPI file names
-# This sets the variable name PPIINCNAMES
-include $(PPI)/makefile.ppi
-PPIDEPS=$(addprefix $(PPI)/,$(PPIINCNAMES))
-
 # Put system unit dependencies together.
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
 
-#####################################################################
-# System dependent
-#####################################################################
-
-# Define Linux Units
-SYSTEMPPU=system$(PPUEXT)
-OBJECTS=strings go32 \
-	dos crt objects printer \
-	cpu mmx mouse getopts graph \
-
-LOADERS=prt0
-
 #####################################################################
 # System independent Makefile
 #####################################################################
@@ -99,7 +104,6 @@ LOADERS=prt0
 OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
 PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
 
-
 .PHONY : all install clean \
 	 libs libsclean \
 	 diffs diffclean \
@@ -113,7 +117,8 @@ install : all
 clean :
 	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) $(PPAS) link.res log
 	-$(DELTREE) *$(SMARTEXT)
-	make -C $(OBJPASDIR) clean
+	-make -C $(OBJPASDIR) clean
+
 
 #####################################################################
 # Files
@@ -210,6 +215,7 @@ graph$(PPUEXT) : ../graph.pp go32$(PPUEXT) $(SYSTEMPPU) mmx$(PPUEXT) $(PPIFILES)
 	$(COMPILER) -I$(PPI) graph $(REDIR)
 	$(DEL) graph.pp
 
+
 #####################################################################
 # Libs
 #####################################################################
@@ -234,6 +240,7 @@ libinstall: staticlibinstall
 libsclean : clean
 	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 
+
 #####################################################################
 # Default targets
 #####################################################################
@@ -242,10 +249,15 @@ include $(CFG)/makefile.def
 
 #
 # $Log$
-# Revision 1.2  1998-09-15 12:09:08  peter
+# Revision 1.3  1998-09-16 16:47:26  peter
+#   * merged fixes
+#
+# Revision 1.1.2.2  1998/09/16 16:17:49  peter
+#   * updates to install with go32,win32
+#
+# Revision 1.2  1998/09/15 12:09:08  peter
 #   * merged updates
 #
 # Revision 1.1.2.1  1998/09/15 12:02:02  peter
 #   * updates to get objpas using its own makefile
 #
-#

+ 60 - 40
rtl/dos/go32v2/Makefile

@@ -14,64 +14,54 @@
 #
 
 #####################################################################
-# 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.
+# Configuration section
 #####################################################################
 
-# What is the Operating System
-ifndef OS_SOURCE
-OS_SOURCE=go32v1
+# Use smartlinking ?
+ifndef SMARTLINK
+SMARTLINK=NO
 endif
 
-# What is the target operating system ?
-ifndef OS_TARGET
-OS_TARGET=go32v2
+# 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
 
-# What is the target processor :
-ifndef CPU
-CPU=i386
-#CPU=m68k
+# 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
 
+
 #####################################################################
-# End of configurable section.
-# Do not edit after this line.
+# Defaults
 #####################################################################
 
+# set target and cpu which are required
+OS_TARGET=go32v2
+CPU=i386
+
 # Where are the include files
+CFG=../../cfg
 INC=../../inc
 PROCINC=../../$(CPU)
-CFG=../../cfg
 OBJPASDIR=../../objpas
 # Where are the .ppi files.
 PPI=../ppi
 
-# Get some defaults for Programs and OSes.
-# This will set the following variables :
-# inlinux indos COPY REPLACE DEL INSTALL INSTALLEXE MKDIR
-# It will also set OPT for cross-compilation, and add required options.
-# also checks for config file.
-# it expects INC PROCINC to be set !!
-include $(CFG)/makefile.cfg
 
-# Get the system independent include file names.
-# This will set the following variables :
-# SYSINCNAMES
-include $(INC)/makefile.inc
-SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+#####################################################################
+# Include default makefile
+#####################################################################
 
-# Get the processor dependent include file names.
-# This will set the following variables :
-# CPUINCNAMES
-include $(PROCINC)/makefile.cpu
-SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+include $(CFG)/makefile.cfg
 
-# Put system unit dependencies together.
-SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
 #####################################################################
 # System dependent
@@ -87,6 +77,27 @@ OBJECTS=strings go32 \
 
 LOADERS=prt0 exceptn fpu
 
+
+#####################################################################
+# Include system unit dependencies
+#####################################################################
+
+# Get the system independent include file names.
+# This will set the following variables :
+# SYSINCNAMES
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+
+# Get the processor dependent include file names.
+# This will set the following variables :
+# CPUINCNAMES
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+
+# Put system unit dependencies together.
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+
+
 #####################################################################
 # System independent Makefile
 #####################################################################
@@ -108,7 +119,8 @@ install : all
 clean :
 	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) $(PPAS) link.res log
 	-$(DELTREE) *$(SMARTEXT)
-	make -C $(OBJPASDIR) clean
+	-make -C $(OBJPASDIR) clean
+
 
 #####################################################################
 # Files
@@ -223,6 +235,7 @@ graph$(PPUEXT) : ../graph.pp go32$(PPUEXT) $(SYSTEMPPU) mmx$(PPUEXT) $(PPIFILES)
 	$(COMPILER) -I$(PPI) graph $(REDIR)
 	$(DEL) graph.pp
 
+
 #####################################################################
 # Libs
 #####################################################################
@@ -237,7 +250,7 @@ sharedlib:
 staticlibinstall: staticlib
 	$(MKDIR) $(STATIC_LIBINSTALLDIR)
 	$(MKDIR) $(STATIC_UNITINSTALLDIR)
-	$(INSTALLEXE) fpc$(STATICLIBEXT) $(STATIC_LIBINSTALLDIR)
+	$(INSTALLEXE) *$(STATICLIBEXT) $(STATIC_LIBINSTALLDIR)
 	$(INSTALL) *$(PPUEXT) *$(OEXT) $(STATIC_UNITINSTALLDIR)
 
 sharedlibinstall: sharedlib
@@ -247,6 +260,7 @@ libinstall: staticlibinstall
 libsclean : clean
 	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 
+
 #####################################################################
 # Default targets
 #####################################################################
@@ -255,7 +269,13 @@ include $(CFG)/makefile.def
 
 #
 # $Log$
-# Revision 1.2  1998-09-15 12:09:09  peter
+# 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

+ 10 - 1
rtl/dos/graph.pp

@@ -19,6 +19,9 @@ unit GRAPH;
 { $DEFINE DEBUG}
 {$I os.inc}
 
+{ Don't use smartlinking, becuase of the direct assembler that is used }
+{$SMARTLINK OFF}
+
 interface
 
 uses go32,mmx;
@@ -828,7 +831,13 @@ end.
 
 {
   $Log$
-  Revision 1.4  1998-05-31 14:18:14  peter
+  Revision 1.5  1998-09-16 16:47:25  peter
+    * merged fixes
+
+  Revision 1.4.2.1  1998/09/16 16:15:41  peter
+    * no smartlinking!
+
+  Revision 1.4  1998/05/31 14:18:14  peter
     * force att or direct assembling
     * cleanup of some files
 

+ 9 - 3
rtl/objpas/Makefile

@@ -78,7 +78,7 @@ ifdef UNITTARGETDIR
 ifdef UNITOBJECTS
 	$(COPY) $(UNITFILES) $(UNITTARGETDIR)
 ifeq ($(SMARTLINK),YES)
-	$(COPY) lib$(LIBNAME)$(LIBEXT) $(UNITTARGETDIR)
+	$(COPY) $(LIBPREFIX)$(LIBNAME)$(LIBEXT) $(UNITTARGETDIR)
 else
 	$(COPY) $(UNITOFILES) $(UNITTARGETDIR)
 endif
@@ -94,7 +94,7 @@ endif
 ifdef UNITOBJECTS
 	$(MKDIR) $(UNITINSTALLDIR)
 ifeq ($(SMARTLINK),YES)
-	$(INSTALL) lib$(LIBNAME)$(LIBEXT) $(UNITINSTALLDIR)
+	$(INSTALL) $(LIBPREFIX)$(LIBNAME)$(LIBEXT) $(UNITINSTALLDIR)
 else
 	$(INSTALL) $(UNITFILES) $(UNITOFILES) $(UNITINSTALLDIR)
 endif
@@ -120,9 +120,15 @@ include $(CFG)/makefile.def
 
 #
 # $Log$
-# Revision 1.3  1998-09-15 12:09:12  peter
+# Revision 1.4  1998-09-16 16:47:29  peter
+#   * merged fixes
+#
+# Revision 1.3  1998/09/15 12:09:12  peter
 #   * merged updates
 #
+# Revision 1.2.2.2  1998/09/16 16:17:51  peter
+#   * updates to install with go32,win32
+#
 # Revision 1.2.2.1  1998/09/15 12:02:05  peter
 #   * updates to get objpas using its own makefile
 #

+ 52 - 16
rtl/template/Makefile

@@ -3,7 +3,7 @@
 #   This file is part of the Free Pascal run time library.
 #   Copyright (c) 1998 by the Free Pascal Development Team
 #
-#   Makefile for the Free Pascal <Template>
+#   Makefile for the <Template>
 #
 #   See the file COPYING.FPC, included in this distribution,
 #   for details about the copyright.
@@ -14,23 +14,27 @@
 #
 
 #####################################################################
-# Include configuration makefile
+# Defaults
 #####################################################################
 
 # Where are the include files ?
-CFG=../cfg
-#INC=../inc
-#PROCINC=../$(CPU)
-#OBJPAS=../objpas
+RTL=..
+CFG=$(RTL)/cfg
+#INC=$(RTL)/inc
+#PROCINC=$(RTL)/$(CPU)
+
+
+#####################################################################
+# Include configuration makefile
+#####################################################################
 
 # Get some defaults for Programs and OSes.
-# This will set the following variables :
+# This will at least set the following variables :
 # inlinux 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 CFG INC PROCINC to be set !!
+# INSTALLDIR UNITDIR PPOPT PP CPU COMPILER
 include $(CFG)/makefile.cfg
 
+
 #####################################################################
 # Objects
 #####################################################################
@@ -38,6 +42,7 @@ include $(CFG)/makefile.cfg
 EXEOBJECTS=
 UNITOBJECTS=
 
+
 #####################################################################
 # Main targets
 #####################################################################
@@ -49,13 +54,33 @@ UNITOFILES=$(addsuffix $(OEXT),$(UNITOBJECTS))
 
 .PHONY : all clean diffs install diffclean
 
-all : $(EXEFILES) $(UNITFILES)
+
+all : $(EXEFILES) $(UNITFILES) targetdir
 
 $(EXEFILES): %$(EXEEXT): %$(PASEXT)
-	$(PP) $(OPT) $* 
+	$(COMPILER) $*
 
 $(UNITFILES): %$(PPUEXT): %$(PASEXT)
-	$(PP) $(OPT) $* 
+	$(COMPILER) $*
+
+
+targetdir:
+ifdef UNITTARGETDIR
+ifdef EXEOBJECTS
+	$(COPY) $(EXEFILES) $(BINTARGETDIR)
+endif
+endif
+ifdef UNITTARGETDIR
+ifdef UNITOBJECTS
+	$(COPY) $(UNITFILES) $(UNITTARGETDIR)
+ifeq ($(SMARTLINK),YES)
+	$(COPY) $(LIBPREFIX)$(LIBNAME)$(LIBEXT) $(UNITTARGETDIR)
+else
+	$(COPY) $(UNITOFILES) $(UNITTARGETDIR)
+endif
+endif
+endif
+
 
 install : all
 ifdef EXEOBJECTS
@@ -64,19 +89,27 @@ ifdef EXEOBJECTS
 endif
 ifdef UNITOBJECTS
 	$(MKDIR) $(UNITINSTALLDIR)
+ifeq ($(SMARTLINK),YES)
+	$(INSTALL) $(LIBPREFIX)$(LIBNAME)$(LIBEXT) $(UNITINSTALLDIR)
+else
 	$(INSTALL) $(UNITFILES) $(UNITOFILES) $(UNITINSTALLDIR)
 endif
+endif
+
 
 clean:
-	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) $(PPAS) link.res log
+	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) $(PPAS) link.res log
+	-$(DELTREE) *$(SMARTEXT)
 ifdef EXEOBJECTS
 	-$(DEL) $(EXEFILES)
 endif
 
+
 #####################################################################
 # Files
 #####################################################################
 
+
 #####################################################################
 # Default makefile targets
 #####################################################################
@@ -85,7 +118,10 @@ include $(CFG)/makefile.def
 
 #
 # $Log$
-# Revision 1.1  1998-09-10 13:55:07  peter
-#   * updates
+# Revision 1.2  1998-09-16 16:47:30  peter
+#   * merged fixes
+#
+# Revision 1.1.2.1  1998/09/16 16:17:53  peter
+#   * updates to install with go32,win32
 #
 #

+ 52 - 49
rtl/win32/Makefile

@@ -14,29 +14,9 @@
 #
 
 #####################################################################
-# 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.
+# Configuration section
 #####################################################################
 
-# What is the Operating System ?
-ifndef OS_SOURCE
-OS_SOURCE=win32
-endif
-
-# What is the target operating system ?
-ifndef OS_TARGET
-OS_TARGET=win32
-endif
-
-# What is the target processor :
-ifndef CPU
-CPU=i386
-#CPU=m68k
-endif
-
 # Use smartlinking ?
 ifndef SMARTLINK
 SMARTLINK=NO
@@ -58,29 +38,51 @@ LIBTYPE=
 #LIBTYPE=static
 endif
 
-#####################################################################
-# End of configurable section.
-# Do not edit after this line.
-#####################################################################
 
 #####################################################################
-# System independent
+# Defaults
 #####################################################################
 
+# set target and cpu which are required
+override OS_TARGET=win32
+override CPU=i386
+
 # Where are the include files ?
 INC=../inc
 PROCINC=../$(CPU)
 CFG=../cfg
 OBJPASDIR=../objpas
 
-# Get some defaults for Programs and OSes.
-# This will set the following variables :
-# inlinux indos COPY REPLACE DEL INSTALL INSTALLEXE MKDIR
-# It will also set OPT for cross-compilation, and add required options.
-# also checks for config file.
-# it expects INC PROCINC to be set !!
+
+#####################################################################
+# Include default makefile
+#####################################################################
+
 include $(CFG)/makefile.cfg
 
+
+#####################################################################
+# System dependent
+#####################################################################
+
+# Define Win32 Units
+SYSTEMPPU=syswin32$(PPUEXT)
+OBJECTS=strings dos \
+	windows \
+	cpu mmx getopts
+
+# Files used by windows.pp
+WINDOWS_FILES=base errors defines \
+	struct ascfun ascdef \
+	unifun unidef func
+
+WINDOWS_SOURCE_FILES=$(addsuffix .pp,$(WINDOWS_FILES))
+
+
+#####################################################################
+# Include system unit dependencies
+#####################################################################
+
 # Get the system independent include file names.
 # This will set the following variables :
 # SYSINCNAMES
@@ -96,30 +98,19 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 # Put system unit dependencies together.
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 
+
 #####################################################################
-# System dependent
+# System independent Makefile
 #####################################################################
 
-# Define Linux Units
-SYSTEMPPU=syswin32$(PPUEXT)
-OBJECTS=strings dos \
-	windows \
-	cpu mmx getopts
-
-# Files used by windows.pp
-WINDOWS_FILES=base errors defines \
-	struct ascfun ascdef \
-	unifun unidef func
-
 # Add Prefix and Suffixes
+OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
 PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
 
-WINDOWS_SOURCE_FILES=$(addsuffix .pp,$(WINDOWS_FILES))
-
 .PHONY : all install clean \
 	 libs libsclean \
 	 diffs diffclean \
-	dllnames test
+	 dllnames test
 
 all : $(OBJLOADERS) $(PPUOBJECTS) objpas
 
@@ -130,7 +121,8 @@ install : all
 clean :
 	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) log
 	-$(DELTREE) *$(SMARTEXT)
-	make -C $(OBJPASDIR) clean
+	-make -C $(OBJPASDIR) clean
+
 
 #####################################################################
 # Files
@@ -234,6 +226,11 @@ libinstall: staticlibinstall
 libsclean : clean
 	-$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 
+
+#####################################################################
+# windows.pp
+#####################################################################
+
 # Getting DLL names
 # not present in headers !!
 
@@ -369,7 +366,13 @@ include $(CFG)/makefile.def
 
 #
 # $Log$
-# Revision 1.3  1998-09-15 12:09:13  peter
+# 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