Makefile.fpc 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #
  2. # Makefile.fpc for Free Pascal FreeBSD RTL
  3. #
  4. [package]
  5. main=rtl
  6. [install]
  7. fpcpackage=y
  8. [target]
  9. loaders=prt0 cprt0 gprt0 dllprt0
  10. units=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) \
  11. $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) \
  12. $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) \
  13. $(DLUNIT) $(TERMIOUNIT) \
  14. $(SYSUTILSUNIT) $(MATHUNIT) $(TYPINFOUNIT) $(TYPESUNIT) $(SORTBASEUNIT) $(CLASSESUNIT) $(FGLUNIT) $(DYNLIBSUNIT) \
  15. $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) \
  16. $(ERRORSUNIT) $(BSDUNIT) $(FREEBSDUNIT) \
  17. $(CONSOLEUNIT) \
  18. $(SYSCONSTUNIT) $(CTHREADSUNIT) $(DOSUNIT) $(CWSTRINGUNIT) \
  19. $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) \
  20. $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
  21. implicitunits=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
  22. rsts=$(MATHUNIT) $(TYPINFOUNIT) $(CLASSESUNIT) $(SYSCONSTUNIT)
  23. [require]
  24. nortl=y
  25. [install]
  26. fpcpackage=y
  27. [default]
  28. target=freebsd
  29. [compiler]
  30. includedir=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
  31. sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
  32. [lib]
  33. libname=libfprtl.so
  34. libversion=2.0.0
  35. libunits=$(SYSTEMUNIT) $(OBJPASUNIT) $(STRINGSUNIT) \
  36. $(UNIXUNIT) \
  37. $(DOSUNIT) \
  38. $(SYSUTILSUNIT) $(TYPINFOUNIT) $(MATHUNIT) \
  39. $(CPU_UNITS) $(GETOPTSUNIT) $(HEAPTRCUNIT) \
  40. $(ERRORSUNIT) $(DYNLIBSUNIT)
  41. [prerules]
  42. RTL=..
  43. INC=$(RTL)/inc
  44. PORTSDIR=$(RTL)/unix
  45. COMMON=$(RTL)/common
  46. PROCINC=$(RTL)/$(CPU_TARGET)
  47. OSPROCINC=$(RTL)/freebsd/$(CPU_TARGET)
  48. BSDINC=$(RTL)/bsd
  49. BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
  50. UNIXINC=$(RTL)/unix
  51. UNITPREFIX=rtl
  52. CPU_UNITS=
  53. BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
  54. BSD_DEPS_OS=$(SYSCALLUNIT)$(PPUEXT)
  55. CLASSESDIR=$(UNIXINC)
  56. DOSDIR=$(UNIXINC)
  57. DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
  58. DYNLIBSINCDIR=$(UNIXINC)
  59. SYSCALL_DEPS_OS = sysnr.inc $(BSDPROCINC)/syscallh.inc
  60. SYSUTILSDIR=$(UNIXINC)
  61. SYSUTILS_DEPS_OS = $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT)
  62. loaders+=gprt0
  63. ifeq ($(ARCH),i386)
  64. CPU_UNITS=$(X86UNIT) $(PORTSUNIT) $(CPUUNIT) $(MMXUNIT)
  65. ASTARGET=--32
  66. endif
  67. ifeq ($(ARCH),x86_64)
  68. CPU_UNITS=$(X86UNIT) $(PORTSUNIT) $(CPUUNIT)
  69. ASTARGET=--64
  70. endif
  71. # Paths
  72. OBJPASDIR=$(RTL)/objpas
  73. [rules]
  74. .NOTPARALLEL:
  75. # Get the system independent include file names.
  76. # This will set the following variables :
  77. # SYSINCNAMES
  78. include $(INC)/makefile.inc
  79. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  80. # Get the processor dependent include file names.
  81. # This will set the following variables :
  82. # CPUINCNAMES
  83. include $(PROCINC)/makefile.cpu
  84. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  85. # Put system unit dependencies together.
  86. SYSDEPS = unxconst.inc $(SYSINCDEPS) $(SYSCPUDEPS)
  87. SYSTEMDIR = $(BSDINC)
  88. #
  89. # Loaders
  90. #
  91. prt0$(OEXT) : $(CPU_TARGET)/prt0.as
  92. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
  93. cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
  94. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
  95. gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
  96. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
  97. dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
  98. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
  99. #
  100. # freebsd unit
  101. #
  102. ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
  103. FREEBSD_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
  104. else
  105. FREEBSD_DEPS_OS+=$(INITCUNIT)$(PPUEXT)
  106. endif
  107. FREEBSD_DEPS = freebsd.pas $(SYSTEMUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(SYSCTLUNIT)$(PPUEXT) \
  108. $(FREEBSD_DEPS_OS) $(FREEBSD_DEPS_CPU)
  109. freebsd$(PPUEXT): $(FREEBSD_DEPS)
  110. $(COMPILER) $(FREEBSD_OPT) $<
  111. FreeBSDApi.FreeBSD$(PPUEXT): $(NSFREEBSDDIR)/FreeBSDApi.FreeBSD.pas $(FREEBSD_DEPS)
  112. $(COMPILER) $(FREEBSD_OPT) $<