Browse Source

* regenerated

peter 25 years ago
parent
commit
ffaf1b5adc
60 changed files with 3949 additions and 5218 deletions
  1. 34 77
      api/Makefile
  2. 64 80
      api/go32v2/Makefile
  3. 64 80
      api/linux/Makefile
  4. 64 80
      api/win32/Makefile
  5. 36 188
      base/Makefile
  6. 78 74
      compiler/Makefile
  7. 70 153
      compiler/new/Makefile
  8. 34 77
      fcl/Makefile
  9. 62 80
      fcl/db/Makefile
  10. 64 80
      fcl/go32v2/Makefile
  11. 64 80
      fcl/linux/Makefile
  12. 64 80
      fcl/os2/Makefile
  13. 62 80
      fcl/shedit/gtk/Makefile
  14. 62 80
      fcl/tests/Makefile
  15. 64 80
      fcl/win32/Makefile
  16. 23 66
      ide/Makefile
  17. 23 66
      ide/fake/Makefile
  18. 62 80
      ide/fake/compiler/Makefile
  19. 62 80
      ide/fake/gdb/Makefile
  20. 62 80
      ide/text/Makefile
  21. 92 157
      install/Makefile
  22. 62 80
      install/demo/Makefile
  23. 62 80
      install/fpinst/Makefile
  24. 2 2
      install/man/Makefile
  25. 595 349
      packages/Makefile
  26. 62 80
      packages/forms/Makefile
  27. 62 80
      packages/forms/demo/Makefile
  28. 62 80
      packages/gdbint/Makefile
  29. 14 58
      packages/gdbint/libgdb/Makefile
  30. 62 80
      packages/ggi/Makefile
  31. 62 80
      packages/gtk/Makefile
  32. 62 80
      packages/gtk/examples/Makefile
  33. 62 80
      packages/gtk/tutorial/Makefile
  34. 62 80
      packages/ibase/Makefile
  35. 62 80
      packages/inet/Makefile
  36. 62 80
      packages/mysql/Makefile
  37. 62 80
      packages/ncurses/Makefile
  38. 27 74
      packages/opengl/Makefile
  39. 62 80
      packages/opengl/build/Makefile
  40. 62 80
      packages/opengl/examples/Makefile
  41. 62 80
      packages/opengl/linux/Makefile
  42. 62 80
      packages/paszlib/Makefile
  43. 62 80
      packages/postgres/Makefile
  44. 62 80
      packages/svgalib/Makefile
  45. 62 80
      packages/uncgi/Makefile
  46. 62 80
      packages/utmp/Makefile
  47. 62 80
      packages/x11/Makefile
  48. 62 80
      packages/zlib/Makefile
  49. 34 77
      rtl/Makefile
  50. 61 89
      rtl/go32v1/Makefile
  51. 61 89
      rtl/go32v2/Makefile
  52. 61 89
      rtl/linux/Makefile
  53. 61 89
      rtl/os2/Makefile
  54. 61 89
      rtl/win32/Makefile
  55. 14 64
      tests/Makefile
  56. 74 91
      utils/Makefile
  57. 62 80
      utils/fprcp/Makefile
  58. 62 80
      utils/h2pas/Makefile
  59. 62 80
      utils/simulator/Makefile
  60. 62 80
      utils/tply/Makefile

+ 34 - 77
api/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -172,61 +158,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection
@@ -270,7 +226,7 @@ sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET))
 
 
 zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
 zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
 
 
-zipinstalladd: $(addsuffix _zipinstalladd,$(OS_TARGET))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(OS_TARGET))
 
 
 clean: $(addsuffix _clean,$(OS_TARGET))
 clean: $(addsuffix _clean,$(OS_TARGET))
 
 
@@ -280,10 +236,11 @@ require: $(addsuffix _require,$(OS_TARGET))
 
 
 info: $(addsuffix _info,$(OS_TARGET))
 info: $(addsuffix _info,$(OS_TARGET))
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall require info
-
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall require info
 
 
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRGO32V2=1
 OBJECTDIRGO32V2=1
 OBJECTDIRLINUX=1
 OBJECTDIRLINUX=1
@@ -294,7 +251,7 @@ OBJECTDIRTEST=1
 # Dir go32v2
 # Dir go32v2
 
 
 ifdef OBJECTDIRGO32V2
 ifdef OBJECTDIRGO32V2
-.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipinstalladd go32v2_clean go32v2_cleanall go32v2_require go32v2_info
+.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipsourceinstall go32v2_clean go32v2_cleanall go32v2_require go32v2_info
 
 
 go32v2_all:
 go32v2_all:
 	$(MAKE) -C go32v2 all
 	$(MAKE) -C go32v2 all
@@ -326,8 +283,8 @@ go32v2_sourceinstall:
 go32v2_zipinstall:
 go32v2_zipinstall:
 	$(MAKE) -C go32v2 zipinstall
 	$(MAKE) -C go32v2 zipinstall
 
 
-go32v2_zipinstalladd:
-	$(MAKE) -C go32v2 zipinstalladd
+go32v2_zipsourceinstall:
+	$(MAKE) -C go32v2 zipsourceinstall
 
 
 go32v2_clean:
 go32v2_clean:
 	$(MAKE) -C go32v2 clean
 	$(MAKE) -C go32v2 clean
@@ -345,7 +302,7 @@ endif
 # Dir linux
 # Dir linux
 
 
 ifdef OBJECTDIRLINUX
 ifdef OBJECTDIRLINUX
-.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipinstalladd linux_clean linux_cleanall linux_require linux_info
+.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipsourceinstall linux_clean linux_cleanall linux_require linux_info
 
 
 linux_all:
 linux_all:
 	$(MAKE) -C linux all
 	$(MAKE) -C linux all
@@ -377,8 +334,8 @@ linux_sourceinstall:
 linux_zipinstall:
 linux_zipinstall:
 	$(MAKE) -C linux zipinstall
 	$(MAKE) -C linux zipinstall
 
 
-linux_zipinstalladd:
-	$(MAKE) -C linux zipinstalladd
+linux_zipsourceinstall:
+	$(MAKE) -C linux zipsourceinstall
 
 
 linux_clean:
 linux_clean:
 	$(MAKE) -C linux clean
 	$(MAKE) -C linux clean
@@ -396,7 +353,7 @@ endif
 # Dir win32
 # Dir win32
 
 
 ifdef OBJECTDIRWIN32
 ifdef OBJECTDIRWIN32
-.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipinstalladd win32_clean win32_cleanall win32_require win32_info
+.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipsourceinstall win32_clean win32_cleanall win32_require win32_info
 
 
 win32_all:
 win32_all:
 	$(MAKE) -C win32 all
 	$(MAKE) -C win32 all
@@ -428,8 +385,8 @@ win32_sourceinstall:
 win32_zipinstall:
 win32_zipinstall:
 	$(MAKE) -C win32 zipinstall
 	$(MAKE) -C win32 zipinstall
 
 
-win32_zipinstalladd:
-	$(MAKE) -C win32 zipinstalladd
+win32_zipsourceinstall:
+	$(MAKE) -C win32 zipsourceinstall
 
 
 win32_clean:
 win32_clean:
 	$(MAKE) -C win32 clean
 	$(MAKE) -C win32 clean
@@ -447,7 +404,7 @@ endif
 # Dir os2
 # Dir os2
 
 
 ifdef OBJECTDIROS2
 ifdef OBJECTDIROS2
-.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipinstalladd os2_clean os2_cleanall os2_require os2_info
+.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipsourceinstall os2_clean os2_cleanall os2_require os2_info
 
 
 os2_all:
 os2_all:
 	$(MAKE) -C os2 all
 	$(MAKE) -C os2 all
@@ -479,8 +436,8 @@ os2_sourceinstall:
 os2_zipinstall:
 os2_zipinstall:
 	$(MAKE) -C os2 zipinstall
 	$(MAKE) -C os2 zipinstall
 
 
-os2_zipinstalladd:
-	$(MAKE) -C os2 zipinstalladd
+os2_zipsourceinstall:
+	$(MAKE) -C os2 zipsourceinstall
 
 
 os2_clean:
 os2_clean:
 	$(MAKE) -C os2 clean
 	$(MAKE) -C os2 clean
@@ -498,7 +455,7 @@ endif
 # Dir test
 # Dir test
 
 
 ifdef OBJECTDIRTEST
 ifdef OBJECTDIRTEST
-.PHONY:  test_all test_debug test_examples test_test test_smart test_shared test_showinstall test_install test_sourceinstall test_zipinstall test_zipinstalladd test_clean test_cleanall test_require test_info
+.PHONY:  test_all test_debug test_examples test_test test_smart test_shared test_showinstall test_install test_sourceinstall test_zipinstall test_zipsourceinstall test_clean test_cleanall test_require test_info
 
 
 test_all:
 test_all:
 	$(MAKE) -C test all
 	$(MAKE) -C test all
@@ -530,8 +487,8 @@ test_sourceinstall:
 test_zipinstall:
 test_zipinstall:
 	$(MAKE) -C test zipinstall
 	$(MAKE) -C test zipinstall
 
 
-test_zipinstalladd:
-	$(MAKE) -C test zipinstalladd
+test_zipsourceinstall:
+	$(MAKE) -C test zipsourceinstall
 
 
 test_clean:
 test_clean:
 	$(MAKE) -C test clean
 	$(MAKE) -C test clean

+ 64 - 80
api/go32v2/Makefile

@@ -168,6 +168,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -189,6 +190,8 @@ override EXAMPLEOBJECTS+=$(TESTOBJECTS)
 # Install
 # Install
 
 
 UNITSUBDIR=api
 UNITSUBDIR=api
+SOURCESUBDIR=api
+SOURCETOPDIR=..
 PACKAGENAME=api
 PACKAGENAME=api
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -326,17 +329,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -381,28 +373,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -414,8 +384,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -432,7 +420,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -443,19 +430,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -467,7 +451,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -479,7 +462,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -571,6 +553,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -617,6 +605,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -766,7 +757,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -774,7 +765,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -870,7 +861,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -932,21 +923,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -957,43 +958,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1001,14 +979,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1095,6 +1076,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 64 - 80
api/linux/Makefile

@@ -168,6 +168,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -189,6 +190,8 @@ override EXAMPLEOBJECTS+=$(TESTOBJECTS)
 # Install
 # Install
 
 
 UNITSUBDIR=api
 UNITSUBDIR=api
+SOURCESUBDIR=api
+SOURCETOPDIR=..
 PACKAGENAME=api
 PACKAGENAME=api
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -326,17 +329,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -381,28 +373,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -414,8 +384,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -432,7 +420,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -443,19 +430,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -467,7 +451,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -479,7 +462,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -571,6 +553,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -617,6 +605,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -766,7 +757,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -774,7 +765,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -870,7 +861,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -932,21 +923,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -957,43 +958,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1001,14 +979,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1095,6 +1076,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 64 - 80
api/win32/Makefile

@@ -168,6 +168,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -189,6 +190,8 @@ override EXAMPLEOBJECTS+=$(TESTOBJECTS)
 # Install
 # Install
 
 
 UNITSUBDIR=api
 UNITSUBDIR=api
+SOURCESUBDIR=api
+SOURCETOPDIR=..
 PACKAGENAME=api
 PACKAGENAME=api
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -326,17 +329,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -381,28 +373,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -414,8 +384,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -432,7 +420,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -443,19 +430,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -467,7 +451,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -479,7 +462,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -571,6 +553,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -617,6 +605,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -766,7 +757,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -774,7 +765,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -870,7 +861,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -932,21 +923,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -957,43 +958,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1001,14 +979,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1095,6 +1076,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 36 - 188
base/Makefile

@@ -142,20 +142,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -180,7 +166,6 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
@@ -303,98 +288,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG)) -D9 -r
-endif
-endif
-export ZIPPROG
-
-ifndef ZIPEXT
-ZIPEXT=.zip
-endif
-
 #####################################################################
 #####################################################################
 # Default extensions
 # Default extensions
 #####################################################################
 #####################################################################
@@ -409,7 +302,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -420,19 +312,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -444,7 +333,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -456,7 +344,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -484,55 +371,6 @@ endif
 endif
 endif
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-
 
 
 #####################################################################
 #####################################################################
 # Default Directories
 # Default Directories
@@ -548,6 +386,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -594,6 +438,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -658,8 +505,9 @@ require: $(addsuffix _require,$(DIROBJECTS))
 
 
 .PHONY:  all debug examples test smart shared showinstall install sourceinstall clean cleanall require
 .PHONY:  all debug examples test smart shared showinstall install sourceinstall clean cleanall require
 
 
-
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRCOMPILER=1
 OBJECTDIRCOMPILER=1
 OBJECTDIRRTL=1
 OBJECTDIRRTL=1
@@ -673,7 +521,7 @@ OBJECTDIRIDE=1
 # Dir compiler
 # Dir compiler
 
 
 ifdef OBJECTDIRCOMPILER
 ifdef OBJECTDIRCOMPILER
-.PHONY:  compiler_all compiler_debug compiler_examples compiler_test compiler_smart compiler_shared compiler_showinstall compiler_install compiler_sourceinstall compiler_zipinstall compiler_zipinstalladd compiler_clean compiler_cleanall compiler_require compiler_info
+.PHONY:  compiler_all compiler_debug compiler_examples compiler_test compiler_smart compiler_shared compiler_showinstall compiler_install compiler_sourceinstall compiler_zipinstall compiler_zipsourceinstall compiler_clean compiler_cleanall compiler_require compiler_info
 
 
 compiler_all:
 compiler_all:
 	$(MAKE) -C compiler all
 	$(MAKE) -C compiler all
@@ -705,8 +553,8 @@ compiler_sourceinstall:
 compiler_zipinstall:
 compiler_zipinstall:
 	$(MAKE) -C compiler zipinstall
 	$(MAKE) -C compiler zipinstall
 
 
-compiler_zipinstalladd:
-	$(MAKE) -C compiler zipinstalladd
+compiler_zipsourceinstall:
+	$(MAKE) -C compiler zipsourceinstall
 
 
 compiler_clean:
 compiler_clean:
 	$(MAKE) -C compiler clean
 	$(MAKE) -C compiler clean
@@ -724,7 +572,7 @@ endif
 # Dir rtl
 # Dir rtl
 
 
 ifdef OBJECTDIRRTL
 ifdef OBJECTDIRRTL
-.PHONY:  rtl_all rtl_debug rtl_examples rtl_test rtl_smart rtl_shared rtl_showinstall rtl_install rtl_sourceinstall rtl_zipinstall rtl_zipinstalladd rtl_clean rtl_cleanall rtl_require rtl_info
+.PHONY:  rtl_all rtl_debug rtl_examples rtl_test rtl_smart rtl_shared rtl_showinstall rtl_install rtl_sourceinstall rtl_zipinstall rtl_zipsourceinstall rtl_clean rtl_cleanall rtl_require rtl_info
 
 
 rtl_all:
 rtl_all:
 	$(MAKE) -C rtl all
 	$(MAKE) -C rtl all
@@ -756,8 +604,8 @@ rtl_sourceinstall:
 rtl_zipinstall:
 rtl_zipinstall:
 	$(MAKE) -C rtl zipinstall
 	$(MAKE) -C rtl zipinstall
 
 
-rtl_zipinstalladd:
-	$(MAKE) -C rtl zipinstalladd
+rtl_zipsourceinstall:
+	$(MAKE) -C rtl zipsourceinstall
 
 
 rtl_clean:
 rtl_clean:
 	$(MAKE) -C rtl clean
 	$(MAKE) -C rtl clean
@@ -775,7 +623,7 @@ endif
 # Dir utils
 # Dir utils
 
 
 ifdef OBJECTDIRUTILS
 ifdef OBJECTDIRUTILS
-.PHONY:  utils_all utils_debug utils_examples utils_test utils_smart utils_shared utils_showinstall utils_install utils_sourceinstall utils_zipinstall utils_zipinstalladd utils_clean utils_cleanall utils_require utils_info
+.PHONY:  utils_all utils_debug utils_examples utils_test utils_smart utils_shared utils_showinstall utils_install utils_sourceinstall utils_zipinstall utils_zipsourceinstall utils_clean utils_cleanall utils_require utils_info
 
 
 utils_all:
 utils_all:
 	$(MAKE) -C utils all
 	$(MAKE) -C utils all
@@ -807,8 +655,8 @@ utils_sourceinstall:
 utils_zipinstall:
 utils_zipinstall:
 	$(MAKE) -C utils zipinstall
 	$(MAKE) -C utils zipinstall
 
 
-utils_zipinstalladd:
-	$(MAKE) -C utils zipinstalladd
+utils_zipsourceinstall:
+	$(MAKE) -C utils zipsourceinstall
 
 
 utils_clean:
 utils_clean:
 	$(MAKE) -C utils clean
 	$(MAKE) -C utils clean
@@ -826,7 +674,7 @@ endif
 # Dir fcl
 # Dir fcl
 
 
 ifdef OBJECTDIRFCL
 ifdef OBJECTDIRFCL
-.PHONY:  fcl_all fcl_debug fcl_examples fcl_test fcl_smart fcl_shared fcl_showinstall fcl_install fcl_sourceinstall fcl_zipinstall fcl_zipinstalladd fcl_clean fcl_cleanall fcl_require fcl_info
+.PHONY:  fcl_all fcl_debug fcl_examples fcl_test fcl_smart fcl_shared fcl_showinstall fcl_install fcl_sourceinstall fcl_zipinstall fcl_zipsourceinstall fcl_clean fcl_cleanall fcl_require fcl_info
 
 
 fcl_all:
 fcl_all:
 	$(MAKE) -C fcl all
 	$(MAKE) -C fcl all
@@ -858,8 +706,8 @@ fcl_sourceinstall:
 fcl_zipinstall:
 fcl_zipinstall:
 	$(MAKE) -C fcl zipinstall
 	$(MAKE) -C fcl zipinstall
 
 
-fcl_zipinstalladd:
-	$(MAKE) -C fcl zipinstalladd
+fcl_zipsourceinstall:
+	$(MAKE) -C fcl zipsourceinstall
 
 
 fcl_clean:
 fcl_clean:
 	$(MAKE) -C fcl clean
 	$(MAKE) -C fcl clean
@@ -877,7 +725,7 @@ endif
 # Dir api
 # Dir api
 
 
 ifdef OBJECTDIRAPI
 ifdef OBJECTDIRAPI
-.PHONY:  api_all api_debug api_examples api_test api_smart api_shared api_showinstall api_install api_sourceinstall api_zipinstall api_zipinstalladd api_clean api_cleanall api_require api_info
+.PHONY:  api_all api_debug api_examples api_test api_smart api_shared api_showinstall api_install api_sourceinstall api_zipinstall api_zipsourceinstall api_clean api_cleanall api_require api_info
 
 
 api_all:
 api_all:
 	$(MAKE) -C api all
 	$(MAKE) -C api all
@@ -909,8 +757,8 @@ api_sourceinstall:
 api_zipinstall:
 api_zipinstall:
 	$(MAKE) -C api zipinstall
 	$(MAKE) -C api zipinstall
 
 
-api_zipinstalladd:
-	$(MAKE) -C api zipinstalladd
+api_zipsourceinstall:
+	$(MAKE) -C api zipsourceinstall
 
 
 api_clean:
 api_clean:
 	$(MAKE) -C api clean
 	$(MAKE) -C api clean
@@ -928,7 +776,7 @@ endif
 # Dir fv
 # Dir fv
 
 
 ifdef OBJECTDIRFV
 ifdef OBJECTDIRFV
-.PHONY:  fv_all fv_debug fv_examples fv_test fv_smart fv_shared fv_showinstall fv_install fv_sourceinstall fv_zipinstall fv_zipinstalladd fv_clean fv_cleanall fv_require fv_info
+.PHONY:  fv_all fv_debug fv_examples fv_test fv_smart fv_shared fv_showinstall fv_install fv_sourceinstall fv_zipinstall fv_zipsourceinstall fv_clean fv_cleanall fv_require fv_info
 
 
 fv_all:
 fv_all:
 	$(MAKE) -C fv all
 	$(MAKE) -C fv all
@@ -960,8 +808,8 @@ fv_sourceinstall:
 fv_zipinstall:
 fv_zipinstall:
 	$(MAKE) -C fv zipinstall
 	$(MAKE) -C fv zipinstall
 
 
-fv_zipinstalladd:
-	$(MAKE) -C fv zipinstalladd
+fv_zipsourceinstall:
+	$(MAKE) -C fv zipsourceinstall
 
 
 fv_clean:
 fv_clean:
 	$(MAKE) -C fv clean
 	$(MAKE) -C fv clean
@@ -979,7 +827,7 @@ endif
 # Dir packages
 # Dir packages
 
 
 ifdef OBJECTDIRPACKAGES
 ifdef OBJECTDIRPACKAGES
-.PHONY:  packages_all packages_debug packages_examples packages_test packages_smart packages_shared packages_showinstall packages_install packages_sourceinstall packages_zipinstall packages_zipinstalladd packages_clean packages_cleanall packages_require packages_info
+.PHONY:  packages_all packages_debug packages_examples packages_test packages_smart packages_shared packages_showinstall packages_install packages_sourceinstall packages_zipinstall packages_zipsourceinstall packages_clean packages_cleanall packages_require packages_info
 
 
 packages_all:
 packages_all:
 	$(MAKE) -C packages all
 	$(MAKE) -C packages all
@@ -1011,8 +859,8 @@ packages_sourceinstall:
 packages_zipinstall:
 packages_zipinstall:
 	$(MAKE) -C packages zipinstall
 	$(MAKE) -C packages zipinstall
 
 
-packages_zipinstalladd:
-	$(MAKE) -C packages zipinstalladd
+packages_zipsourceinstall:
+	$(MAKE) -C packages zipsourceinstall
 
 
 packages_clean:
 packages_clean:
 	$(MAKE) -C packages clean
 	$(MAKE) -C packages clean
@@ -1030,7 +878,7 @@ endif
 # Dir ide
 # Dir ide
 
 
 ifdef OBJECTDIRIDE
 ifdef OBJECTDIRIDE
-.PHONY:  ide_all ide_debug ide_examples ide_test ide_smart ide_shared ide_showinstall ide_install ide_sourceinstall ide_zipinstall ide_zipinstalladd ide_clean ide_cleanall ide_require ide_info
+.PHONY:  ide_all ide_debug ide_examples ide_test ide_smart ide_shared ide_showinstall ide_install ide_sourceinstall ide_zipinstall ide_zipsourceinstall ide_clean ide_cleanall ide_require ide_info
 
 
 ide_all:
 ide_all:
 	$(MAKE) -C ide all
 	$(MAKE) -C ide all
@@ -1062,8 +910,8 @@ ide_sourceinstall:
 ide_zipinstall:
 ide_zipinstall:
 	$(MAKE) -C ide zipinstall
 	$(MAKE) -C ide zipinstall
 
 
-ide_zipinstalladd:
-	$(MAKE) -C ide zipinstalladd
+ide_zipsourceinstall:
+	$(MAKE) -C ide zipsourceinstall
 
 
 ide_clean:
 ide_clean:
 	$(MAKE) -C ide clean
 	$(MAKE) -C ide clean

+ 78 - 74
compiler/Makefile

@@ -200,6 +200,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -377,17 +378,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -432,6 +422,28 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
+# cmp
+ifndef CMP
+CMP:=$(strip $(wildcard $(addsuffix /cmp$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(CMP),)
+CMP=
+else
+CMP:=$(firstword $(CMP))
+endif
+endif
+export CMP
+
+# diff
+ifndef DIFF
+DIFF:=$(strip $(wildcard $(addsuffix /diff$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(DIFF),)
+DIFF=
+else
+DIFF:=$(firstword $(DIFF))
+endif
+endif
+export DIFF
+
 # gdate/date
 # gdate/date
 ifndef DATE
 ifndef DATE
 DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
 DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
@@ -465,31 +477,27 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
-endif
 
 
-# cmp
-ifndef CMP
-CMP:=$(strip $(wildcard $(addsuffix /cmp$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(CMP),)
-CMP=
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
 else
 else
-CMP:=$(firstword $(CMP))
+TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 endif
 endif
-export CMP
+export TARPROG
 
 
-# diff
-ifndef DIFF
-DIFF:=$(strip $(wildcard $(addsuffix /diff$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DIFF),)
-DIFF=
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
 else
 else
-DIFF:=$(firstword $(DIFF))
-endif
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
-export DIFF
 
 
 #####################################################################
 #####################################################################
 # Default extensions
 # Default extensions
@@ -505,7 +513,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -516,19 +523,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -540,7 +544,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -552,7 +555,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -644,6 +646,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -690,6 +698,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -835,13 +846,13 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  debug smart shared showinstall sourceinstall zipinstall zipinstalladd cleanall info
+.PHONY:  debug smart shared showinstall sourceinstall zipinstall zipsourceinstall cleanall info
 
 
 #####################################################################
 #####################################################################
 # General compile rules
 # General compile rules
@@ -908,7 +919,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -970,21 +981,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -995,43 +1016,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1039,14 +1037,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1133,6 +1134,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 70 - 153
compiler/new/Makefile

@@ -206,20 +206,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -249,7 +235,6 @@ endif
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
@@ -394,17 +379,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -449,27 +423,27 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
+# cmp
+ifndef CMP
+CMP:=$(strip $(wildcard $(addsuffix /cmp$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(CMP),)
+CMP=
 else
 else
-DATE:=$(firstword $(DATE))
+CMP:=$(firstword $(CMP))
 endif
 endif
 endif
 endif
-export DATE
+export CMP
 
 
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
+# diff
+ifndef DIFF
+DIFF:=$(strip $(wildcard $(addsuffix /diff$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(DIFF),)
+DIFF=
 else
 else
-DATESTR=
+DIFF:=$(firstword $(DIFF))
 endif
 endif
+endif
+export DIFF
 
 
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
@@ -482,31 +456,27 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
-endif
 
 
-# cmp
-ifndef CMP
-CMP:=$(strip $(wildcard $(addsuffix /cmp$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(CMP),)
-CMP=
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
 else
 else
-CMP:=$(firstword $(CMP))
+TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 endif
 endif
-export CMP
+export TARPROG
 
 
-# diff
-ifndef DIFF
-DIFF:=$(strip $(wildcard $(addsuffix /diff$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DIFF),)
-DIFF=
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
 else
 else
-DIFF:=$(firstword $(DIFF))
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
-endif
-export DIFF
 
 
 #####################################################################
 #####################################################################
 # Default extensions
 # Default extensions
@@ -522,7 +492,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -533,19 +502,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -557,7 +523,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -569,7 +534,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -597,55 +561,6 @@ endif
 endif
 endif
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-
 
 
 #####################################################################
 #####################################################################
 # Default Directories
 # Default Directories
@@ -661,6 +576,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -707,6 +628,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -857,13 +781,13 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  debug smart shared showinstall sourceinstall zipinstall zipinstalladd cleanall info
+.PHONY:  debug smart shared showinstall sourceinstall zipinstall zipsourceinstall cleanall info
 
 
 #####################################################################
 #####################################################################
 # General compile rules
 # General compile rules
@@ -930,7 +854,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -992,21 +916,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -1017,43 +951,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1061,14 +972,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1155,6 +1069,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 34 - 77
fcl/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -172,61 +158,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection
@@ -270,7 +226,7 @@ sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET))
 
 
 zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
 zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
 
 
-zipinstalladd: $(addsuffix _zipinstalladd,$(OS_TARGET))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(OS_TARGET))
 
 
 clean: $(addsuffix _clean,$(OS_TARGET))
 clean: $(addsuffix _clean,$(OS_TARGET))
 
 
@@ -280,10 +236,11 @@ require: $(addsuffix _require,$(OS_TARGET))
 
 
 info: $(addsuffix _info,$(OS_TARGET))
 info: $(addsuffix _info,$(OS_TARGET))
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall require info
-
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall require info
 
 
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRGO32V2=1
 OBJECTDIRGO32V2=1
 OBJECTDIRLINUX=1
 OBJECTDIRLINUX=1
@@ -294,7 +251,7 @@ OBJECTDIRTESTS=1
 # Dir go32v2
 # Dir go32v2
 
 
 ifdef OBJECTDIRGO32V2
 ifdef OBJECTDIRGO32V2
-.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipinstalladd go32v2_clean go32v2_cleanall go32v2_require go32v2_info
+.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipsourceinstall go32v2_clean go32v2_cleanall go32v2_require go32v2_info
 
 
 go32v2_all:
 go32v2_all:
 	$(MAKE) -C go32v2 all
 	$(MAKE) -C go32v2 all
@@ -326,8 +283,8 @@ go32v2_sourceinstall:
 go32v2_zipinstall:
 go32v2_zipinstall:
 	$(MAKE) -C go32v2 zipinstall
 	$(MAKE) -C go32v2 zipinstall
 
 
-go32v2_zipinstalladd:
-	$(MAKE) -C go32v2 zipinstalladd
+go32v2_zipsourceinstall:
+	$(MAKE) -C go32v2 zipsourceinstall
 
 
 go32v2_clean:
 go32v2_clean:
 	$(MAKE) -C go32v2 clean
 	$(MAKE) -C go32v2 clean
@@ -345,7 +302,7 @@ endif
 # Dir linux
 # Dir linux
 
 
 ifdef OBJECTDIRLINUX
 ifdef OBJECTDIRLINUX
-.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipinstalladd linux_clean linux_cleanall linux_require linux_info
+.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipsourceinstall linux_clean linux_cleanall linux_require linux_info
 
 
 linux_all:
 linux_all:
 	$(MAKE) -C linux all
 	$(MAKE) -C linux all
@@ -377,8 +334,8 @@ linux_sourceinstall:
 linux_zipinstall:
 linux_zipinstall:
 	$(MAKE) -C linux zipinstall
 	$(MAKE) -C linux zipinstall
 
 
-linux_zipinstalladd:
-	$(MAKE) -C linux zipinstalladd
+linux_zipsourceinstall:
+	$(MAKE) -C linux zipsourceinstall
 
 
 linux_clean:
 linux_clean:
 	$(MAKE) -C linux clean
 	$(MAKE) -C linux clean
@@ -396,7 +353,7 @@ endif
 # Dir win32
 # Dir win32
 
 
 ifdef OBJECTDIRWIN32
 ifdef OBJECTDIRWIN32
-.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipinstalladd win32_clean win32_cleanall win32_require win32_info
+.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipsourceinstall win32_clean win32_cleanall win32_require win32_info
 
 
 win32_all:
 win32_all:
 	$(MAKE) -C win32 all
 	$(MAKE) -C win32 all
@@ -428,8 +385,8 @@ win32_sourceinstall:
 win32_zipinstall:
 win32_zipinstall:
 	$(MAKE) -C win32 zipinstall
 	$(MAKE) -C win32 zipinstall
 
 
-win32_zipinstalladd:
-	$(MAKE) -C win32 zipinstalladd
+win32_zipsourceinstall:
+	$(MAKE) -C win32 zipsourceinstall
 
 
 win32_clean:
 win32_clean:
 	$(MAKE) -C win32 clean
 	$(MAKE) -C win32 clean
@@ -447,7 +404,7 @@ endif
 # Dir os2
 # Dir os2
 
 
 ifdef OBJECTDIROS2
 ifdef OBJECTDIROS2
-.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipinstalladd os2_clean os2_cleanall os2_require os2_info
+.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipsourceinstall os2_clean os2_cleanall os2_require os2_info
 
 
 os2_all:
 os2_all:
 	$(MAKE) -C os2 all
 	$(MAKE) -C os2 all
@@ -479,8 +436,8 @@ os2_sourceinstall:
 os2_zipinstall:
 os2_zipinstall:
 	$(MAKE) -C os2 zipinstall
 	$(MAKE) -C os2 zipinstall
 
 
-os2_zipinstalladd:
-	$(MAKE) -C os2 zipinstalladd
+os2_zipsourceinstall:
+	$(MAKE) -C os2 zipsourceinstall
 
 
 os2_clean:
 os2_clean:
 	$(MAKE) -C os2 clean
 	$(MAKE) -C os2 clean
@@ -498,7 +455,7 @@ endif
 # Dir tests
 # Dir tests
 
 
 ifdef OBJECTDIRTESTS
 ifdef OBJECTDIRTESTS
-.PHONY:  tests_all tests_debug tests_examples tests_test tests_smart tests_shared tests_showinstall tests_install tests_sourceinstall tests_zipinstall tests_zipinstalladd tests_clean tests_cleanall tests_require tests_info
+.PHONY:  tests_all tests_debug tests_examples tests_test tests_smart tests_shared tests_showinstall tests_install tests_sourceinstall tests_zipinstall tests_zipsourceinstall tests_clean tests_cleanall tests_require tests_info
 
 
 tests_all:
 tests_all:
 	$(MAKE) -C tests all
 	$(MAKE) -C tests all
@@ -530,8 +487,8 @@ tests_sourceinstall:
 tests_zipinstall:
 tests_zipinstall:
 	$(MAKE) -C tests zipinstall
 	$(MAKE) -C tests zipinstall
 
 
-tests_zipinstalladd:
-	$(MAKE) -C tests zipinstalladd
+tests_zipsourceinstall:
+	$(MAKE) -C tests zipsourceinstall
 
 
 tests_clean:
 tests_clean:
 	$(MAKE) -C tests clean
 	$(MAKE) -C tests clean

+ 62 - 80
fcl/db/Makefile

@@ -157,6 +157,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -313,17 +314,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -368,28 +358,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -401,8 +369,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -419,7 +405,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -430,19 +415,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -454,7 +436,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -466,7 +447,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -618,6 +598,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # On linux, try to find where libgcc.a is.
 # On linux, try to find where libgcc.a is.
 ifdef inlinux
 ifdef inlinux
 ifndef GCCLIBDIR
 ifndef GCCLIBDIR
@@ -672,6 +658,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -830,7 +819,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -838,7 +827,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -934,7 +923,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -996,21 +985,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -1021,43 +1020,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1065,14 +1041,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1159,6 +1138,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 64 - 80
fcl/go32v2/Makefile

@@ -171,6 +171,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -191,6 +192,8 @@ override UNITOBJECTS+=classes $(INCUNITS) $(XMLUNITS) $(SHEDITUNITS)
 # Install
 # Install
 
 
 UNITSUBDIR=fcl
 UNITSUBDIR=fcl
+SOURCESUBDIR=fcl
+SOURCETOPDIR=..
 PACKAGENAME=fcl
 PACKAGENAME=fcl
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -330,17 +333,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -385,28 +377,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -418,8 +388,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -436,7 +424,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -447,19 +434,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -471,7 +455,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -483,7 +466,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -605,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -651,6 +639,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -805,7 +796,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -813,7 +804,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -894,7 +885,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -956,21 +947,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -981,43 +982,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1025,14 +1003,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1119,6 +1100,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 64 - 80
fcl/linux/Makefile

@@ -171,6 +171,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -191,6 +192,8 @@ override UNITOBJECTS+=classes $(INCUNITS) $(XMLUNITS) $(SHEDITUNITS)
 # Install
 # Install
 
 
 UNITSUBDIR=fcl
 UNITSUBDIR=fcl
+SOURCESUBDIR=fcl
+SOURCETOPDIR=..
 PACKAGENAME=fcl
 PACKAGENAME=fcl
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -330,17 +333,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -385,28 +377,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -418,8 +388,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -436,7 +424,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -447,19 +434,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -471,7 +455,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -483,7 +466,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -605,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -651,6 +639,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -805,7 +796,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -813,7 +804,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -894,7 +885,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -956,21 +947,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -981,43 +982,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1025,14 +1003,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1119,6 +1100,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 64 - 80
fcl/os2/Makefile

@@ -171,6 +171,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -191,6 +192,8 @@ override UNITOBJECTS+=classes $(INCUNITS) $(XMLUNITS) $(SHEDITUNITS)
 # Install
 # Install
 
 
 UNITSUBDIR=fcl
 UNITSUBDIR=fcl
+SOURCESUBDIR=fcl
+SOURCETOPDIR=..
 PACKAGENAME=fcl
 PACKAGENAME=fcl
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -330,17 +333,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -385,28 +377,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -418,8 +388,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -436,7 +424,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -447,19 +434,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -471,7 +455,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -483,7 +466,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -605,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -651,6 +639,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -805,7 +796,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -813,7 +804,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -894,7 +885,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -956,21 +947,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -981,43 +982,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1025,14 +1003,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1119,6 +1100,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
fcl/shedit/gtk/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -607,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -653,6 +639,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -793,7 +782,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -801,7 +790,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -897,7 +886,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -959,21 +948,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -984,43 +983,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1028,14 +1004,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1122,6 +1101,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
fcl/tests/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -312,17 +313,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -367,28 +357,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -400,8 +368,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -418,7 +404,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -429,19 +414,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -453,7 +435,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -465,7 +446,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -651,6 +631,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -697,6 +683,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -846,7 +835,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -854,7 +843,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -944,7 +933,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -1006,21 +995,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -1031,43 +1030,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1075,14 +1051,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1169,6 +1148,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 64 - 80
fcl/win32/Makefile

@@ -171,6 +171,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -191,6 +192,8 @@ override UNITOBJECTS+=classes $(INCUNITS) $(XMLUNITS) $(SHEDITUNITS)
 # Install
 # Install
 
 
 UNITSUBDIR=fcl
 UNITSUBDIR=fcl
+SOURCESUBDIR=fcl
+SOURCETOPDIR=..
 PACKAGENAME=fcl
 PACKAGENAME=fcl
 ZIPTARGET=install
 ZIPTARGET=install
 
 
@@ -330,17 +333,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -385,28 +377,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -418,8 +388,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -436,7 +424,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -447,19 +434,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -471,7 +455,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -483,7 +466,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -605,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -651,6 +639,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -805,7 +796,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -813,7 +804,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -894,7 +885,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -956,21 +947,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -981,43 +982,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1025,14 +1003,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1119,6 +1100,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 23 - 66
ide/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -172,61 +158,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection
@@ -274,8 +230,9 @@ require: $(addsuffix _require,$(DIROBJECTS))
 
 
 .PHONY:  debug examples test smart shared showinstall install sourceinstall clean cleanall require
 .PHONY:  debug examples test smart shared showinstall install sourceinstall clean cleanall require
 
 
-
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRFAKE=1
 OBJECTDIRFAKE=1
 OBJECTDIRTEXT=1
 OBJECTDIRTEXT=1
@@ -283,7 +240,7 @@ OBJECTDIRTEXT=1
 # Dir fake
 # Dir fake
 
 
 ifdef OBJECTDIRFAKE
 ifdef OBJECTDIRFAKE
-.PHONY:  fake_all fake_debug fake_examples fake_test fake_smart fake_shared fake_showinstall fake_install fake_sourceinstall fake_zipinstall fake_zipinstalladd fake_clean fake_cleanall fake_require fake_info
+.PHONY:  fake_all fake_debug fake_examples fake_test fake_smart fake_shared fake_showinstall fake_install fake_sourceinstall fake_zipinstall fake_zipsourceinstall fake_clean fake_cleanall fake_require fake_info
 
 
 fake_all:
 fake_all:
 	$(MAKE) -C fake all
 	$(MAKE) -C fake all
@@ -315,8 +272,8 @@ fake_sourceinstall:
 fake_zipinstall:
 fake_zipinstall:
 	$(MAKE) -C fake zipinstall
 	$(MAKE) -C fake zipinstall
 
 
-fake_zipinstalladd:
-	$(MAKE) -C fake zipinstalladd
+fake_zipsourceinstall:
+	$(MAKE) -C fake zipsourceinstall
 
 
 fake_clean:
 fake_clean:
 	$(MAKE) -C fake clean
 	$(MAKE) -C fake clean
@@ -334,7 +291,7 @@ endif
 # Dir text
 # Dir text
 
 
 ifdef OBJECTDIRTEXT
 ifdef OBJECTDIRTEXT
-.PHONY:  text_all text_debug text_examples text_test text_smart text_shared text_showinstall text_install text_sourceinstall text_zipinstall text_zipinstalladd text_clean text_cleanall text_require text_info
+.PHONY:  text_all text_debug text_examples text_test text_smart text_shared text_showinstall text_install text_sourceinstall text_zipinstall text_zipsourceinstall text_clean text_cleanall text_require text_info
 
 
 text_all:
 text_all:
 	$(MAKE) -C text all
 	$(MAKE) -C text all
@@ -366,8 +323,8 @@ text_sourceinstall:
 text_zipinstall:
 text_zipinstall:
 	$(MAKE) -C text zipinstall
 	$(MAKE) -C text zipinstall
 
 
-text_zipinstalladd:
-	$(MAKE) -C text zipinstalladd
+text_zipsourceinstall:
+	$(MAKE) -C text zipsourceinstall
 
 
 text_clean:
 text_clean:
 	$(MAKE) -C text clean
 	$(MAKE) -C text clean

+ 23 - 66
ide/fake/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -172,61 +158,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection
@@ -276,8 +232,9 @@ require: $(addsuffix _require,$(DIROBJECTS))
 
 
 .PHONY:  all debug examples test smart shared showinstall install sourceinstall clean cleanall require
 .PHONY:  all debug examples test smart shared showinstall install sourceinstall clean cleanall require
 
 
-
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRCOMPILER=1
 OBJECTDIRCOMPILER=1
 OBJECTDIRGDB=1
 OBJECTDIRGDB=1
@@ -285,7 +242,7 @@ OBJECTDIRGDB=1
 # Dir compiler
 # Dir compiler
 
 
 ifdef OBJECTDIRCOMPILER
 ifdef OBJECTDIRCOMPILER
-.PHONY:  compiler_all compiler_debug compiler_examples compiler_test compiler_smart compiler_shared compiler_showinstall compiler_install compiler_sourceinstall compiler_zipinstall compiler_zipinstalladd compiler_clean compiler_cleanall compiler_require compiler_info
+.PHONY:  compiler_all compiler_debug compiler_examples compiler_test compiler_smart compiler_shared compiler_showinstall compiler_install compiler_sourceinstall compiler_zipinstall compiler_zipsourceinstall compiler_clean compiler_cleanall compiler_require compiler_info
 
 
 compiler_all:
 compiler_all:
 	$(MAKE) -C compiler all
 	$(MAKE) -C compiler all
@@ -317,8 +274,8 @@ compiler_sourceinstall:
 compiler_zipinstall:
 compiler_zipinstall:
 	$(MAKE) -C compiler zipinstall
 	$(MAKE) -C compiler zipinstall
 
 
-compiler_zipinstalladd:
-	$(MAKE) -C compiler zipinstalladd
+compiler_zipsourceinstall:
+	$(MAKE) -C compiler zipsourceinstall
 
 
 compiler_clean:
 compiler_clean:
 	$(MAKE) -C compiler clean
 	$(MAKE) -C compiler clean
@@ -336,7 +293,7 @@ endif
 # Dir gdb
 # Dir gdb
 
 
 ifdef OBJECTDIRGDB
 ifdef OBJECTDIRGDB
-.PHONY:  gdb_all gdb_debug gdb_examples gdb_test gdb_smart gdb_shared gdb_showinstall gdb_install gdb_sourceinstall gdb_zipinstall gdb_zipinstalladd gdb_clean gdb_cleanall gdb_require gdb_info
+.PHONY:  gdb_all gdb_debug gdb_examples gdb_test gdb_smart gdb_shared gdb_showinstall gdb_install gdb_sourceinstall gdb_zipinstall gdb_zipsourceinstall gdb_clean gdb_cleanall gdb_require gdb_info
 
 
 gdb_all:
 gdb_all:
 	$(MAKE) -C gdb all
 	$(MAKE) -C gdb all
@@ -368,8 +325,8 @@ gdb_sourceinstall:
 gdb_zipinstall:
 gdb_zipinstall:
 	$(MAKE) -C gdb zipinstall
 	$(MAKE) -C gdb zipinstall
 
 
-gdb_zipinstalladd:
-	$(MAKE) -C gdb zipinstalladd
+gdb_zipsourceinstall:
+	$(MAKE) -C gdb zipsourceinstall
 
 
 gdb_clean:
 gdb_clean:
 	$(MAKE) -C gdb clean
 	$(MAKE) -C gdb clean

+ 62 - 80
ide/fake/compiler/Makefile

@@ -143,6 +143,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -293,17 +294,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -348,28 +338,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -381,8 +349,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -399,7 +385,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -410,19 +395,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -434,7 +416,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -446,7 +427,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -538,6 +518,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -584,6 +570,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -724,7 +713,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -732,7 +721,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -813,7 +802,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -875,21 +864,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -900,43 +899,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -944,14 +920,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1038,6 +1017,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
ide/fake/gdb/Makefile

@@ -143,6 +143,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -293,17 +294,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -348,28 +338,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -381,8 +349,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -399,7 +385,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -410,19 +395,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -434,7 +416,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -446,7 +427,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -538,6 +518,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -584,6 +570,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -724,7 +713,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -732,7 +721,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -813,7 +802,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -875,21 +864,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -900,43 +899,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -944,14 +920,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1038,6 +1017,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
ide/text/Makefile

@@ -179,6 +179,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -342,17 +343,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -397,28 +387,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -430,8 +398,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -448,7 +434,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -459,19 +444,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -483,7 +465,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -495,7 +476,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -677,6 +657,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # On linux, try to find where libgcc.a is.
 # On linux, try to find where libgcc.a is.
 ifdef inlinux
 ifdef inlinux
 ifndef GCCLIBDIR
 ifndef GCCLIBDIR
@@ -731,6 +717,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -886,13 +875,13 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall sourceinstall zipinstall zipinstalladd cleanall info
+.PHONY:  all debug smart shared showinstall sourceinstall zipinstall zipsourceinstall cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -974,7 +963,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -1036,21 +1025,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -1061,43 +1060,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1105,14 +1081,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1199,6 +1178,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 92 - 157
install/Makefile

@@ -119,13 +119,25 @@ OLDFPCDIR:=$(FPCDIR)
 
 
 checkfpcdir:
 checkfpcdir:
 ifdef OLDFPCDIR
 ifdef OLDFPCDIR
+ifneq ($(OLDFPCDIR),)
+FPCDIRSET=fpcdirset
+fpcdirset:
 	@echo You must unset FPCDIR to use this Makefile
 	@echo You must unset FPCDIR to use this Makefile
 	@exit 1
 	@exit 1
 endif
 endif
+endif
 
 
 # All target
 # All target
 ifndef ALLTARGET
 ifndef ALLTARGET
+ifdef ($(OS_TARGET),win32)
+ALLTARGET=smart
+else
+ifdef ($(OS_TARGET),go32v2)
 ALLTARGET=smart
 ALLTARGET=smart
+else
+ALLTARGET=all
+endif
+endif
 endif
 endif
 
 
 # Test dir if none specified
 # Test dir if none specified
@@ -143,8 +155,8 @@ override RELEASE=1
 BASEPACKDIR=$(BASEDIR)/basepack
 BASEPACKDIR=$(BASEDIR)/basepack
 
 
 # Use new ppc386
 # Use new ppc386
-PPNEW=$(BASEDIR)/$(CVSBASE)/compiler/ppc386.exe
-PPUFILESNEW=$(BASEDIR)/$(CVSBASE)/utils/ppufiles.exe
+PPNEW=$(BASEDIR)/$(CVSBASE)/compiler/ppc386$(EXEEXT)
+PPUFILESNEW=$(BASEDIR)/$(CVSBASE)/utils/ppufiles$(EXEEXT)
 
 
 # Build/install options
 # Build/install options
 BUILDOPTS=FPC=$(PPNEW) RELEASE=1
 BUILDOPTS=FPC=$(PPNEW) RELEASE=1
@@ -172,20 +184,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -209,7 +207,6 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
@@ -326,17 +323,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -414,8 +400,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -432,7 +436,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -443,19 +446,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -467,7 +467,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -479,7 +478,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -507,55 +505,6 @@ endif
 endif
 endif
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-
 
 
 #####################################################################
 #####################################################################
 # Default Directories
 # Default Directories
@@ -571,6 +520,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -617,6 +572,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -664,10 +622,6 @@ ifneq ($(OS_TARGET),$(OS_SOURCE))
 override FPCOPT+=-T$(OS_TARGET)
 override FPCOPT+=-T$(OS_TARGET)
 endif
 endif
 
 
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
 ifdef UNITSDIR
 ifdef UNITSDIR
 override FPCOPT+=-Fu$(UNITSDIR)
 override FPCOPT+=-Fu$(UNITSDIR)
 endif
 endif
@@ -751,17 +705,15 @@ shared: fpc_shared
 
 
 showinstall: fpc_showinstall
 showinstall: fpc_showinstall
 
 
-install: fpc_install
-
 sourceinstall: fpc_sourceinstall
 sourceinstall: fpc_sourceinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipinstall: fpc_zipinstall
 
 
-clean: fpc_clean
+zipsourceinstall: fpc_zipsourceinstall
 
 
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstalladd clean cleanall
+.PHONY:  all debug smart shared showinstall sourceinstall zipinstall zipsourceinstall cleanall
 
 
 #####################################################################
 #####################################################################
 # General compile rules
 # General compile rules
@@ -828,7 +780,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -890,21 +842,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -915,43 +877,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -959,14 +898,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1029,10 +971,9 @@ help:
 	@echo
 	@echo
 	@echo Possible targets are:
 	@echo Possible targets are:
 	@echo
 	@echo
-	@echo basego32, basego32.zip
-	@echo basew32,  basew32.zip
+	@echo go32v2,win32,linux
 	@echo
 	@echo
-	@exit 1
+	@exit
 
 
 
 
 ##########################################################################
 ##########################################################################
@@ -1049,12 +990,16 @@ installer:
 # Basego32.zip
 # Basego32.zip
 ##########################################################################
 ##########################################################################
 
 
-.PHONY: build installbase zipinstall zipinstallbase zipinstallfcl \
+.PHONY: clean build installbase zipinstall zipinstallbase zipinstallfcl \
 	zipinstallpackages
 	zipinstallpackages
 
 
 export RELEASE DESTZIPDIR
 export RELEASE DESTZIPDIR
 
 
-build: checkfpcdir
+clean:
+	$(DEL) build-stamp
+
+build: build-stamp
+build-stamp: $(FPCDIRSET)
 # create new compiler
 # create new compiler
 	-$(MAKE) -C $(CVSBASE) compiler_cycle
 	-$(MAKE) -C $(CVSBASE) compiler_cycle
 # clean
 # clean
@@ -1070,8 +1015,9 @@ build: checkfpcdir
 	$(MAKE) -C $(CVSBASE) packages_$(ALLTARGET) $(BUILDOPTS)
 	$(MAKE) -C $(CVSBASE) packages_$(ALLTARGET) $(BUILDOPTS)
 	$(MAKE) -C $(CVSBASE) utils_all $(BUILDOPTS)
 	$(MAKE) -C $(CVSBASE) utils_all $(BUILDOPTS)
 
 
+	touch build-stamp
 
 
-installbase:
+installbase: build-stamp
 # create dirs
 # create dirs
 	$(MKDIR) $(BASEINSTALLDIR)
 	$(MKDIR) $(BASEINSTALLDIR)
 	$(MKDIR) $(DOCINSTALLDIR)
 	$(MKDIR) $(DOCINSTALLDIR)
@@ -1090,35 +1036,24 @@ endif
 	$(MAKE) -C $(CVSBASE) rtl_install $(INSTALLOPTS)
 	$(MAKE) -C $(CVSBASE) rtl_install $(INSTALLOPTS)
 	$(MAKE) -C $(CVSBASE) utils_install $(INSTALLOPTS)
 	$(MAKE) -C $(CVSBASE) utils_install $(INSTALLOPTS)
 
 
-zipinstallbase:
-	$(MKDIR) $(BASEPACKDIR)
-	$(MAKE) installbase PREFIXINSTALLDIR=$(BASEPACKDIR)
-	cd $(BASEPACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/basego32.zip * ; cd $(BASEDIR)
-	$(DELTREE) $(BASEPACKDIR)
-
-zipinstallapi:
+install: build-stamp
+	$(MAKE) zipinstall ZIPTARGET=installbase PACKAGENAME=base
 	$(MAKE) -C $(CVSBASE) api_zipinstall $(INSTALLOPTS)
 	$(MAKE) -C $(CVSBASE) api_zipinstall $(INSTALLOPTS)
-
-zipinstallfcl:
 	$(MAKE) -C $(CVSBASE) fcl_zipinstall $(INSTALLOPTS)
 	$(MAKE) -C $(CVSBASE) fcl_zipinstall $(INSTALLOPTS)
-
-zipinstallpackages:
-	$(MAKE) -C $(CVSBASE) packages_install $(INSTALLOPTS)
-
-
-zipinstall: build \
-	    zipinstallbase zipinstallapi zipinstallfcl \
-	    zipinstallpackages
+	$(MAKE) -C $(CVSBASE) packages_zipinstall $(INSTALLOPTS)
 
 
 
 
 ##########################################################################
 ##########################################################################
 # go32v2,win32 specific targets
 # go32v2,win32 specific targets
 ##########################################################################
 ##########################################################################
 
 
-.PHONY: go32v2 win32
+.PHONY: go32v2 win32 linux
 
 
 go32v2:
 go32v2:
-	$(MAKE) zipinstall OS_TARGET=go32v2
+	$(MAKE) install OS_TARGET=go32v2
 
 
 win32:
 win32:
-	$(MAKE) zipinstall OS_TARGET=win32
+	$(MAKE) install OS_TARGET=win32
+
+linux:
+	$(MAKE) install OS_TARGET=linux

+ 62 - 80
install/demo/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -323,17 +324,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -378,28 +368,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -411,8 +379,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -429,7 +415,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -440,19 +425,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -464,7 +446,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -476,7 +457,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -598,6 +578,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -644,6 +630,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -789,13 +778,13 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -891,7 +880,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -953,21 +942,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -978,43 +977,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1022,14 +998,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1116,6 +1095,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
install/fpinst/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -308,17 +309,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -363,28 +353,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -396,8 +364,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -414,7 +400,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -425,19 +410,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -449,7 +431,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -461,7 +442,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -613,6 +593,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -659,6 +645,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -804,7 +793,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -812,7 +801,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -894,7 +883,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -956,21 +945,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -981,43 +980,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1025,14 +1001,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1119,6 +1098,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 2 - 2
install/man/Makefile

@@ -11,5 +11,5 @@ MANINSTALLDIR=$(PREFIXINSTALLDIR)/man
 installman:
 installman:
 	install -d -m 755 $(MANINSTALLDIR)/man1
 	install -d -m 755 $(MANINSTALLDIR)/man1
 	install -d -m 755 $(MANINSTALLDIR)/man5
 	install -d -m 755 $(MANINSTALLDIR)/man5
-	install -m 644 *.1 $(MANINSTALLDIR)/man1
-	install -m 644 *.5 $(MANINSTALLDIR)/man5
+	install -m 644 man1/*.1 $(MANINSTALLDIR)/man1
+	install -m 644 man5/*.5 $(MANINSTALLDIR)/man5

File diff suppressed because it is too large
+ 595 - 349
packages/Makefile


+ 62 - 80
packages/forms/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -577,6 +557,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -623,6 +609,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -763,7 +752,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -771,7 +760,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -867,7 +856,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -929,21 +918,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -954,43 +953,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -998,14 +974,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1092,6 +1071,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/forms/demo/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -607,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # Where to find other libraries
 # Where to find other libraries
 ifdef inlinux
 ifdef inlinux
 ifndef OTHERLIBDIR
 ifndef OTHERLIBDIR
@@ -661,6 +647,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -806,7 +795,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -814,7 +803,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -896,7 +885,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -958,21 +947,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -983,43 +982,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1027,14 +1003,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1121,6 +1100,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/gdbint/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -308,17 +309,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -363,28 +353,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -396,8 +364,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -414,7 +400,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -425,19 +410,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -449,7 +431,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -461,7 +442,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -553,6 +533,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # On linux, try to find where libgcc.a is.
 # On linux, try to find where libgcc.a is.
 ifdef inlinux
 ifdef inlinux
 ifndef GCCLIBDIR
 ifndef GCCLIBDIR
@@ -607,6 +593,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -767,7 +756,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -775,7 +764,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -871,7 +860,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -933,21 +922,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -958,43 +957,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1002,14 +978,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1096,6 +1075,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 14 - 58
packages/gdbint/libgdb/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -171,61 +157,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection

+ 62 - 80
packages/ggi/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/gtk/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -306,17 +307,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -361,28 +351,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -394,8 +362,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -412,7 +398,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -423,19 +408,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -447,7 +429,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -459,7 +440,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -551,6 +531,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -597,6 +583,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -742,13 +731,13 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -829,7 +818,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -891,21 +880,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -916,43 +915,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -960,14 +936,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1054,6 +1033,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/gtk/examples/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -308,17 +309,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -363,28 +353,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -396,8 +364,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -414,7 +400,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -425,19 +410,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -449,7 +431,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -461,7 +442,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -553,6 +533,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # On linux, try to find where libgcc.a is.
 # On linux, try to find where libgcc.a is.
 ifdef inlinux
 ifdef inlinux
 ifndef GCCLIBDIR
 ifndef GCCLIBDIR
@@ -615,6 +601,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -770,7 +759,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -778,7 +767,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -860,7 +849,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -922,21 +911,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -947,43 +946,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -991,14 +967,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1085,6 +1064,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/gtk/tutorial/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -307,17 +308,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -362,28 +352,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -395,8 +363,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -413,7 +399,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -424,19 +409,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -448,7 +430,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -460,7 +441,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -552,6 +532,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # On linux, try to find where libgcc.a is.
 # On linux, try to find where libgcc.a is.
 ifdef inlinux
 ifdef inlinux
 ifndef GCCLIBDIR
 ifndef GCCLIBDIR
@@ -614,6 +600,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -769,7 +758,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -777,7 +766,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -859,7 +848,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -921,21 +910,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -946,43 +945,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -990,14 +966,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1084,6 +1063,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/ibase/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/inet/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/mysql/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/ncurses/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 27 - 74
packages/opengl/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -172,61 +158,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
 
 
-# PACKAGESDIR packages
-
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection
@@ -266,20 +222,17 @@ install: $(addsuffix _install,$(OS_TARGET))
 
 
 sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET))
 sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET))
 
 
-zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
-
-zipinstalladd: $(addsuffix _zipinstalladd,$(OS_TARGET))
-
 clean: $(addsuffix _clean,$(DIROBJECTS))
 clean: $(addsuffix _clean,$(DIROBJECTS))
 
 
 cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
 cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
 
 
 require: $(addsuffix _require,$(DIROBJECTS))
 require: $(addsuffix _require,$(DIROBJECTS))
 
 
-.PHONY:  all debug test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall require
-
+.PHONY:  all debug test smart shared showinstall install sourceinstall clean cleanall require
 
 
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRLINUX=1
 OBJECTDIRLINUX=1
 OBJECTDIREXAMPLES=1
 OBJECTDIREXAMPLES=1
@@ -288,7 +241,7 @@ OBJECTDIRBUILD=1
 # Dir linux
 # Dir linux
 
 
 ifdef OBJECTDIRLINUX
 ifdef OBJECTDIRLINUX
-.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipinstalladd linux_clean linux_cleanall linux_require linux_info
+.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipsourceinstall linux_clean linux_cleanall linux_require linux_info
 
 
 linux_all:
 linux_all:
 	$(MAKE) -C linux all
 	$(MAKE) -C linux all
@@ -320,8 +273,8 @@ linux_sourceinstall:
 linux_zipinstall:
 linux_zipinstall:
 	$(MAKE) -C linux zipinstall
 	$(MAKE) -C linux zipinstall
 
 
-linux_zipinstalladd:
-	$(MAKE) -C linux zipinstalladd
+linux_zipsourceinstall:
+	$(MAKE) -C linux zipsourceinstall
 
 
 linux_clean:
 linux_clean:
 	$(MAKE) -C linux clean
 	$(MAKE) -C linux clean
@@ -339,7 +292,7 @@ endif
 # Dir examples
 # Dir examples
 
 
 ifdef OBJECTDIREXAMPLES
 ifdef OBJECTDIREXAMPLES
-.PHONY:  examples_all examples_debug examples_examples examples_test examples_smart examples_shared examples_showinstall examples_install examples_sourceinstall examples_zipinstall examples_zipinstalladd examples_clean examples_cleanall examples_require examples_info
+.PHONY:  examples_all examples_debug examples_examples examples_test examples_smart examples_shared examples_showinstall examples_install examples_sourceinstall examples_zipinstall examples_zipsourceinstall examples_clean examples_cleanall examples_require examples_info
 
 
 examples_all:
 examples_all:
 	$(MAKE) -C examples all
 	$(MAKE) -C examples all
@@ -371,8 +324,8 @@ examples_sourceinstall:
 examples_zipinstall:
 examples_zipinstall:
 	$(MAKE) -C examples zipinstall
 	$(MAKE) -C examples zipinstall
 
 
-examples_zipinstalladd:
-	$(MAKE) -C examples zipinstalladd
+examples_zipsourceinstall:
+	$(MAKE) -C examples zipsourceinstall
 
 
 examples_clean:
 examples_clean:
 	$(MAKE) -C examples clean
 	$(MAKE) -C examples clean
@@ -390,7 +343,7 @@ endif
 # Dir build
 # Dir build
 
 
 ifdef OBJECTDIRBUILD
 ifdef OBJECTDIRBUILD
-.PHONY:  build_all build_debug build_examples build_test build_smart build_shared build_showinstall build_install build_sourceinstall build_zipinstall build_zipinstalladd build_clean build_cleanall build_require build_info
+.PHONY:  build_all build_debug build_examples build_test build_smart build_shared build_showinstall build_install build_sourceinstall build_zipinstall build_zipsourceinstall build_clean build_cleanall build_require build_info
 
 
 build_all:
 build_all:
 	$(MAKE) -C build all
 	$(MAKE) -C build all
@@ -422,8 +375,8 @@ build_sourceinstall:
 build_zipinstall:
 build_zipinstall:
 	$(MAKE) -C build zipinstall
 	$(MAKE) -C build zipinstall
 
 
-build_zipinstalladd:
-	$(MAKE) -C build zipinstalladd
+build_zipsourceinstall:
+	$(MAKE) -C build zipsourceinstall
 
 
 build_clean:
 build_clean:
 	$(MAKE) -C build clean
 	$(MAKE) -C build clean

+ 62 - 80
packages/opengl/build/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -577,6 +557,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -623,6 +609,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -763,7 +752,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -771,7 +760,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -867,7 +856,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -929,21 +918,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -954,43 +953,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -998,14 +974,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1092,6 +1071,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/opengl/examples/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -607,6 +587,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 # Where to find other libraries
 # Where to find other libraries
 ifdef inlinux
 ifdef inlinux
 ifndef OTHERLIBDIR
 ifndef OTHERLIBDIR
@@ -661,6 +647,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -806,7 +795,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -814,7 +803,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -896,7 +885,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -958,21 +947,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -983,43 +982,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1027,14 +1003,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1121,6 +1100,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/opengl/linux/Makefile

@@ -157,6 +157,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -307,17 +308,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -362,28 +352,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -395,8 +363,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -413,7 +399,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -424,19 +409,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -448,7 +430,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -460,7 +441,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -582,6 +562,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -628,6 +614,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -768,7 +757,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -776,7 +765,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -857,7 +846,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -919,21 +908,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -944,43 +943,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -988,14 +964,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1082,6 +1061,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/paszlib/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -303,17 +304,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -358,28 +348,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -391,8 +359,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -409,7 +395,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -420,19 +405,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -444,7 +426,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -456,7 +437,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -548,6 +528,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -594,6 +580,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -738,7 +727,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -746,7 +735,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -842,7 +831,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -904,21 +893,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -929,43 +928,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -973,14 +949,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1067,6 +1046,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/postgres/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/svgalib/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/uncgi/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/utmp/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -737,7 +726,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -745,7 +734,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -841,7 +830,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -903,21 +892,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -928,43 +927,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -972,14 +948,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1066,6 +1045,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/x11/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -301,17 +302,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -356,28 +346,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -389,8 +357,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -407,7 +393,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -418,19 +403,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -442,7 +424,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -454,7 +435,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -546,6 +526,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -592,6 +578,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -732,7 +721,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -740,7 +729,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -821,7 +810,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -883,21 +872,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -908,43 +907,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -952,14 +928,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1046,6 +1025,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
packages/zlib/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -301,17 +302,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -356,28 +346,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -389,8 +357,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -407,7 +393,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -418,19 +403,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -442,7 +424,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -454,7 +435,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -546,6 +526,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -592,6 +578,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -732,7 +721,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -740,7 +729,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -821,7 +810,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -883,21 +872,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -908,43 +907,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -952,14 +928,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1046,6 +1025,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 34 - 77
rtl/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -172,61 +158,31 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection
@@ -270,7 +226,7 @@ sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET))
 
 
 zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
 zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
 
 
-zipinstalladd: $(addsuffix _zipinstalladd,$(OS_TARGET))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(OS_TARGET))
 
 
 clean: $(addsuffix _clean,$(OS_TARGET))
 clean: $(addsuffix _clean,$(OS_TARGET))
 
 
@@ -280,10 +236,11 @@ require: $(addsuffix _require,$(OS_TARGET))
 
 
 info: $(addsuffix _info,$(OS_TARGET))
 info: $(addsuffix _info,$(OS_TARGET))
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall require info
-
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall require info
 
 
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRGO32V2=1
 OBJECTDIRGO32V2=1
 OBJECTDIRLINUX=1
 OBJECTDIRLINUX=1
@@ -294,7 +251,7 @@ OBJECTDIRGO32V1=1
 # Dir go32v2
 # Dir go32v2
 
 
 ifdef OBJECTDIRGO32V2
 ifdef OBJECTDIRGO32V2
-.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipinstalladd go32v2_clean go32v2_cleanall go32v2_require go32v2_info
+.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipsourceinstall go32v2_clean go32v2_cleanall go32v2_require go32v2_info
 
 
 go32v2_all:
 go32v2_all:
 	$(MAKE) -C go32v2 all
 	$(MAKE) -C go32v2 all
@@ -326,8 +283,8 @@ go32v2_sourceinstall:
 go32v2_zipinstall:
 go32v2_zipinstall:
 	$(MAKE) -C go32v2 zipinstall
 	$(MAKE) -C go32v2 zipinstall
 
 
-go32v2_zipinstalladd:
-	$(MAKE) -C go32v2 zipinstalladd
+go32v2_zipsourceinstall:
+	$(MAKE) -C go32v2 zipsourceinstall
 
 
 go32v2_clean:
 go32v2_clean:
 	$(MAKE) -C go32v2 clean
 	$(MAKE) -C go32v2 clean
@@ -345,7 +302,7 @@ endif
 # Dir linux
 # Dir linux
 
 
 ifdef OBJECTDIRLINUX
 ifdef OBJECTDIRLINUX
-.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipinstalladd linux_clean linux_cleanall linux_require linux_info
+.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipsourceinstall linux_clean linux_cleanall linux_require linux_info
 
 
 linux_all:
 linux_all:
 	$(MAKE) -C linux all
 	$(MAKE) -C linux all
@@ -377,8 +334,8 @@ linux_sourceinstall:
 linux_zipinstall:
 linux_zipinstall:
 	$(MAKE) -C linux zipinstall
 	$(MAKE) -C linux zipinstall
 
 
-linux_zipinstalladd:
-	$(MAKE) -C linux zipinstalladd
+linux_zipsourceinstall:
+	$(MAKE) -C linux zipsourceinstall
 
 
 linux_clean:
 linux_clean:
 	$(MAKE) -C linux clean
 	$(MAKE) -C linux clean
@@ -396,7 +353,7 @@ endif
 # Dir win32
 # Dir win32
 
 
 ifdef OBJECTDIRWIN32
 ifdef OBJECTDIRWIN32
-.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipinstalladd win32_clean win32_cleanall win32_require win32_info
+.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipsourceinstall win32_clean win32_cleanall win32_require win32_info
 
 
 win32_all:
 win32_all:
 	$(MAKE) -C win32 all
 	$(MAKE) -C win32 all
@@ -428,8 +385,8 @@ win32_sourceinstall:
 win32_zipinstall:
 win32_zipinstall:
 	$(MAKE) -C win32 zipinstall
 	$(MAKE) -C win32 zipinstall
 
 
-win32_zipinstalladd:
-	$(MAKE) -C win32 zipinstalladd
+win32_zipsourceinstall:
+	$(MAKE) -C win32 zipsourceinstall
 
 
 win32_clean:
 win32_clean:
 	$(MAKE) -C win32 clean
 	$(MAKE) -C win32 clean
@@ -447,7 +404,7 @@ endif
 # Dir os2
 # Dir os2
 
 
 ifdef OBJECTDIROS2
 ifdef OBJECTDIROS2
-.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipinstalladd os2_clean os2_cleanall os2_require os2_info
+.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipsourceinstall os2_clean os2_cleanall os2_require os2_info
 
 
 os2_all:
 os2_all:
 	$(MAKE) -C os2 all
 	$(MAKE) -C os2 all
@@ -479,8 +436,8 @@ os2_sourceinstall:
 os2_zipinstall:
 os2_zipinstall:
 	$(MAKE) -C os2 zipinstall
 	$(MAKE) -C os2 zipinstall
 
 
-os2_zipinstalladd:
-	$(MAKE) -C os2 zipinstalladd
+os2_zipsourceinstall:
+	$(MAKE) -C os2 zipsourceinstall
 
 
 os2_clean:
 os2_clean:
 	$(MAKE) -C os2 clean
 	$(MAKE) -C os2 clean
@@ -498,7 +455,7 @@ endif
 # Dir go32v1
 # Dir go32v1
 
 
 ifdef OBJECTDIRGO32V1
 ifdef OBJECTDIRGO32V1
-.PHONY:  go32v1_all go32v1_debug go32v1_examples go32v1_test go32v1_smart go32v1_shared go32v1_showinstall go32v1_install go32v1_sourceinstall go32v1_zipinstall go32v1_zipinstalladd go32v1_clean go32v1_cleanall go32v1_require go32v1_info
+.PHONY:  go32v1_all go32v1_debug go32v1_examples go32v1_test go32v1_smart go32v1_shared go32v1_showinstall go32v1_install go32v1_sourceinstall go32v1_zipinstall go32v1_zipsourceinstall go32v1_clean go32v1_cleanall go32v1_require go32v1_info
 
 
 go32v1_all:
 go32v1_all:
 	$(MAKE) -C go32v1 all
 	$(MAKE) -C go32v1 all
@@ -530,8 +487,8 @@ go32v1_sourceinstall:
 go32v1_zipinstall:
 go32v1_zipinstall:
 	$(MAKE) -C go32v1 zipinstall
 	$(MAKE) -C go32v1 zipinstall
 
 
-go32v1_zipinstalladd:
-	$(MAKE) -C go32v1 zipinstalladd
+go32v1_zipsourceinstall:
+	$(MAKE) -C go32v1 zipsourceinstall
 
 
 go32v1_clean:
 go32v1_clean:
 	$(MAKE) -C go32v1 clean
 	$(MAKE) -C go32v1 clean

+ 61 - 89
rtl/go32v1/Makefile

@@ -165,15 +165,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -345,17 +336,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -400,28 +380,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -433,8 +391,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -451,7 +427,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -462,19 +437,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -486,7 +458,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -498,7 +469,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -541,6 +511,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -587,6 +563,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -733,7 +712,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -741,7 +720,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Loaders
 # Loaders
@@ -850,7 +829,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -912,21 +891,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -937,43 +926,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -981,14 +947,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1075,6 +1044,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 61 - 89
rtl/go32v2/Makefile

@@ -165,15 +165,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -345,17 +336,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -400,28 +380,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -433,8 +391,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -451,7 +427,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -462,19 +437,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -486,7 +458,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -498,7 +469,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -541,6 +511,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -587,6 +563,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -733,7 +712,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -741,7 +720,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Loaders
 # Loaders
@@ -850,7 +829,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -912,21 +891,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -937,43 +926,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -981,14 +947,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1075,6 +1044,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 61 - 89
rtl/linux/Makefile

@@ -174,15 +174,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -356,17 +347,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -411,28 +391,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -444,8 +402,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -462,7 +438,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -473,19 +448,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -497,7 +469,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -509,7 +480,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -552,6 +522,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -598,6 +574,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -744,7 +723,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -752,7 +731,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Loaders
 # Loaders
@@ -861,7 +840,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -923,21 +902,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -948,43 +937,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -992,14 +958,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1086,6 +1055,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 61 - 89
rtl/os2/Makefile

@@ -165,15 +165,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -345,17 +336,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -400,28 +380,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -433,8 +391,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -451,7 +427,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -462,19 +437,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -486,7 +458,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -498,7 +469,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -541,6 +511,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -587,6 +563,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -733,7 +712,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -741,7 +720,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Loaders
 # Loaders
@@ -850,7 +829,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -912,21 +891,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -937,43 +926,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -981,14 +947,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1075,6 +1044,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 61 - 89
rtl/win32/Makefile

@@ -170,15 +170,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -350,17 +341,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -405,28 +385,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -438,8 +396,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -456,7 +432,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -467,19 +442,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -491,7 +463,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -503,7 +474,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -546,6 +516,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -592,6 +568,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -738,7 +717,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -746,7 +725,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Loaders
 # Loaders
@@ -855,7 +834,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -917,21 +896,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -942,43 +931,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -986,14 +952,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1080,6 +1049,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 14 - 64
tests/Makefile

@@ -134,20 +134,6 @@ override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(adds
 endif
 endif
 endif
 endif
 
 
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
 #####################################################################
 #####################################################################
 # User Settings
 # User Settings
 #####################################################################
 #####################################################################
@@ -171,7 +157,6 @@ ZIPTARGET=install
 
 
 # Packages
 # Packages
 
 
-override PACKAGES+=rtl
 
 
 # Libraries
 # Libraries
 
 
@@ -190,7 +175,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -201,19 +185,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -225,7 +206,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -237,7 +217,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -265,55 +244,26 @@ endif
 endif
 endif
 
 
 
 
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
 
 
-PACKAGERTL=1
+#####################################################################
+# Default Directories
+#####################################################################
 
 
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
+# set the prefix directory where to install everything
+ifndef PREFIXINSTALLDIR
+ifdef inlinux
+PREFIXINSTALLDIR=/usr
 else
 else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
+PREFIXINSTALLDIR=/pp
 endif
 endif
 endif
 endif
+export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
 
 
 #####################################################################
 #####################################################################
 # Redirection
 # Redirection

+ 74 - 91
utils/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -318,17 +319,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -384,28 +374,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -417,8 +385,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -435,7 +421,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -446,19 +431,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -470,7 +452,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -482,7 +463,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -674,6 +654,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -720,6 +706,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -869,7 +858,7 @@ sourceinstall: fpc_sourceinstall $(addsuffix _sourceinstall,$(DIROBJECTS))
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
 clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
 
 
@@ -879,7 +868,7 @@ require: $(addsuffix _require,$(DIROBJECTS))
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall require info
+.PHONY:  all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall require info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -961,7 +950,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -1023,21 +1012,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -1048,43 +1047,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -1092,14 +1068,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1186,6 +1165,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif
@@ -1203,8 +1185,9 @@ endif
 	@$(ECHO)  ZipName.............. $(ZIPNAME)
 	@$(ECHO)  ZipName.............. $(ZIPNAME)
 	@$(ECHO)
 	@$(ECHO)
 
 
-
-# Target Dirs
+#####################################################################
+# Directories
+#####################################################################
 
 
 OBJECTDIRTPLY=1
 OBJECTDIRTPLY=1
 OBJECTDIRH2PAS=1
 OBJECTDIRH2PAS=1
@@ -1213,7 +1196,7 @@ OBJECTDIRFPRCP=1
 # Dir tply
 # Dir tply
 
 
 ifdef OBJECTDIRTPLY
 ifdef OBJECTDIRTPLY
-.PHONY:  tply_all tply_debug tply_examples tply_test tply_smart tply_shared tply_showinstall tply_install tply_sourceinstall tply_zipinstall tply_zipinstalladd tply_clean tply_cleanall tply_require tply_info
+.PHONY:  tply_all tply_debug tply_examples tply_test tply_smart tply_shared tply_showinstall tply_install tply_sourceinstall tply_zipinstall tply_zipsourceinstall tply_clean tply_cleanall tply_require tply_info
 
 
 tply_all:
 tply_all:
 	$(MAKE) -C tply all
 	$(MAKE) -C tply all
@@ -1245,8 +1228,8 @@ tply_sourceinstall:
 tply_zipinstall:
 tply_zipinstall:
 	$(MAKE) -C tply zipinstall
 	$(MAKE) -C tply zipinstall
 
 
-tply_zipinstalladd:
-	$(MAKE) -C tply zipinstalladd
+tply_zipsourceinstall:
+	$(MAKE) -C tply zipsourceinstall
 
 
 tply_clean:
 tply_clean:
 	$(MAKE) -C tply clean
 	$(MAKE) -C tply clean
@@ -1264,7 +1247,7 @@ endif
 # Dir h2pas
 # Dir h2pas
 
 
 ifdef OBJECTDIRH2PAS
 ifdef OBJECTDIRH2PAS
-.PHONY:  h2pas_all h2pas_debug h2pas_examples h2pas_test h2pas_smart h2pas_shared h2pas_showinstall h2pas_install h2pas_sourceinstall h2pas_zipinstall h2pas_zipinstalladd h2pas_clean h2pas_cleanall h2pas_require h2pas_info
+.PHONY:  h2pas_all h2pas_debug h2pas_examples h2pas_test h2pas_smart h2pas_shared h2pas_showinstall h2pas_install h2pas_sourceinstall h2pas_zipinstall h2pas_zipsourceinstall h2pas_clean h2pas_cleanall h2pas_require h2pas_info
 
 
 h2pas_all:
 h2pas_all:
 	$(MAKE) -C h2pas all
 	$(MAKE) -C h2pas all
@@ -1296,8 +1279,8 @@ h2pas_sourceinstall:
 h2pas_zipinstall:
 h2pas_zipinstall:
 	$(MAKE) -C h2pas zipinstall
 	$(MAKE) -C h2pas zipinstall
 
 
-h2pas_zipinstalladd:
-	$(MAKE) -C h2pas zipinstalladd
+h2pas_zipsourceinstall:
+	$(MAKE) -C h2pas zipsourceinstall
 
 
 h2pas_clean:
 h2pas_clean:
 	$(MAKE) -C h2pas clean
 	$(MAKE) -C h2pas clean
@@ -1315,7 +1298,7 @@ endif
 # Dir fprcp
 # Dir fprcp
 
 
 ifdef OBJECTDIRFPRCP
 ifdef OBJECTDIRFPRCP
-.PHONY:  fprcp_all fprcp_debug fprcp_examples fprcp_test fprcp_smart fprcp_shared fprcp_showinstall fprcp_install fprcp_sourceinstall fprcp_zipinstall fprcp_zipinstalladd fprcp_clean fprcp_cleanall fprcp_require fprcp_info
+.PHONY:  fprcp_all fprcp_debug fprcp_examples fprcp_test fprcp_smart fprcp_shared fprcp_showinstall fprcp_install fprcp_sourceinstall fprcp_zipinstall fprcp_zipsourceinstall fprcp_clean fprcp_cleanall fprcp_require fprcp_info
 
 
 fprcp_all:
 fprcp_all:
 	$(MAKE) -C fprcp all
 	$(MAKE) -C fprcp all
@@ -1347,8 +1330,8 @@ fprcp_sourceinstall:
 fprcp_zipinstall:
 fprcp_zipinstall:
 	$(MAKE) -C fprcp zipinstall
 	$(MAKE) -C fprcp zipinstall
 
 
-fprcp_zipinstalladd:
-	$(MAKE) -C fprcp zipinstalladd
+fprcp_zipsourceinstall:
+	$(MAKE) -C fprcp zipsourceinstall
 
 
 fprcp_clean:
 fprcp_clean:
 	$(MAKE) -C fprcp clean
 	$(MAKE) -C fprcp clean

+ 62 - 80
utils/fprcp/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -733,7 +722,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -741,7 +730,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -823,7 +812,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -885,21 +874,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -910,43 +909,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -954,14 +930,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1048,6 +1027,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
utils/h2pas/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -303,17 +304,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -358,28 +348,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -391,8 +359,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -409,7 +395,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -420,19 +405,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -444,7 +426,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -456,7 +437,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -548,6 +528,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -594,6 +580,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -738,7 +727,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -746,7 +735,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -828,7 +817,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -890,21 +879,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -915,43 +914,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -959,14 +935,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1053,6 +1032,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
utils/simulator/Makefile

@@ -151,6 +151,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -302,17 +303,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -357,28 +347,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -390,8 +358,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -408,7 +394,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -419,19 +404,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -443,7 +425,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -455,7 +436,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -547,6 +527,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -593,6 +579,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -733,7 +722,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -741,7 +730,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Exes
 # Exes
@@ -823,7 +812,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -885,21 +874,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -910,43 +909,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -954,14 +930,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1048,6 +1027,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

+ 62 - 80
utils/tply/Makefile

@@ -160,6 +160,7 @@ endif
 ifndef COMPONENTSDIR
 ifndef COMPONENTSDIR
 COMPONENTSDIR=
 COMPONENTSDIR=
 endif
 endif
+
 # Create units dir
 # Create units dir
 ifneq ($(FPCDIR),.)
 ifneq ($(FPCDIR),.)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
 UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
@@ -315,17 +316,6 @@ else
 LDCONFIG=
 LDCONFIG=
 endif
 endif
 
 
-# ppdep
-ifndef PPDEP
-PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(PPDEP),)
-PPDEP=
-else
-PPDEP:=$(firstword $(PPDEP))
-endif
-endif
-export PPDEP
-
 # ppumove
 # ppumove
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
@@ -370,28 +360,6 @@ endif
 endif
 endif
 export UPXPROG
 export UPXPROG
 
 
-# gdate/date
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /date$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(EXEEXT),$(SEACHPATH))))
-ifeq ($(DATE),)
-DATE=
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-
 # ZipProg, you can't use Zip as the var name (PFV)
 # ZipProg, you can't use Zip as the var name (PFV)
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
@@ -403,8 +371,26 @@ endif
 endif
 endif
 export ZIPPROG
 export ZIPPROG
 
 
-ifndef ZIPEXT
+ZIPOPT=-9
 ZIPEXT=.zip
 ZIPEXT=.zip
+
+# Tar
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
 endif
 endif
 
 
 #####################################################################
 #####################################################################
@@ -421,7 +407,6 @@ SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 RSTEXT=.rst
 RSTEXT=.rst
-PACKAGESUFFIX=
 FPCMADE=fpcmade
 FPCMADE=fpcmade
 
 
 # Go32v1
 # Go32v1
@@ -432,19 +417,16 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 SHAREDLIBEXT=.so1
-PACKAGESUFFIX=v1
 FPCMADE=fpcmade.v1
 FPCMADE=fpcmade.v1
 endif
 endif
 
 
 # Go32v2
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 endif
 endif
 
 
 # Linux
 # Linux
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
-PACKAGESUFFIX=linux
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 endif
 endif
 
 
@@ -456,7 +438,6 @@ ASMEXT=.sw
 SMARTEXT=.slw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=w32
 FPCMADE=fpcmade.w32
 FPCMADE=fpcmade.w32
 endif
 endif
 
 
@@ -468,7 +449,6 @@ OEXT=.oo2
 SMARTEXT=.so
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-PACKAGESUFFIX=os2
 FPCMADE=fpcmade.os2
 FPCMADE=fpcmade.os2
 endif
 endif
 
 
@@ -560,6 +540,12 @@ endif
 endif
 endif
 export PREFIXINSTALLDIR
 export PREFIXINSTALLDIR
 
 
+# Where to place the resulting zip files
+ifndef DESTZIPDIR
+DESTZIPDIR:=$(BASEDIR)
+endif
+export DESTZIPDIR
+
 #####################################################################
 #####################################################################
 # Install Directories
 # Install Directories
 #####################################################################
 #####################################################################
@@ -606,6 +592,9 @@ SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
 else
 else
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
 endif
 endif
+ifdef SOURCESUBDIR
+SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+endif
 endif
 endif
 
 
 # Where the doc files will be stored
 # Where the doc files will be stored
@@ -750,7 +739,7 @@ sourceinstall: fpc_sourceinstall
 
 
 zipinstall: fpc_zipinstall
 zipinstall: fpc_zipinstall
 
 
-zipinstalladd: fpc_zipinstalladd
+zipsourceinstall: fpc_zipsourceinstall
 
 
 clean: fpc_clean
 clean: fpc_clean
 
 
@@ -758,7 +747,7 @@ cleanall: fpc_cleanall
 
 
 info: fpc_info
 info: fpc_info
 
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
 
 
 #####################################################################
 #####################################################################
 # Units
 # Units
@@ -854,7 +843,7 @@ endif
 # Install rules
 # Install rules
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_showinstall fpc_install
+.PHONY: fpc_showinstall fpc_install fpc_sourceinstall
 
 
 ifdef EXTRAINSTALLUNITS
 ifdef EXTRAINSTALLUNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
@@ -916,21 +905,31 @@ ifdef EXTRAINSTALLFILES
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
 endif
 endif
 
 
-#####################################################################
-# Source install rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
+ifndef SOURCETOPDIR
+SOURCETOPDIR=$(BASEDIR)
+endif
 
 
 fpc_sourceinstall: clean
 fpc_sourceinstall: clean
 	$(MKDIR) $(SOURCEINSTALLDIR)
 	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
+	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
+
 
 
 #####################################################################
 #####################################################################
 # Zip
 # Zip
 #####################################################################
 #####################################################################
 
 
-.PHONY: fpc_zipinstall fpc_zipinstalladd
+.PHONY: fpc_zipinstall fpc_zipsourceinstall
+
+# Create suffix to add
+ifndef PACKAGESUFFIX
+PACKAGESUFFIX=$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+PACKAGESUFFIX=dos
+endif
+ifeq ($(OS_TARGET),win32)
+PACKAGESUFFIX=w32
+endif
+endif
 
 
 # Temporary path to pack a file
 # Temporary path to pack a file
 ifndef PACKDIR
 ifndef PACKDIR
@@ -941,43 +940,20 @@ PACKDIR=/tmp/fpc-pack
 endif
 endif
 endif
 endif
 
 
-# Test dir if none specified
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-
 # Maybe create default zipname from packagename
 # Maybe create default zipname from packagename
 ifndef ZIPNAME
 ifndef ZIPNAME
 ifdef PACKAGENAME
 ifdef PACKAGENAME
-ZIPNAME=$(PACKAGENAME)$(PACKAGESUFFIX)
+ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
 endif
 endif
 endif
 endif
 
 
-# Add .zip/.tar.gz extension
-ifdef ZIPNAME
-ifndef inlinux
-override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
-endif
-endif
-
-# Note: This will not remove the zipfile first
-fpc_zipinstalladd:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
+# Use tar by default under linux
+ifndef USEZIP
 ifdef inlinux
 ifdef inlinux
-	gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
-	cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
-	gzip $(DESTZIPDIR)/$(ZIPNAME).tar
-else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+USETAR=1
 endif
 endif
-	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
-# First remove the zip and then install
 fpc_zipinstall:
 fpc_zipinstall:
 ifndef ZIPNAME
 ifndef ZIPNAME
 	@$(ECHO) "Please specify ZIPNAME!"
 	@$(ECHO) "Please specify ZIPNAME!"
@@ -985,14 +961,17 @@ ifndef ZIPNAME
 else
 else
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
 	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef inlinux
-	cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
+ifdef USETAR
+	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
 else
-	cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
+	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 endif
 	$(DELTREE) $(PACKDIR)
 	$(DELTREE) $(PACKDIR)
 endif
 endif
 
 
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
+
 #####################################################################
 #####################################################################
 # Clean rules
 # Clean rules
 #####################################################################
 #####################################################################
@@ -1079,6 +1058,9 @@ fpc_infoinstall:
 ifdef DATE
 ifdef DATE
 	@$(ECHO)  DateStr.............. $(DATESTR)
 	@$(ECHO)  DateStr.............. $(DATESTR)
 endif
 endif
+ifdef PACKAGEPREFIX
+	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
+endif
 ifdef PACKAGENAME
 ifdef PACKAGENAME
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 	@$(ECHO)  PackageName.......... $(PACKAGENAME)
 endif
 endif

Some files were not shown because too many files changed in this diff