Browse Source

* More packages converted to fpmake building

git-svn-id: trunk@20038 -
joost 13 years ago
parent
commit
76ff540c2c
63 changed files with 6946 additions and 15176 deletions
  1. 20 0
      .gitattributes
  2. 101 11
      packages/Makefile
  3. 117 10
      packages/Makefile.fpc
  4. 261 778
      packages/gdbm/Makefile
  5. 57 14
      packages/gdbm/Makefile.fpc
  6. 33 0
      packages/gdbm/Makefile.fpc.fpcmake
  7. 261 809
      packages/ibase/Makefile
  8. 58 12
      packages/ibase/Makefile.fpc
  9. 30 0
      packages/ibase/Makefile.fpc.fpcmake
  10. 261 809
      packages/mysql/Makefile
  11. 57 12
      packages/mysql/Makefile.fpc
  12. 31 0
      packages/mysql/Makefile.fpc.fpcmake
  13. 260 586
      packages/numlib/Makefile
  14. 59 7
      packages/numlib/Makefile.fpc
  15. 24 0
      packages/numlib/Makefile.fpc.fpcmake
  16. 260 589
      packages/nvapi/Makefile
  17. 59 10
      packages/nvapi/Makefile.fpc
  18. 27 0
      packages/nvapi/Makefile.fpc.fpcmake
  19. 261 809
      packages/odbc/Makefile
  20. 58 12
      packages/odbc/Makefile.fpc
  21. 30 0
      packages/odbc/Makefile.fpc.fpcmake
  22. 260 586
      packages/oggvorbis/Makefile
  23. 58 7
      packages/oggvorbis/Makefile.fpc
  24. 25 0
      packages/oggvorbis/Makefile.fpc.fpcmake
  25. 261 776
      packages/openal/Makefile
  26. 59 9
      packages/openal/Makefile.fpc
  27. 26 0
      packages/openal/Makefile.fpc.fpcmake
  28. 260 706
      packages/opencl/Makefile
  29. 58 13
      packages/opencl/Makefile.fpc
  30. 31 0
      packages/opencl/Makefile.fpc.fpcmake
  31. 261 809
      packages/oracle/Makefile
  32. 57 17
      packages/oracle/Makefile.fpc
  33. 36 0
      packages/oracle/Makefile.fpc.fpcmake
  34. 261 809
      packages/postgres/Makefile
  35. 57 12
      packages/postgres/Makefile.fpc
  36. 31 0
      packages/postgres/Makefile.fpc.fpcmake
  37. 260 586
      packages/proj4/Makefile
  38. 58 7
      packages/proj4/Makefile.fpc
  39. 25 0
      packages/proj4/Makefile.fpc.fpcmake
  40. 260 586
      packages/pthreads/Makefile
  41. 57 7
      packages/pthreads/Makefile.fpc
  42. 26 0
      packages/pthreads/Makefile.fpc.fpcmake
  43. 261 965
      packages/regexpr/Makefile
  44. 58 10
      packages/regexpr/Makefile.fpc
  45. 28 0
      packages/regexpr/Makefile.fpc.fpcmake
  46. 261 809
      packages/users/Makefile
  47. 58 13
      packages/users/Makefile.fpc
  48. 31 0
      packages/users/Makefile.fpc.fpcmake
  49. 261 776
      packages/utmp/Makefile
  50. 60 8
      packages/utmp/Makefile.fpc
  51. 24 0
      packages/utmp/Makefile.fpc.fpcmake
  52. 261 965
      packages/uuid/Makefile
  53. 57 13
      packages/uuid/Makefile.fpc
  54. 32 0
      packages/uuid/Makefile.fpc.fpcmake
  55. 260 619
      packages/x11/Makefile
  56. 58 11
      packages/x11/Makefile.fpc
  57. 29 0
      packages/x11/Makefile.fpc.fpcmake
  58. 12 977
      packages/xforms/Makefile
  59. 65 14
      packages/xforms/Makefile.fpc
  60. 32 0
      packages/xforms/Makefile.fpc.fpcmake
  61. 260 588
      packages/zorba/Makefile
  62. 57 10
      packages/zorba/Makefile.fpc
  63. 29 0
      packages/zorba/Makefile.fpc.fpcmake

+ 20 - 0
.gitattributes

@@ -2859,6 +2859,7 @@ packages/gdbint/src/gdbver.pp svneol=native#text/plain
 packages/gdbint/src/gdbver_nogdb.inc svneol=native#text/x-pascal
 packages/gdbm/Makefile svneol=native#text/plain
 packages/gdbm/Makefile.fpc svneol=native#text/plain
+packages/gdbm/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/gdbm/README.txt svneol=native#text/plain
 packages/gdbm/examples/Makefile svneol=native#text/plain
 packages/gdbm/examples/Makefile.fpc svneol=native#text/plain
@@ -3857,6 +3858,7 @@ packages/httpd22/src/util_script.inc svneol=native#text/plain
 packages/httpd22/src/util_time.inc svneol=native#text/plain
 packages/ibase/Makefile svneol=native#text/plain
 packages/ibase/Makefile.fpc svneol=native#text/plain
+packages/ibase/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/ibase/README.txt svneol=native#text/plain
 packages/ibase/examples/Makefile svneol=native#text/plain
 packages/ibase/examples/Makefile.fpc svneol=native#text/plain
@@ -5026,6 +5028,7 @@ packages/modplug/fpmake.pp svneol=native#text/plain
 packages/modplug/src/modplug.pas svneol=native#text/plain
 packages/mysql/Makefile svneol=native#text/plain
 packages/mysql/Makefile.fpc svneol=native#text/plain
+packages/mysql/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/mysql/README.txt svneol=native#text/plain
 packages/mysql/examples/Makefile svneol=native#text/plain
 packages/mysql/examples/Makefile.fpc svneol=native#text/plain
@@ -5124,6 +5127,7 @@ packages/newt/fpmake.pp svneol=native#text/plain
 packages/newt/src/newt.pp svneol=native#text/plain
 packages/numlib/Makefile svneol=native#text/plain
 packages/numlib/Makefile.fpc svneol=native#text/plain
+packages/numlib/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/numlib/doc/inv.tex svneol=native#text/plain
 packages/numlib/doc/iom.tex svneol=native#text/plain
 packages/numlib/examples/Makefile svneol=native#text/plain
@@ -5298,6 +5302,7 @@ packages/numlib/tests/timer.pas svneol=native#text/plain
 packages/numlib/tests/turte.pas svneol=native#text/plain
 packages/nvapi/Makefile svneol=native#text/plain
 packages/nvapi/Makefile.fpc svneol=native#text/plain
+packages/nvapi/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/nvapi/examples/nvapitest.pas svneol=native#text/pascal
 packages/nvapi/fpmake.pp svneol=native#text/pascal
 packages/nvapi/src/nvapi.pas svneol=native#text/pascal
@@ -5313,6 +5318,7 @@ packages/objcrtl/src/objcrtlmacosx.pas svneol=native#text/plain
 packages/objcrtl/src/objcrtlutils.pas svneol=native#text/plain
 packages/odbc/Makefile svneol=native#text/plain
 packages/odbc/Makefile.fpc svneol=native#text/plain
+packages/odbc/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/odbc/README.txt svneol=native#text/plain
 packages/odbc/examples/Makefile svneol=native#text/plain
 packages/odbc/examples/Makefile.fpc svneol=native#text/plain
@@ -5324,11 +5330,13 @@ packages/odbc/src/odbcsql.pas svneol=native#text/plain
 packages/odbc/src/odbcsqldyn.pas svneol=native#text/plain
 packages/oggvorbis/Makefile svneol=native#text/plain
 packages/oggvorbis/Makefile.fpc svneol=native#text/plain
+packages/oggvorbis/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/oggvorbis/fpmake.pp svneol=native#text/plain
 packages/oggvorbis/src/ogg.pas svneol=native#text/plain
 packages/oggvorbis/src/vorbis.pas svneol=native#text/plain
 packages/openal/Makefile svneol=native#text/plain
 packages/openal/Makefile.fpc svneol=native#text/plain
+packages/openal/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/openal/examples/Makefile svneol=native#text/plain
 packages/openal/examples/Makefile.fpc svneol=native#text/plain
 packages/openal/examples/captureplaybackopenal.pas svneol=native#text/plain
@@ -5341,6 +5349,7 @@ packages/openal/src/alh.inc svneol=native#text/plain
 packages/openal/src/openal.pas svneol=native#text/plain
 packages/opencl/Makefile svneol=native#text/plain
 packages/opencl/Makefile.fpc svneol=native#text/plain
+packages/opencl/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/opencl/examples/basicsample.pas svneol=native#text/pascal
 packages/opencl/examples/clinfo.pp svneol=native#text/pascal
 packages/opencl/fpmake.pp svneol=native#text/pascal
@@ -5385,6 +5394,7 @@ packages/openssl/fpmake.pp svneol=native#text/plain
 packages/openssl/src/openssl.pas svneol=native#text/plain
 packages/oracle/Makefile svneol=native#text/plain
 packages/oracle/Makefile.fpc svneol=native#text/plain
+packages/oracle/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/oracle/README.txt svneol=native#text/plain
 packages/oracle/examples/Makefile svneol=native#text/plain
 packages/oracle/examples/Makefile.fpc svneol=native#text/plain
@@ -5670,6 +5680,7 @@ packages/pcap/fpmake.pp svneol=native#text/plain
 packages/pcap/src/pcap.pp svneol=native#text/plain
 packages/postgres/Makefile svneol=native#text/plain
 packages/postgres/Makefile.fpc svneol=native#text/plain
+packages/postgres/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/postgres/README.txt svneol=native#text/plain
 packages/postgres/examples/Makefile svneol=native#text/plain
 packages/postgres/examples/Makefile.fpc svneol=native#text/plain
@@ -5687,6 +5698,7 @@ packages/postgres/src/postgres3dyn.pp svneol=native#text/plain
 packages/postgres/src/postgres3types.inc svneol=native#text/plain
 packages/proj4/Makefile svneol=native#text/plain
 packages/proj4/Makefile.fpc svneol=native#text/plain
+packages/proj4/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/proj4/fpmake.pp svneol=native#text/plain
 packages/proj4/src/proj.pas svneol=native#text/plain
 packages/ptc/Makefile svneol=native#text/plain
@@ -5898,6 +5910,7 @@ packages/ptc/tests/endian.inc svneol=native#text/plain
 packages/ptc/tests/view.pp svneol=native#text/plain
 packages/pthreads/Makefile svneol=native#text/plain
 packages/pthreads/Makefile.fpc svneol=native#text/plain
+packages/pthreads/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/pthreads/fpmake.pp svneol=native#text/plain
 packages/pthreads/src/pthrbeos.inc svneol=native#text/plain
 packages/pthreads/src/pthrbsd.inc svneol=native#text/plain
@@ -5914,6 +5927,7 @@ packages/pxlib/fpmake.pp svneol=native#text/plain
 packages/pxlib/src/pxlib.pp svneol=native#text/plain
 packages/regexpr/Makefile svneol=native#text/plain
 packages/regexpr/Makefile.fpc svneol=native#text/plain
+packages/regexpr/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/regexpr/examples/Makefile svneol=native#text/plain
 packages/regexpr/examples/Makefile.fpc svneol=native#text/plain
 packages/regexpr/examples/testreg1.pp svneol=native#text/plain
@@ -6491,6 +6505,7 @@ packages/unzip/src/unzipdll.pp svneol=native#text/plain
 packages/unzip/src/ziptypes.pp svneol=native#text/plain
 packages/users/Makefile svneol=native#text/plain
 packages/users/Makefile.fpc svneol=native#text/plain
+packages/users/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/users/examples/Makefile svneol=native#text/plain
 packages/users/examples/Makefile.fpc svneol=native#text/plain
 packages/users/examples/testpass.pp svneol=native#text/plain
@@ -6504,6 +6519,7 @@ packages/users/src/shadow.pp svneol=native#text/plain
 packages/users/src/users.pp svneol=native#text/plain
 packages/utmp/Makefile svneol=native#text/plain
 packages/utmp/Makefile.fpc svneol=native#text/plain
+packages/utmp/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/utmp/examples/Makefile svneol=native#text/plain
 packages/utmp/examples/Makefile.fpc svneol=native#text/plain
 packages/utmp/examples/testutmp.pp svneol=native#text/plain
@@ -6511,6 +6527,7 @@ packages/utmp/fpmake.pp svneol=native#text/plain
 packages/utmp/src/utmp.pp svneol=native#text/plain
 packages/uuid/Makefile svneol=native#text/plain
 packages/uuid/Makefile.fpc svneol=native#text/plain
+packages/uuid/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/uuid/README.txt svneol=native#text/plain
 packages/uuid/examples/Makefile svneol=native#text/plain
 packages/uuid/examples/Makefile.fpc svneol=native#text/plain
@@ -6851,6 +6868,7 @@ packages/winunits-jedi/src/jwazmouse.pas svneol=native#text/plain
 packages/winunits-jedi/tests/tjwapsapi1.pp svneol=native#text/pascal
 packages/x11/Makefile svneol=native#text/plain
 packages/x11/Makefile.fpc svneol=native#text/plain
+packages/x11/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/x11/fpmake.pp svneol=native#text/plain
 packages/x11/src/cursorfont.pp svneol=native#text/plain
 packages/x11/src/fontconfig.pas svneol=native#text/pascal
@@ -6877,6 +6895,7 @@ packages/x11/src/xv.pp svneol=native#text/plain
 packages/x11/src/xvlib.pp svneol=native#text/plain
 packages/xforms/Makefile svneol=native#text/plain
 packages/xforms/Makefile.fpc svneol=native#text/plain
+packages/xforms/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/xforms/README.txt svneol=native#text/plain
 packages/xforms/USAGE svneol=native#text/plain
 packages/xforms/examples/Makefile svneol=native#text/plain
@@ -6947,6 +6966,7 @@ packages/zlib/fpmake.pp svneol=native#text/plain
 packages/zlib/src/zlib.pp svneol=native#text/plain
 packages/zorba/Makefile svneol=native#text/plain
 packages/zorba/Makefile.fpc svneol=native#text/plain
+packages/zorba/Makefile.fpc.fpcmake svneol=native#text/plain
 packages/zorba/examples/simple/simple.lpi svneol=native#text/plain
 packages/zorba/examples/simple/simple.lpr svneol=native#text/plain
 packages/zorba/fpmake.pp svneol=native#text/plain

+ 101 - 11
packages/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/01/05]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/01/09]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
@@ -9754,11 +9754,11 @@ winunits-jedi_shared: winunits-base_shared fcl-registry_shared fcl-base_shared
 winunits-jedi_smart: winunits-base_smart fcl-registry_smart fcl-base_smart
 winunits-jedi_debug: winunits-base_debug fcl-registry_debug fcl-base_debug
 winunits-jedi_release: winunits-base_release fcl-registry_release fcl-base_release
-xforms_all: x11_all
-xforms_shared: x11_shared
-xforms_smart: x11_smart
-xforms_debug: x11_debug
-xforms_release: x11_release
+xforms_all: x11_all fpmkunit_all
+xforms_shared: x11_shared fpmkunit_shared
+xforms_smart: x11_smart fpmkunit_smart
+xforms_debug: x11_debug fpmkunit_debug
+xforms_release: x11_release fpmkunit_release
 gnome1_all: gtk1_all imlib_all
 gnome1_shared: gtk1_shared imlib_shared
 gnome1_smart: gtk1_smart imlib_smart
@@ -9781,11 +9781,11 @@ fcl-xml_smart: iconvenc_smart
 fcl-xml_debug: iconvenc_debug
 fcl-xml_release: iconvenc_release
 endif
-opencl_all:  opengl_all
-opencl_debug:  opengl_debug
-opencl_smart:  opengl_smart
-opencl_release:  opengl_release
-opencl_shared:  opengl_shared
+opencl_all:  opengl_all fpmkunit_all
+opencl_debug:  opengl_debug fpmkunit_debug
+opencl_smart:  opengl_smart fpmkunit_smart
+opencl_release:  opengl_release fpmkunit_release
+opencl_shared:  opengl_shared fpmkunit_shared
 libc_all: fpmkunit_all
 libc_shared: fpmkunit_shared
 libc_smart: fpmkunit_smart
@@ -9886,3 +9886,93 @@ syslog_shared: fpmkunit_shared
 syslog_smart: fpmkunit_smart
 syslog_debug: fpmkunit_debug
 syslog_release: fpmkunit_release
+ibase_all: fpmkunit_all
+ibase_shared: fpmkunit_shared
+ibase_smart: fpmkunit_smart
+ibase_debug: fpmkunit_debug
+ibase_release: fpmkunit_release
+mysql_all: fpmkunit_all
+mysql_shared: fpmkunit_shared
+mysql_smart: fpmkunit_smart
+mysql_debug: fpmkunit_debug
+mysql_release: fpmkunit_release
+numlib_all: fpmkunit_all
+numlib_shared: fpmkunit_shared
+numlib_smart: fpmkunit_smart
+numlib_debug: fpmkunit_debug
+numlib_release: fpmkunit_release
+oracle_all: fpmkunit_all
+oracle_shared: fpmkunit_shared
+oracle_smart: fpmkunit_smart
+oracle_debug: fpmkunit_debug
+oracle_release: fpmkunit_release
+postgres_all: fpmkunit_all
+postgres_shared: fpmkunit_shared
+postgres_smart: fpmkunit_smart
+postgres_debug: fpmkunit_debug
+postgres_release: fpmkunit_release
+pthreads_all: fpmkunit_all
+pthreads_shared: fpmkunit_shared
+pthreads_smart: fpmkunit_smart
+pthreads_debug: fpmkunit_debug
+pthreads_release: fpmkunit_release
+zorba_all: fpmkunit_all
+zorba_shared: fpmkunit_shared
+zorba_smart: fpmkunit_smart
+zorba_debug: fpmkunit_debug
+zorba_release: fpmkunit_release
+gdbm_all: fpmkunit_all
+gdbm_shared: fpmkunit_shared
+gdbm_smart: fpmkunit_smart
+gdbm_debug: fpmkunit_debug
+gdbm_release: fpmkunit_release
+proj4_all: fpmkunit_all
+proj4_shared: fpmkunit_shared
+proj4_smart: fpmkunit_smart
+proj4_debug: fpmkunit_debug
+proj4_release: fpmkunit_release
+regexpr_all: fpmkunit_all
+regexpr_shared: fpmkunit_shared
+regexpr_smart: fpmkunit_smart
+regexpr_debug: fpmkunit_debug
+regexpr_release: fpmkunit_release
+users_all: fpmkunit_all
+users_shared: fpmkunit_shared
+users_smart: fpmkunit_smart
+users_debug: fpmkunit_debug
+users_release: fpmkunit_release
+utmp_all: fpmkunit_all
+utmp_shared: fpmkunit_shared
+utmp_smart: fpmkunit_smart
+utmp_debug: fpmkunit_debug
+utmp_release: fpmkunit_release
+uuid_all: fpmkunit_all
+uuid_shared: fpmkunit_shared
+uuid_smart: fpmkunit_smart
+uuid_debug: fpmkunit_debug
+uuid_release: fpmkunit_release
+x11_all: fpmkunit_all
+x11_shared: fpmkunit_shared
+x11_smart: fpmkunit_smart
+x11_debug: fpmkunit_debug
+x11_release: fpmkunit_release
+odbc_all: fpmkunit_all
+odbc_shared: fpmkunit_shared
+odbc_smart: fpmkunit_smart
+odbc_debug: fpmkunit_debug
+odbc_release: fpmkunit_release
+oggvorbis_all: fpmkunit_all
+oggvorbis_shared: fpmkunit_shared
+oggvorbis_smart: fpmkunit_smart
+oggvorbis_debug: fpmkunit_debug
+oggvorbis_release: fpmkunit_release
+openal_all: fpmkunit_all
+openal_shared: fpmkunit_shared
+openal_smart: fpmkunit_smart
+openal_debug: fpmkunit_debug
+openal_release: fpmkunit_release
+nvapi_all: fpmkunit_all
+nvapi_shared: fpmkunit_shared
+nvapi_smart: fpmkunit_smart
+nvapi_debug: fpmkunit_debug
+nvapi_release: fpmkunit_release

+ 117 - 10
packages/Makefile.fpc

@@ -401,11 +401,11 @@ winunits-jedi_debug: winunits-base_debug fcl-registry_debug fcl-base_debug
 winunits-jedi_release: winunits-base_release fcl-registry_release fcl-base_release
 
 
-xforms_all: x11_all
-xforms_shared: x11_shared
-xforms_smart: x11_smart
-xforms_debug: x11_debug
-xforms_release: x11_release
+xforms_all: x11_all fpmkunit_all
+xforms_shared: x11_shared fpmkunit_shared
+xforms_smart: x11_smart fpmkunit_smart
+xforms_debug: x11_debug fpmkunit_debug
+xforms_release: x11_release fpmkunit_release
 
 gnome1_all: gtk1_all imlib_all
 gnome1_shared: gtk1_shared imlib_shared
@@ -433,11 +433,11 @@ fcl-xml_debug: iconvenc_debug
 fcl-xml_release: iconvenc_release
 endif
 
-opencl_all:  opengl_all
-opencl_debug:  opengl_debug
-opencl_smart:  opengl_smart
-opencl_release:  opengl_release
-opencl_shared:  opengl_shared
+opencl_all:  opengl_all fpmkunit_all
+opencl_debug:  opengl_debug fpmkunit_debug
+opencl_smart:  opengl_smart fpmkunit_smart
+opencl_release:  opengl_release fpmkunit_release
+opencl_shared:  opengl_shared fpmkunit_shared
 
 libc_all: fpmkunit_all
 libc_shared: fpmkunit_shared
@@ -559,4 +559,111 @@ syslog_smart: fpmkunit_smart
 syslog_debug: fpmkunit_debug
 syslog_release: fpmkunit_release
 
+ibase_all: fpmkunit_all
+ibase_shared: fpmkunit_shared
+ibase_smart: fpmkunit_smart
+ibase_debug: fpmkunit_debug
+ibase_release: fpmkunit_release
+
+mysql_all: fpmkunit_all
+mysql_shared: fpmkunit_shared
+mysql_smart: fpmkunit_smart
+mysql_debug: fpmkunit_debug
+mysql_release: fpmkunit_release
+
+numlib_all: fpmkunit_all
+numlib_shared: fpmkunit_shared
+numlib_smart: fpmkunit_smart
+numlib_debug: fpmkunit_debug
+numlib_release: fpmkunit_release
+
+oracle_all: fpmkunit_all
+oracle_shared: fpmkunit_shared
+oracle_smart: fpmkunit_smart
+oracle_debug: fpmkunit_debug
+oracle_release: fpmkunit_release
+
+postgres_all: fpmkunit_all
+postgres_shared: fpmkunit_shared
+postgres_smart: fpmkunit_smart
+postgres_debug: fpmkunit_debug
+postgres_release: fpmkunit_release
+
+pthreads_all: fpmkunit_all
+pthreads_shared: fpmkunit_shared
+pthreads_smart: fpmkunit_smart
+pthreads_debug: fpmkunit_debug
+pthreads_release: fpmkunit_release
+
+zorba_all: fpmkunit_all
+zorba_shared: fpmkunit_shared
+zorba_smart: fpmkunit_smart
+zorba_debug: fpmkunit_debug
+zorba_release: fpmkunit_release
+
+gdbm_all: fpmkunit_all
+gdbm_shared: fpmkunit_shared
+gdbm_smart: fpmkunit_smart
+gdbm_debug: fpmkunit_debug
+gdbm_release: fpmkunit_release
+
+proj4_all: fpmkunit_all
+proj4_shared: fpmkunit_shared
+proj4_smart: fpmkunit_smart
+proj4_debug: fpmkunit_debug
+proj4_release: fpmkunit_release
+
+regexpr_all: fpmkunit_all
+regexpr_shared: fpmkunit_shared
+regexpr_smart: fpmkunit_smart
+regexpr_debug: fpmkunit_debug
+regexpr_release: fpmkunit_release
+
+users_all: fpmkunit_all
+users_shared: fpmkunit_shared
+users_smart: fpmkunit_smart
+users_debug: fpmkunit_debug
+users_release: fpmkunit_release
+
+utmp_all: fpmkunit_all
+utmp_shared: fpmkunit_shared
+utmp_smart: fpmkunit_smart
+utmp_debug: fpmkunit_debug
+utmp_release: fpmkunit_release
+
+uuid_all: fpmkunit_all
+uuid_shared: fpmkunit_shared
+uuid_smart: fpmkunit_smart
+uuid_debug: fpmkunit_debug
+uuid_release: fpmkunit_release
+
+x11_all: fpmkunit_all
+x11_shared: fpmkunit_shared
+x11_smart: fpmkunit_smart
+x11_debug: fpmkunit_debug
+x11_release: fpmkunit_release
+
+odbc_all: fpmkunit_all
+odbc_shared: fpmkunit_shared
+odbc_smart: fpmkunit_smart
+odbc_debug: fpmkunit_debug
+odbc_release: fpmkunit_release
+
+oggvorbis_all: fpmkunit_all
+oggvorbis_shared: fpmkunit_shared
+oggvorbis_smart: fpmkunit_smart
+oggvorbis_debug: fpmkunit_debug
+oggvorbis_release: fpmkunit_release
+
+openal_all: fpmkunit_all
+openal_shared: fpmkunit_shared
+openal_smart: fpmkunit_smart
+openal_debug: fpmkunit_debug
+openal_release: fpmkunit_release
+
+nvapi_all: fpmkunit_all
+nvapi_shared: fpmkunit_shared
+nvapi_smart: fpmkunit_smart
+nvapi_debug: fpmkunit_debug
+nvapi_release: fpmkunit_release
 

File diff suppressed because it is too large
+ 261 - 778
packages/gdbm/Makefile


+ 57 - 14
packages/gdbm/Makefile.fpc

@@ -1,33 +1,76 @@
 #
-#   Makefile.fpc for gdbm bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=gdbm
 version=2.7.1
 
-[target]
-units=gdbm
-exampledirs=examples
-
 [require]
-package=rtl
+packages=rtl fpmkunit
 
 [install]
-examplesubdir=gdbm
 fpcpackage=y
 
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests
-
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 33 - 0
packages/gdbm/Makefile.fpc.fpcmake

@@ -0,0 +1,33 @@
+#
+#   Makefile.fpc for gdbm bindings
+#
+
+[package]
+name=gdbm
+version=2.7.1
+
+[target]
+units=gdbm
+exampledirs=examples
+
+[require]
+package=rtl
+
+[install]
+examplesubdir=gdbm
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests
+
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 261 - 809
packages/ibase/Makefile


+ 58 - 12
packages/ibase/Makefile.fpc

@@ -1,17 +1,13 @@
 #
-#   Makefile.fpc for InterBase bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=ibase
 version=2.7.1
 
-[target]
-units=ibase40 ibase60 ibase60dyn
-exampledirs=examples
-
 [require]
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -19,12 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 30 - 0
packages/ibase/Makefile.fpc.fpcmake

@@ -0,0 +1,30 @@
+#
+#   Makefile.fpc for InterBase bindings
+#
+
+[package]
+name=ibase
+version=2.7.1
+
+[target]
+units=ibase40 ibase60 ibase60dyn
+exampledirs=examples
+
+[require]
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 261 - 809
packages/mysql/Makefile


+ 57 - 12
packages/mysql/Makefile.fpc

@@ -1,17 +1,13 @@
 #
-#   Makefile.fpc for MySql bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=mysql
 version=2.7.1
 
-[target]
-units=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn mysql40 mysql40dyn mysql41 mysql41dyn mysql50 mysql50dyn mysql51 mysql51dyn
-exampledirs=examples
-
 [require]
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -19,13 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[shared]
-build=n
-
-[compiler]
-includedir=src 
-sourcedir=src
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 31 - 0
packages/mysql/Makefile.fpc.fpcmake

@@ -0,0 +1,31 @@
+#
+#   Makefile.fpc for MySql bindings
+#
+
+[package]
+name=mysql
+version=2.7.1
+
+[target]
+units=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn mysql40 mysql40dyn mysql41 mysql41dyn mysql50 mysql50dyn mysql51 mysql51dyn
+exampledirs=examples
+
+[require]
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[shared]
+build=n
+
+[compiler]
+includedir=src 
+sourcedir=src
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 260 - 586
packages/numlib/Makefile


+ 59 - 7
packages/numlib/Makefile.fpc

@@ -1,14 +1,13 @@
 #
-#   Makefile.fpc for NumLib
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=numlib
 version=2.7.1
 
-[target]
-# warning, tpnumlib is a library, not a unit.
-units=typ omv dsl mdt det eig eigh1 eigh2 int inv iom ipf ode roo sle spe spl numlib 
+[require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -16,9 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests examples
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 24 - 0
packages/numlib/Makefile.fpc.fpcmake

@@ -0,0 +1,24 @@
+#
+#   Makefile.fpc for NumLib
+#
+
+[package]
+name=numlib
+version=2.7.1
+
+[target]
+# warning, tpnumlib is a library, not a unit.
+units=typ omv dsl mdt det eig eigh1 eigh2 int inv iom ipf ode roo sle spe spl numlib 
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests examples
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 260 - 589
packages/nvapi/Makefile


+ 59 - 10
packages/nvapi/Makefile.fpc

@@ -1,27 +1,76 @@
 #
-#   Makefile.fpc for Free Pascal NvAPI Packages
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=nvapi
 version=2.7.1
 
-[target]
-units=nvapi
-
-[compiler]
-includedir=src
-sourcedir=src
+[require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
-fpcsubdir=packages
 
 [default]
 fpcdir=../..
 
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 27 - 0
packages/nvapi/Makefile.fpc.fpcmake

@@ -0,0 +1,27 @@
+#
+#   Makefile.fpc for Free Pascal NvAPI Packages
+#
+
+[package]
+name=nvapi
+version=2.7.1
+
+[target]
+units=nvapi
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[install]
+fpcpackage=y
+fpcsubdir=packages
+
+[default]
+fpcdir=../..
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 261 - 809
packages/odbc/Makefile


+ 58 - 12
packages/odbc/Makefile.fpc

@@ -1,16 +1,13 @@
 #
-#   Makefile.fpc for odbc bindings
+#   Makefile.fpc for running fpmake
 #
+
 [package]
 name=odbc
 version=2.7.1
 
-[target]
-units=odbcsql odbcsqldyn
-exampledirs=examples
-
 [require]
-libc=n
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -18,13 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 30 - 0
packages/odbc/Makefile.fpc.fpcmake

@@ -0,0 +1,30 @@
+#
+#   Makefile.fpc for odbc bindings
+#
+[package]
+name=odbc
+version=2.7.1
+
+[target]
+units=odbcsql odbcsqldyn
+exampledirs=examples
+
+[require]
+libc=n
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 260 - 586
packages/oggvorbis/Makefile


+ 58 - 7
packages/oggvorbis/Makefile.fpc

@@ -1,15 +1,13 @@
 #
-#   Makefile.fpc for oggvorbis bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=oggvorbis
 version=2.7.1
 
-[target]
-units=ogg vorbis
-
 [require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -17,9 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 25 - 0
packages/oggvorbis/Makefile.fpc.fpcmake

@@ -0,0 +1,25 @@
+#
+#   Makefile.fpc for oggvorbis bindings
+#
+
+[package]
+name=oggvorbis
+version=2.7.1
+
+[target]
+units=ogg vorbis
+
+[require]
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 261 - 776
packages/openal/Makefile


+ 59 - 9
packages/openal/Makefile.fpc

@@ -1,26 +1,76 @@
 #
-#   Makefile.fpc for OpenAL bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=openal
 version=2.7.1
 
-[target]
-units=openal
-exampledirs=examples
-
 [require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
 
-[compiler]
-includedir=src
-sourcedir=src tests examples
-
 [default]
 fpcdir=../..
 
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
+
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 26 - 0
packages/openal/Makefile.fpc.fpcmake

@@ -0,0 +1,26 @@
+#
+#   Makefile.fpc for OpenAL bindings
+#
+
+[package]
+name=openal
+version=2.7.1
+
+[target]
+units=openal
+exampledirs=examples
+
+[require]
+
+[install]
+fpcpackage=y
+
+[compiler]
+includedir=src
+sourcedir=src tests examples
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 260 - 706
packages/opencl/Makefile


+ 58 - 13
packages/opencl/Makefile.fpc

@@ -1,31 +1,76 @@
 #
-#   Makefile.fpc for Free Pascal opencl Packages
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=opencl
 version=2.7.1
 
-[target]
-units=cl cl_gl
-
 [require]
-libc=y
-packages=opengl
-
-[compiler]
-includedir=src
-sourcedir=src
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
-fpcsubdir=packages
 
 [default]
 fpcdir=../..
 
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 31 - 0
packages/opencl/Makefile.fpc.fpcmake

@@ -0,0 +1,31 @@
+#
+#   Makefile.fpc for Free Pascal opencl Packages
+#
+
+[package]
+name=opencl
+version=2.7.1
+
+[target]
+units=cl cl_gl
+
+[require]
+libc=y
+packages=opengl
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[install]
+fpcpackage=y
+fpcsubdir=packages
+
+[default]
+fpcdir=../..
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 261 - 809
packages/oracle/Makefile


+ 57 - 17
packages/oracle/Makefile.fpc

@@ -1,17 +1,13 @@
 #
-#  Makefile.fpc for oracle units
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=oracle
 version=2.7.1
 
-[target]
-units=oci ocidyn oratypes oraoci
-exampledirs=examples
-
 [require]
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -19,18 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests
-
-# in libdir variable must be path to libraries
-# libclntsh.*,libnlsrtl3.*
-#[compiler]
-#libdir=/usr/local/oracle8cli/lib
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 36 - 0
packages/oracle/Makefile.fpc.fpcmake

@@ -0,0 +1,36 @@
+#
+#  Makefile.fpc for oracle units
+#
+
+[package]
+name=oracle
+version=2.7.1
+
+[target]
+units=oci ocidyn oratypes oraoci
+exampledirs=examples
+
+[require]
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests
+
+# in libdir variable must be path to libraries
+# libclntsh.*,libnlsrtl3.*
+#[compiler]
+#libdir=/usr/local/oracle8cli/lib
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 261 - 809
packages/postgres/Makefile


+ 57 - 12
packages/postgres/Makefile.fpc

@@ -1,17 +1,13 @@
 #
-#   Makefile.fpc for Postgres bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=postgres
 version=2.7.1
 
-[target]
-units=dllist dllistdyn postgres postgres3 postgres3dyn
-exampledirs=examples
-
 [require]
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -19,13 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 31 - 0
packages/postgres/Makefile.fpc.fpcmake

@@ -0,0 +1,31 @@
+#
+#   Makefile.fpc for Postgres bindings
+#
+
+[package]
+name=postgres
+version=2.7.1
+
+[target]
+units=dllist dllistdyn postgres postgres3 postgres3dyn
+exampledirs=examples
+
+[require]
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 260 - 586
packages/proj4/Makefile


+ 58 - 7
packages/proj4/Makefile.fpc

@@ -1,15 +1,13 @@
 #
-#   Makefile.fpc for proj.4 bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=proj4
 version=2.7.1
 
-[target]
-units=proj
-
 [require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -17,9 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 25 - 0
packages/proj4/Makefile.fpc.fpcmake

@@ -0,0 +1,25 @@
+#
+#   Makefile.fpc for proj.4 bindings
+#
+
+[package]
+name=proj4
+version=2.7.1
+
+[target]
+units=proj
+
+[require]
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 260 - 586
packages/pthreads/Makefile


+ 57 - 7
packages/pthreads/Makefile.fpc

@@ -1,15 +1,13 @@
 #
-#   Makefile.fpc for pthreads implementation
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=pthreads
 version=2.7.1
 
-[target]
-units=pthreads
-
 [require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -17,10 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 26 - 0
packages/pthreads/Makefile.fpc.fpcmake

@@ -0,0 +1,26 @@
+#
+#   Makefile.fpc for pthreads implementation
+#
+
+[package]
+name=pthreads
+version=2.7.1
+
+[target]
+units=pthreads
+
+[require]
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 261 - 965
packages/regexpr/Makefile


+ 58 - 10
packages/regexpr/Makefile.fpc

@@ -1,17 +1,13 @@
 #
-#   Makefile.fpc for RegExpr
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=regexpr
 version=2.7.1
 
-[target]
-units=regex regexpr oldregexpr
-exampledirs=examples
-
-[compiler]
-options=-S2
+[require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -19,10 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests examples
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 28 - 0
packages/regexpr/Makefile.fpc.fpcmake

@@ -0,0 +1,28 @@
+#
+#   Makefile.fpc for RegExpr
+#
+
+[package]
+name=regexpr
+version=2.7.1
+
+[target]
+units=regex regexpr oldregexpr
+exampledirs=examples
+
+[compiler]
+options=-S2
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests examples
+
+[rules]
+.NOTPARALLEL:
+

File diff suppressed because it is too large
+ 261 - 809
packages/users/Makefile


+ 58 - 13
packages/users/Makefile.fpc

@@ -1,18 +1,13 @@
 #
-#   Makefile.fpc for Users  bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=users
 version=2.7.1
 
-[target]
-units=grp pwd users
-units_linux=shadow crypth
-exampledirs=examples
-
 [require]
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -20,12 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 31 - 0
packages/users/Makefile.fpc.fpcmake

@@ -0,0 +1,31 @@
+#
+#   Makefile.fpc for Users  bindings
+#
+
+[package]
+name=users
+version=2.7.1
+
+[target]
+units=grp pwd users
+units_linux=shadow crypth
+exampledirs=examples
+
+[require]
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 261 - 776
packages/utmp/Makefile


+ 60 - 8
packages/utmp/Makefile.fpc

@@ -1,24 +1,76 @@
 #
-#   Makefile.fpc for UTmp Unit
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=utmp
 version=2.7.1
 
-[target]
-units=utmp
-exampledirs=examples
+[require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
 
-[compiler]
-includedir=src
-sourcedir=src
-
 [default]
 fpcdir=../..
 
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
+
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 24 - 0
packages/utmp/Makefile.fpc.fpcmake

@@ -0,0 +1,24 @@
+#
+#   Makefile.fpc for UTmp Unit
+#
+
+[package]
+name=utmp
+version=2.7.1
+
+[target]
+units=utmp
+exampledirs=examples
+
+[install]
+fpcpackage=y
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 261 - 965
packages/uuid/Makefile


+ 57 - 13
packages/uuid/Makefile.fpc

@@ -1,32 +1,76 @@
 #
-#   Makefile.fpc for gdbm bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=uuid
 version=2.7.1
 
-[target]
-units=macuuid libuuid
-exampledirs=examples
-
 [require]
-package=rtl
+packages=rtl fpmkunit
 
 [install]
-examplesubdir=tests
 fpcpackage=y
 
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests examples
-unitdir=units/$(OS_TARGET)
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
-#testuid$(EXEEXT): testuid.pp uuid$(PPUEXT)
 
-testlibuid$(EXEEXT): testlibuid.pp libuuid$(PPUEXT)
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 32 - 0
packages/uuid/Makefile.fpc.fpcmake

@@ -0,0 +1,32 @@
+#
+#   Makefile.fpc for gdbm bindings
+#
+
+[package]
+name=uuid
+version=2.7.1
+
+[target]
+units=macuuid libuuid
+exampledirs=examples
+
+[require]
+package=rtl
+
+[install]
+examplesubdir=tests
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests examples
+unitdir=units/$(OS_TARGET)
+
+[rules]
+.NOTPARALLEL:
+#testuid$(EXEEXT): testuid.pp uuid$(PPUEXT)
+
+testlibuid$(EXEEXT): testlibuid.pp libuuid$(PPUEXT)

File diff suppressed because it is too large
+ 260 - 619
packages/x11/Makefile


+ 58 - 11
packages/x11/Makefile.fpc

@@ -1,16 +1,13 @@
 #
-#   Makefile.fpc for X11 Bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=x11
 version=2.7.1
 
-[target]
-units=x xlib xutil xresource xcms xshm xrender keysym xi xkb xkblib xatom xinerama xv xvlib cursorfont xrandr xf86dga xf86vmode xft fontconfig
-
 [require]
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -18,12 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 29 - 0
packages/x11/Makefile.fpc.fpcmake

@@ -0,0 +1,29 @@
+#
+#   Makefile.fpc for X11 Bindings
+#
+
+[package]
+name=x11
+version=2.7.1
+
+[target]
+units=x xlib xutil xresource xcms xshm xrender keysym xi xkb xkblib xatom xinerama xv xvlib cursorfont xrandr xf86dga xf86vmode xft fontconfig
+
+[require]
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 12 - 977
packages/xforms/Makefile


+ 65 - 14
packages/xforms/Makefile.fpc

@@ -1,19 +1,13 @@
 #
-#   Makefile.fpc for Forms Bindings
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=xforms
 version=2.7.1
 
-[target]
-units=xforms
-programs=fd2pascal
-exampledirs=examples
-
 [require]
-packages=x11
-libc=y
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -21,12 +15,69 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests examples
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
+# By default COMPILER_TARGETDIR is set to '.'. This is passed in the -FE parameter to the compiler
+# which leads to executables being placed into the wrong directory by the compiler.
+ifdef PACKAGEDIR_MAIN
+COMPILER_TARGETDIR=$(PACKAGEDIR_MAIN)/bin/$(TARGETSUFFIX)
+else
+COMPILER_TARGETDIR=bin/$(TARGETSUFFIX)
+endif
 
 [rules]
 .NOTPARALLEL:
+
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 32 - 0
packages/xforms/Makefile.fpc.fpcmake

@@ -0,0 +1,32 @@
+#
+#   Makefile.fpc for Forms Bindings
+#
+
+[package]
+name=xforms
+version=2.7.1
+
+[target]
+units=xforms
+programs=fd2pascal
+exampledirs=examples
+
+[require]
+packages=x11
+libc=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests examples
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:

File diff suppressed because it is too large
+ 260 - 588
packages/zorba/Makefile


+ 57 - 10
packages/zorba/Makefile.fpc

@@ -1,15 +1,13 @@
 #
-#   Makefile.fpc for sqlite implementation
+#   Makefile.fpc for running fpmake
 #
 
 [package]
 name=zorba
 version=2.7.1
 
-[target]
-units=xqc zorba zorbadyn
-
 [require]
+packages=rtl fpmkunit
 
 [install]
 fpcpackage=y
@@ -17,13 +15,62 @@ fpcpackage=y
 [default]
 fpcdir=../..
 
-[compiler]
-includedir=src
-sourcedir=src tests examples
-
-[shared]
-build=n
+[prerules]
+FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
+ifdef OS_TARGET
+FPC_TARGETOPT+=--os=$(OS_TARGET)
+endif
+ifdef CPU_TARGET
+FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
+endif
+LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
 
 [rules]
 .NOTPARALLEL:
 
+fpmake: fpmake.pp
+	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
+all:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
+smart:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
+release:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
+debug:	fpmake
+	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dDEBUG
+# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
+# most often fail because the dependencies are cleared.
+# In case of a clean, simply do nothing
+ifeq ($(FPMAKE_BIN_CLEAN),)
+clean:	
+else
+clean:	
+	$(FPMAKE_BIN_CLEAN) clean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
+# when the package is compiled using fpcmake prior to running this clean using fpmake
+ifeq ($(FPMAKE_BIN_CLEAN),)
+distclean:	$(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+else
+distclean:	
+ifdef inUnix
+        { $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi;  }
+else
+        $(FPMAKE_BIN_CLEAN) distclean --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
+endif
+	-$(DEL) $(LOCALFPMAKE)
+endif
+install:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
+endif
+# distinstall also installs the example-sources
+distinstall:	fpmake
+ifdef UNIXHier
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+else
+	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
+endif
+

+ 29 - 0
packages/zorba/Makefile.fpc.fpcmake

@@ -0,0 +1,29 @@
+#
+#   Makefile.fpc for sqlite implementation
+#
+
+[package]
+name=zorba
+version=2.7.1
+
+[target]
+units=xqc zorba zorbadyn
+
+[require]
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests examples
+
+[shared]
+build=n
+
+[rules]
+.NOTPARALLEL:
+

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