Makefile.fpc 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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) $(UNIX98PTYUNIT)
  21. implicitunits=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
  22. rsts=$(MATHUNIT) $(TYPINFOUNIT) $(CLASSESUNIT) $(SYSCONSTUNIT) $(UNICODEDATAUNIT)
  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. SYSTEMDIR = $(BSDINC)
  61. SYSUTILSDIR=$(UNIXINC)
  62. SYSUTILS_DEPS_OS = $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT)
  63. loaders+=gprt0
  64. ifeq ($(ARCH),i386)
  65. CPU_UNITS=$(X86UNIT) $(PORTSUNIT) $(CPUUNIT) $(MMXUNIT) $(INTRINSICSUNIT)
  66. ASTARGET=--32
  67. endif
  68. ifeq ($(ARCH),x86_64)
  69. CPU_UNITS=$(X86UNIT) $(PORTSUNIT) $(CPUUNIT) $(INTRINSICSUNIT)
  70. ASTARGET=--64
  71. endif
  72. ifeq ($(ARCH),aarch64)
  73. CPU_UNITS=$(INTRINSICSUNIT)
  74. endif
  75. ifeq ($(ARCH),powerpc64)
  76. CPU_UNITS=$(INTRINSICSUNIT)
  77. endif
  78. # Paths
  79. OBJPASDIR=$(RTL)/objpas
  80. [rules]
  81. .NOTPARALLEL:
  82. # Get the system independent include file names.
  83. # This will set the following variables :
  84. # SYSINCNAMES
  85. include $(INC)/makefile.inc
  86. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  87. # Get the processor dependent include file names.
  88. # This will set the following variables :
  89. # CPUINCNAMES
  90. include $(PROCINC)/makefile.cpu
  91. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  92. # Put system unit dependencies together.
  93. SYSDEPS = unxconst.inc $(SYSINCDEPS) $(SYSCPUDEPS)
  94. #
  95. # Loaders
  96. #
  97. prt0$(OEXT) : $(CPU_TARGET)/prt0.as
  98. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
  99. cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
  100. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
  101. gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
  102. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
  103. dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
  104. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
  105. #
  106. # freebsd unit
  107. #
  108. ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
  109. FREEBSD_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
  110. else
  111. FREEBSD_DEPS_OS+=$(INITCUNIT)$(PPUEXT)
  112. endif
  113. FREEBSD_DEPS = freebsd.pas $(SYSTEMUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(SYSCTLUNIT)$(PPUEXT) \
  114. $(FREEBSD_DEPS_OS) $(FREEBSD_DEPS_CPU)
  115. freebsd$(PPUEXT): $(FREEBSD_DEPS)
  116. $(COMPILER) $(FREEBSD_OPT) $<
  117. FreeBSDApi.FreeBSD$(PPUEXT): $(NSFREEBSDDIR)/FreeBSDApi.FreeBSD.pas $(FREEBSD_DEPS)
  118. $(COMPILER) $(FREEBSD_OPT) $<