Makefile 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364
  1. #
  2. # Makefile generated by fpcmake v1.00 [2000/10/01]
  3. #
  4. defaultrule: all
  5. #####################################################################
  6. # Autodetect OS (Linux or Dos or Windows NT)
  7. # define inUnix when running under Unix (Linux,FreeBSD)
  8. # define inWinNT when running under WinNT
  9. #####################################################################
  10. # We need only / in the path
  11. override PATH:=$(subst \,/,$(PATH))
  12. # Search for PWD and determine also if we are under linux
  13. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
  14. ifeq ($(PWD),)
  15. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
  16. ifeq ($(PWD),)
  17. nopwd:
  18. @echo You need the GNU utils package to use this Makefile!
  19. @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
  20. @exit
  21. else
  22. inUnix=1
  23. endif
  24. else
  25. PWD:=$(firstword $(PWD))
  26. endif
  27. # Detect NT - NT sets OS to Windows_NT
  28. # Detect OS/2 - OS/2 has OS2_SHELL defined
  29. ifndef inUnix
  30. ifeq ($(OS),Windows_NT)
  31. inWinNT=1
  32. else
  33. ifdef OS2_SHELL
  34. inOS2=1
  35. endif
  36. endif
  37. endif
  38. # The extension of executables
  39. ifdef inUnix
  40. SRCEXEEXT=
  41. else
  42. SRCEXEEXT=.exe
  43. endif
  44. # The path which is searched separated by spaces
  45. ifdef inUnix
  46. SEARCHPATH=$(subst :, ,$(PATH))
  47. else
  48. SEARCHPATH=$(subst ;, ,$(PATH))
  49. endif
  50. # Base dir
  51. ifdef PWD
  52. BASEDIR:=$(shell $(PWD))
  53. else
  54. BASEDIR=.
  55. endif
  56. #####################################################################
  57. # Default target
  58. #####################################################################
  59. override OS_TARGET:=os2
  60. override CPU_TARGET:=i386
  61. #####################################################################
  62. # FPC version/target Detection
  63. #####################################################################
  64. # What compiler to use ?
  65. ifndef FPC
  66. # Compatibility with old makefiles
  67. ifdef PP
  68. FPC=$(PP)
  69. else
  70. FPC=ppc386
  71. endif
  72. endif
  73. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  74. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  75. # Target OS
  76. ifndef OS_TARGET
  77. OS_TARGET:=$(shell $(FPC) -iTO)
  78. endif
  79. # Source OS
  80. ifndef OS_SOURCE
  81. OS_SOURCE:=$(shell $(FPC) -iSO)
  82. endif
  83. # Target CPU
  84. ifndef CPU_TARGET
  85. CPU_TARGET:=$(shell $(FPC) -iTP)
  86. endif
  87. # Source CPU
  88. ifndef CPU_SOURCE
  89. CPU_SOURCE:=$(shell $(FPC) -iSP)
  90. endif
  91. # FPC version
  92. ifndef FPC_VERSION
  93. FPC_VERSION:=$(shell $(FPC) -iV)
  94. endif
  95. export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
  96. #####################################################################
  97. # Pre Settings
  98. #####################################################################
  99. RTL=..
  100. INC=$(RTL)/inc
  101. PROCINC=$(RTL)/$(CPU_TARGET)
  102. UNITPREFIX=rtl
  103. # Paths
  104. OBJPASDIR=$(RTL)/objpas
  105. GRAPHDIR=$(INC)/graph
  106. # Define Go32v2 Units
  107. SYSTEMUNIT=sysos2
  108. #####################################################################
  109. # FPCDIR Setting
  110. #####################################################################
  111. # Test FPCDIR to look if the RTL dir exists
  112. ifdef FPCDIR
  113. override FPCDIR:=$(subst \,/,$(FPCDIR))
  114. ifeq ($(wildcard $(FPCDIR)/rtl),)
  115. ifeq ($(wildcard $(FPCDIR)/units),)
  116. override FPCDIR=wrong
  117. endif
  118. endif
  119. else
  120. override FPCDIR=wrong
  121. endif
  122. # Default FPCDIR
  123. ifeq ($(FPCDIR),wrong)
  124. override FPCDIR=.
  125. ifeq ($(wildcard $(FPCDIR)/rtl),)
  126. ifeq ($(wildcard $(FPCDIR)/units),)
  127. override FPCDIR=wrong
  128. endif
  129. endif
  130. endif
  131. # Detect FPCDIR
  132. ifeq ($(FPCDIR),wrong)
  133. ifdef inUnix
  134. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  135. ifeq ($(wildcard $(FPCDIR)/units),)
  136. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  137. endif
  138. else
  139. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  140. override FPCDIR:=$(FPCDIR)/..
  141. ifeq ($(wildcard $(FPCDIR)/rtl),)
  142. ifeq ($(wildcard $(FPCDIR)/units),)
  143. override FPCDIR:=$(FPCDIR)/..
  144. ifeq ($(wildcard $(FPCDIR)/rtl),)
  145. ifeq ($(wildcard $(FPCDIR)/units),)
  146. override FPCDIR=c:/pp
  147. endif
  148. endif
  149. endif
  150. endif
  151. endif
  152. endif
  153. #####################################################################
  154. # User Settings
  155. #####################################################################
  156. # Targets
  157. override LOADEROBJECTS+=prt0 prt1 code2 code3
  158. override UNITOBJECTS+=$(SYSTEMUNIT) objpas strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi dive dos crt objects printer sysutils math typinfo varutils ucomplex cpu mmx getopts heaptrc lineinfo dynlibs
  159. override RSTOBJECTS+=math
  160. # Clean
  161. # Install
  162. UNITSUBDIR=rtl
  163. ZIPTARGET=install
  164. # Defaults
  165. # Directories
  166. override NEEDINCDIR=$(INC) $(PROCINC)
  167. ifndef TARGETDIR
  168. TARGETDIR=.
  169. endif
  170. # Packages
  171. # Libraries
  172. # Info
  173. INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall
  174. #####################################################################
  175. # Post Settings
  176. #####################################################################
  177. SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
  178. # Get the system independent include file names.
  179. # This will set the following variables :
  180. # SYSINCNAMES
  181. include $(INC)/makefile.inc
  182. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  183. # Get the processor dependent include file names.
  184. # This will set the following variables :
  185. # CPUINCNAMES
  186. include $(PROCINC)/makefile.cpu
  187. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  188. # Put system unit dependencies together.
  189. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  190. #####################################################################
  191. # Shell tools
  192. #####################################################################
  193. # echo
  194. ifndef ECHO
  195. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
  196. ifeq ($(ECHO),)
  197. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  198. ifeq ($(ECHO),)
  199. ECHO:=echo
  200. ECHOE:=echo
  201. else
  202. ECHO:=$(firstword $(ECHO))
  203. ECHOE=$(ECHO) -E
  204. endif
  205. else
  206. ECHO:=$(firstword $(ECHO))
  207. ECHOE=$(ECHO) -E
  208. endif
  209. endif
  210. # To copy pograms
  211. ifndef COPY
  212. COPY:=cp -fp
  213. endif
  214. # Copy a whole tree
  215. ifndef COPYTREE
  216. COPYTREE:=cp -rfp
  217. endif
  218. # To move pograms
  219. ifndef MOVE
  220. MOVE:=mv -f
  221. endif
  222. # Check delete program
  223. ifndef DEL
  224. DEL:=rm -f
  225. endif
  226. # Check deltree program
  227. ifndef DELTREE
  228. DELTREE:=rm -rf
  229. endif
  230. # To install files
  231. ifndef INSTALL
  232. ifdef inUnix
  233. INSTALL:=install -m 644
  234. else
  235. INSTALL:=$(COPY)
  236. endif
  237. endif
  238. # To install programs
  239. ifndef INSTALLEXE
  240. ifdef inUnix
  241. INSTALLEXE:=install -m 755
  242. else
  243. INSTALLEXE:=$(COPY)
  244. endif
  245. endif
  246. # To make a directory.
  247. ifndef MKDIR
  248. ifdef inUnix
  249. MKDIR:=install -m 755 -d
  250. else
  251. MKDIR:=ginstall -m 755 -d
  252. endif
  253. endif
  254. export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  255. #####################################################################
  256. # Default Tools
  257. #####################################################################
  258. # assembler, redefine it if cross compiling
  259. ifndef AS
  260. AS=as
  261. endif
  262. # linker, but probably not used
  263. ifndef LD
  264. LD=ld
  265. endif
  266. # ppas.bat / ppas.sh
  267. ifdef inUnix
  268. PPAS=ppas.sh
  269. else
  270. ifdef inOS2
  271. PPAS=ppas.cmd
  272. else
  273. PPAS=ppas.bat
  274. endif
  275. endif
  276. # ldconfig to rebuild .so cache
  277. ifdef inUnix
  278. LDCONFIG=ldconfig
  279. else
  280. LDCONFIG=
  281. endif
  282. # ppumove
  283. ifndef PPUMOVE
  284. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  285. ifeq ($(PPUMOVE),)
  286. PPUMOVE=
  287. else
  288. PPUMOVE:=$(firstword $(PPUMOVE))
  289. endif
  290. endif
  291. export PPUMOVE
  292. # ppufiles
  293. ifndef PPUFILES
  294. PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
  295. ifeq ($(PPUFILES),)
  296. PPUFILES=
  297. else
  298. PPUFILES:=$(firstword $(PPUFILES))
  299. endif
  300. endif
  301. export PPUFILES
  302. # Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
  303. # upx uses that one itself (PFV)
  304. ifndef UPXPROG
  305. ifeq ($(OS_TARGET),go32v2)
  306. UPXPROG:=1
  307. endif
  308. ifeq ($(OS_TARGET),win32)
  309. UPXPROG:=1
  310. endif
  311. ifdef UPXPROG
  312. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  313. ifeq ($(UPXPROG),)
  314. UPXPROG=
  315. else
  316. UPXPROG:=$(firstword $(UPXPROG))
  317. endif
  318. else
  319. UPXPROG=
  320. endif
  321. endif
  322. export UPXPROG
  323. # ZipProg, you can't use Zip as the var name (PFV)
  324. ifndef ZIPPROG
  325. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  326. ifeq ($(ZIPPROG),)
  327. ZIPPROG=
  328. else
  329. ZIPPROG:=$(firstword $(ZIPPROG))
  330. endif
  331. endif
  332. export ZIPPROG
  333. ZIPOPT=-9
  334. ZIPEXT=.zip
  335. # Tar
  336. ifndef TARPROG
  337. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  338. ifeq ($(TARPROG),)
  339. TARPROG=
  340. else
  341. TARPROG:=$(firstword $(TARPROG))
  342. endif
  343. endif
  344. export TARPROG
  345. ifeq ($(USETAR),bz2)
  346. TAROPT=vI
  347. TAREXT=.tar.bz2
  348. else
  349. TAROPT=vz
  350. TAREXT=.tar.gz
  351. endif
  352. #####################################################################
  353. # Default extensions
  354. #####################################################################
  355. # Default needed extensions (Go32v2,Linux)
  356. LOADEREXT=.as
  357. EXEEXT=.exe
  358. PPLEXT=.ppl
  359. PPUEXT=.ppu
  360. OEXT=.o
  361. ASMEXT=.s
  362. SMARTEXT=.sl
  363. STATICLIBEXT=.a
  364. SHAREDLIBEXT=.so
  365. RSTEXT=.rst
  366. FPCMADE=fpcmade
  367. # Go32v1
  368. ifeq ($(OS_TARGET),go32v1)
  369. PPUEXT=.pp1
  370. OEXT=.o1
  371. ASMEXT=.s1
  372. SMARTEXT=.sl1
  373. STATICLIBEXT=.a1
  374. SHAREDLIBEXT=.so1
  375. FPCMADE=fpcmade.v1
  376. endif
  377. # Go32v2
  378. ifeq ($(OS_TARGET),go32v2)
  379. FPCMADE=fpcmade.dos
  380. endif
  381. # Linux
  382. ifeq ($(OS_TARGET),linux)
  383. EXEEXT=
  384. HASSHAREDLIB=1
  385. FPCMADE=fpcmade.lnx
  386. endif
  387. # Linux
  388. ifeq ($(OS_TARGET),freebsd)
  389. EXEEXT=
  390. HASSHAREDLIB=1
  391. FPCMADE=fpcmade.freebsd
  392. endif
  393. # Win32
  394. ifeq ($(OS_TARGET),win32)
  395. PPUEXT=.ppw
  396. OEXT=.ow
  397. ASMEXT=.sw
  398. SMARTEXT=.slw
  399. STATICLIBEXT=.aw
  400. SHAREDLIBEXT=.dll
  401. FPCMADE=fpcmade.w32
  402. endif
  403. # OS/2
  404. ifeq ($(OS_TARGET),os2)
  405. PPUEXT=.ppo
  406. ASMEXT=.so2
  407. OEXT=.oo2
  408. SMARTEXT=.so
  409. STATICLIBEXT=.ao2
  410. SHAREDLIBEXT=.dll
  411. FPCMADE=fpcmade.os2
  412. endif
  413. # library prefix
  414. LIBPREFIX=lib
  415. ifeq ($(OS_TARGET),go32v2)
  416. LIBPREFIX=
  417. endif
  418. ifeq ($(OS_TARGET),go32v1)
  419. LIBPREFIX=
  420. endif
  421. # determine which .pas extension is used
  422. ifndef PASEXT
  423. ifdef EXEOBJECTS
  424. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
  425. else
  426. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
  427. endif
  428. ifeq ($(TESTPAS),)
  429. PASEXT=.pp
  430. else
  431. PASEXT=.pas
  432. endif
  433. endif
  434. #####################################################################
  435. # Default Directories
  436. #####################################################################
  437. # Linux and freebsd use unix dirs with /usr/bin, /usr/lib
  438. # When zipping use the target as default, when normal install then
  439. # use the source os as default
  440. ifdef ZIPNAME
  441. # Zipinstall
  442. ifeq ($(OS_TARGET),linux)
  443. UNIXINSTALLDIR=1
  444. endif
  445. ifeq ($(OS_TARGET),freebsd)
  446. UNIXINSTALLDIR=1
  447. endif
  448. else
  449. # Normal install
  450. ifeq ($(OS_SOURCE),linux)
  451. UNIXINSTALLDIR=1
  452. endif
  453. ifeq ($(OS_SOURCE),freebsd)
  454. UNIXINSTALLDIR=1
  455. endif
  456. endif
  457. # set the prefix directory where to install everything
  458. ifndef PREFIXINSTALLDIR
  459. ifdef UNIXINSTALLDIR
  460. PREFIXINSTALLDIR=/usr
  461. else
  462. PREFIXINSTALLDIR=/pp
  463. endif
  464. endif
  465. export PREFIXINSTALLDIR
  466. # Where to place the resulting zip files
  467. ifndef DESTZIPDIR
  468. DESTZIPDIR:=$(BASEDIR)
  469. endif
  470. export DESTZIPDIR
  471. #####################################################################
  472. # Install Directories
  473. #####################################################################
  474. # set the base directory where to install everything
  475. ifndef BASEINSTALLDIR
  476. ifdef UNIXINSTALLDIR
  477. BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
  478. else
  479. BASEINSTALLDIR=$(PREFIXINSTALLDIR)
  480. endif
  481. endif
  482. # set the directory where to install the binaries
  483. ifndef BININSTALLDIR
  484. ifdef UNIXINSTALLDIR
  485. BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
  486. else
  487. BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
  488. endif
  489. endif
  490. # set the directory where to install the units.
  491. ifndef UNITINSTALLDIR
  492. UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
  493. ifdef UNITSUBDIR
  494. UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
  495. endif
  496. endif
  497. # Where to install shared libraries
  498. ifndef LIBINSTALLDIR
  499. ifdef UNIXINSTALLDIR
  500. LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
  501. else
  502. LIBINSTALLDIR=$(UNITINSTALLDIR)
  503. endif
  504. endif
  505. # Where the source files will be stored
  506. ifndef SOURCEINSTALLDIR
  507. ifdef UNIXINSTALLDIR
  508. SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
  509. else
  510. SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
  511. endif
  512. ifdef SOURCESUBDIR
  513. SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
  514. endif
  515. endif
  516. # Where the doc files will be stored
  517. ifndef DOCINSTALLDIR
  518. ifdef UNIXINSTALLDIR
  519. DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
  520. else
  521. DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
  522. endif
  523. endif
  524. # Where to install the examples, under linux we use the doc dir
  525. # because the copytree command will create a subdir itself
  526. ifndef EXAMPLEINSTALLDIR
  527. ifdef UNIXINSTALLDIR
  528. EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
  529. else
  530. EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
  531. endif
  532. ifdef EXAMPLESUBDIR
  533. EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
  534. endif
  535. endif
  536. # Where the some extra (data)files will be stored
  537. ifndef DATAINSTALLDIR
  538. DATAINSTALLDIR=$(BASEINSTALLDIR)
  539. endif
  540. #####################################################################
  541. # Redirection
  542. #####################################################################
  543. ifndef REDIRFILE
  544. REDIRFILE=log
  545. endif
  546. ifdef REDIR
  547. ifndef inUnix
  548. override FPC=redir -eo $(FPC)
  549. endif
  550. # set the verbosity to max
  551. override FPCOPT+=-va
  552. override REDIR:= >> $(REDIRFILE)
  553. endif
  554. #####################################################################
  555. # Compiler Command Line
  556. #####################################################################
  557. # Load commandline OPTDEF and add FPC_CPU define
  558. override FPCOPTDEF:=-d$(CPU_TARGET)
  559. # Load commandline OPT and add target and unit dir to be sure
  560. ifneq ($(OS_TARGET),$(OS_SOURCE))
  561. override FPCOPT+=-T$(OS_TARGET)
  562. endif
  563. # User dirs should be first, so they are looked at first
  564. ifdef UNITDIR
  565. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  566. endif
  567. ifdef LIBDIR
  568. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  569. endif
  570. ifdef OBJDIR
  571. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  572. endif
  573. ifdef INCDIR
  574. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  575. endif
  576. # Smartlinking
  577. ifdef LINKSMART
  578. override FPCOPT+=-XX
  579. endif
  580. # Smartlinking creation
  581. ifdef CREATESMART
  582. override FPCOPT+=-CX
  583. endif
  584. # Debug
  585. ifdef DEBUG
  586. override FPCOPT+=-gl -dDEBUG
  587. endif
  588. # Release mode (strip, optimize and don't load ppc386.cfg)
  589. # 0.99.12b has a bug in the optimizer so don't use it by default
  590. ifdef RELEASE
  591. ifeq ($(FPC_VERSION),0.99.12)
  592. override FPCOPT+=-Xs -OGp3 -n
  593. else
  594. override FPCOPT+=-Xs -OG2p3 -n
  595. endif
  596. endif
  597. # Strip
  598. ifdef STRIP
  599. override FPCOPT+=-Xs
  600. endif
  601. # Optimizer
  602. ifdef OPTIMIZE
  603. override FPCOPT+=-OG2p3
  604. endif
  605. # Verbose settings (warning,note,info)
  606. ifdef VERBOSE
  607. override FPCOPT+=-vwni
  608. endif
  609. ifdef UNITSDIR
  610. override FPCOPT+=-Fu$(UNITSDIR)
  611. endif
  612. ifdef NEEDINCDIR
  613. override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR))
  614. endif
  615. # Target dirs and the prefix to use for clean/install
  616. ifdef TARGETDIR
  617. override FPCOPT+=-FE$(TARGETDIR)
  618. ifeq ($(TARGETDIR),.)
  619. override TARGETDIRPREFIX=
  620. else
  621. override TARGETDIRPREFIX=$(TARGETDIR)/
  622. endif
  623. endif
  624. ifdef UNITTARGETDIR
  625. override FPCOPT+=-FU$(UNITTARGETDIR)
  626. ifeq ($(UNITTARGETDIR),.)
  627. override UNITTARGETDIRPREFIX=
  628. else
  629. override UNITTARGETDIRPREFIX=$(TARGETDIR)/
  630. endif
  631. else
  632. ifdef TARGETDIR
  633. override UNITTARGETDIR=$(TARGETDIR)
  634. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  635. endif
  636. endif
  637. # Add commandline options last so they can override
  638. ifdef OPT
  639. override FPCOPT+=$(OPT)
  640. endif
  641. # Add defines from FPCOPTDEF to FPCOPT
  642. ifdef FPCOPTDEF
  643. override FPCOPT+=$(FPCOPTDEF)
  644. endif
  645. # Error file ?
  646. ifdef ERRORFILE
  647. override FPCOPT+=-Fr$(ERRORFILE)
  648. endif
  649. # Was a config file specified ?
  650. ifdef CFGFILE
  651. override FPCOPT+=@$(CFGFILE)
  652. endif
  653. # For win32 the options are passed using the environment FPCEXTCMD
  654. ifeq ($(OS_SOURCE),win32)
  655. override FPCEXTCMD:=$(FPCOPT)
  656. override FPCOPT:=!FPCEXTCMD
  657. export FPCEXTCMD
  658. endif
  659. # Compiler commandline
  660. override COMPILER:=$(FPC) $(FPCOPT)
  661. # also call ppas if with command option -s
  662. # but only if the OS_SOURCE and OS_TARGE are equal
  663. ifeq (,$(findstring -s ,$(COMPILER)))
  664. EXECPPAS=
  665. else
  666. ifeq ($(OS_SOURCE),$(OS_TARGET))
  667. EXECPPAS:=@$(PPAS)
  668. endif
  669. endif
  670. #####################################################################
  671. # Standard rules
  672. #####################################################################
  673. all: fpc_all
  674. debug: fpc_debug
  675. smart: fpc_smart
  676. shared: fpc_shared
  677. showinstall: fpc_showinstall
  678. install: fpc_install
  679. sourceinstall: fpc_sourceinstall
  680. exampleinstall: fpc_exampleinstall
  681. zipinstall: fpc_zipinstall
  682. zipsourceinstall: fpc_zipsourceinstall
  683. zipexampleinstall: fpc_zipexampleinstall
  684. clean: fpc_clean
  685. distclean: fpc_distclean
  686. cleanall: fpc_cleanall
  687. info: fpc_info
  688. .PHONY: all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall info
  689. #####################################################################
  690. # Loaders
  691. #####################################################################
  692. .PHONY: fpc_loaders
  693. %$(OEXT): %$(LOADEREXT)
  694. $(AS) -o $*$(OEXT) $<
  695. override ALLTARGET+=fpc_loaders
  696. override CLEANTARGET+=fpc_loaders_clean
  697. override SHOWINSTALLTARGET+=fpc_loaders_showinstall
  698. override INSTALLTARGET+=fpc_loaders_install
  699. override LOADEROFILES:=$(addsuffix $(OEXT),$(LOADEROBJECTS))
  700. fpc_loaders: $(LOADEROFILES)
  701. fpc_loaders_clean:
  702. -$(DEL) $(LOADEROFILES)
  703. fpc_loaders_showinstall:
  704. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(LOADEROFILES))
  705. fpc_loaders_install:
  706. $(MKDIR) $(UNITINSTALLDIR)
  707. $(INSTALL) $(LOADEROFILES) $(UNITINSTALLDIR)
  708. #####################################################################
  709. # Units
  710. #####################################################################
  711. .PHONY: fpc_units
  712. override ALLTARGET+=fpc_units
  713. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
  714. override INSTALLPPUFILES+=$(UNITPPUFILES)
  715. override CLEANPPUFILES+=$(UNITPPUFILES)
  716. fpc_units: $(UNITPPUFILES)
  717. #####################################################################
  718. # Resource strings
  719. #####################################################################
  720. ifdef RSTOBJECTS
  721. override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
  722. override CLEANRSTFILES+=$(RSTFILES)
  723. endif
  724. #####################################################################
  725. # General compile rules
  726. #####################################################################
  727. .PHONY: fpc_packages fpc_all fpc_debug
  728. $(FPCMADE): $(ALLTARGET)
  729. @$(ECHO) Compiled > $(FPCMADE)
  730. fpc_packages: $(COMPILEPACKAGES)
  731. fpc_all: fpc_packages $(FPCMADE)
  732. fpc_debug:
  733. $(MAKE) all DEBUG=1
  734. # Search paths for .ppu if targetdir is set
  735. ifdef UNITTARGETDIR
  736. vpath %$(PPUEXT) $(UNITTARGETDIR)
  737. endif
  738. # General compile rules, available for both possible PASEXT
  739. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
  740. %$(PPUEXT): %.pp
  741. $(COMPILER) $< $(REDIR)
  742. $(EXECPPAS)
  743. %$(PPUEXT): %.pas
  744. $(COMPILER) $< $(REDIR)
  745. $(EXECPPAS)
  746. %$(EXEEXT): %.pp
  747. $(COMPILER) $< $(REDIR)
  748. $(EXECPPAS)
  749. %$(EXEEXT): %.pas
  750. $(COMPILER) $< $(REDIR)
  751. $(EXECPPAS)
  752. #####################################################################
  753. # Library
  754. #####################################################################
  755. .PHONY: fpc_smart fpc_shared
  756. ifdef LIBVERSION
  757. LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
  758. else
  759. LIBFULLNAME=$(LIBNAME)
  760. endif
  761. # Default sharedlib units are all unit objects
  762. ifndef SHAREDLIBUNITOBJECTS
  763. SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
  764. endif
  765. fpc_smart:
  766. $(MAKE) all LINKSMART=1 CREATESMART=1
  767. fpc_shared: all
  768. ifdef HASSHAREDLIB
  769. ifndef LIBNAME
  770. @$(ECHO) "LIBNAME not set"
  771. else
  772. $(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
  773. endif
  774. else
  775. @$(ECHO) "Shared Libraries not supported"
  776. endif
  777. #####################################################################
  778. # Install rules
  779. #####################################################################
  780. .PHONY: fpc_showinstall fpc_install
  781. ifdef EXTRAINSTALLUNITS
  782. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
  783. endif
  784. ifdef INSTALLPPUFILES
  785. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  786. ifdef PPUFILES
  787. INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
  788. else
  789. INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
  790. endif
  791. override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
  792. endif
  793. ifdef INSTALLEXEFILES
  794. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  795. endif
  796. fpc_showinstall: $(SHOWINSTALLTARGET)
  797. ifdef INSTALLEXEFILES
  798. @$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
  799. endif
  800. ifdef INSTALLPPUFILES
  801. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
  802. ifneq ($(INSTALLPPULINKFILES),)
  803. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
  804. endif
  805. ifneq ($(wildcard $(LIBFULLNAME)),)
  806. @$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
  807. ifdef HASSHAREDLIB
  808. @$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
  809. endif
  810. endif
  811. endif
  812. ifdef EXTRAINSTALLFILES
  813. @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
  814. endif
  815. fpc_install: $(INSTALLTARGET)
  816. # Create UnitInstallFiles
  817. ifdef INSTALLEXEFILES
  818. $(MKDIR) $(BININSTALLDIR)
  819. # Compress the exes if upx is defined
  820. ifdef UPXPROG
  821. -$(UPXPROG) $(INSTALLEXEFILES)
  822. endif
  823. $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
  824. endif
  825. ifdef INSTALLPPUFILES
  826. $(MKDIR) $(UNITINSTALLDIR)
  827. $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
  828. ifneq ($(INSTALLPPULINKFILES),)
  829. $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
  830. endif
  831. ifneq ($(wildcard $(LIBFULLNAME)),)
  832. $(MKDIR) $(LIBINSTALLDIR)
  833. $(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
  834. ifdef inUnix
  835. ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
  836. endif
  837. endif
  838. endif
  839. ifdef EXTRAINSTALLFILES
  840. $(MKDIR) $(DATAINSTALLDIR)
  841. $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
  842. endif
  843. #####################################################################
  844. # SourceInstall rules
  845. #####################################################################
  846. .PHONY: fpc_sourceinstall
  847. ifndef SOURCETOPDIR
  848. SOURCETOPDIR=$(BASEDIR)
  849. endif
  850. fpc_sourceinstall: clean
  851. $(MKDIR) $(SOURCEINSTALLDIR)
  852. $(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
  853. #####################################################################
  854. # exampleinstall rules
  855. #####################################################################
  856. .PHONY: fpc_exampleinstall
  857. fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
  858. ifdef EXAMPLESOURCEFILES
  859. $(MKDIR) $(EXAMPLEINSTALLDIR)
  860. $(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
  861. endif
  862. ifdef EXAMPLEDIROBJECTS
  863. ifndef EXAMPLESOURCEFILES
  864. $(MKDIR) $(EXAMPLEINSTALLDIR)
  865. endif
  866. $(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
  867. endif
  868. #####################################################################
  869. # Zip
  870. #####################################################################
  871. .PHONY: fpc_zipinstall
  872. # Create suffix to add
  873. ifndef PACKAGESUFFIX
  874. PACKAGESUFFIX=$(OS_TARGET)
  875. ifeq ($(OS_TARGET),go32v2)
  876. PACKAGESUFFIX=go32
  877. endif
  878. ifeq ($(OS_TARGET),win32)
  879. PACKAGESUFFIX=w32
  880. endif
  881. endif
  882. # Temporary path to pack a file
  883. ifndef PACKDIR
  884. ifndef inUnix
  885. PACKDIR=$(BASEDIR)/pack_tmp
  886. else
  887. PACKDIR=/tmp/fpc-pack
  888. endif
  889. endif
  890. # Maybe create default zipname from packagename
  891. ifndef ZIPNAME
  892. ifdef PACKAGENAME
  893. ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
  894. endif
  895. endif
  896. # Use tar by default under linux
  897. ifndef USEZIP
  898. ifdef inUnix
  899. USETAR=1
  900. endif
  901. endif
  902. fpc_zipinstall:
  903. ifndef ZIPNAME
  904. @$(ECHO) "Please specify ZIPNAME!"
  905. @exit 1
  906. else
  907. $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
  908. ifdef USETAR
  909. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
  910. cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
  911. else
  912. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
  913. cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
  914. endif
  915. $(DELTREE) $(PACKDIR)
  916. endif
  917. .PHONY: fpc_zipsourceinstall
  918. fpc_zipsourceinstall:
  919. $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
  920. .PHONY: fpc_zipexampleinstall
  921. fpc_zipexampleinstall:
  922. $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
  923. #####################################################################
  924. # Clean rules
  925. #####################################################################
  926. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  927. ifdef EXEFILES
  928. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  929. endif
  930. ifdef EXTRACLEANUNITS
  931. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
  932. endif
  933. ifdef CLEANPPUFILES
  934. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  935. # Get the .o and .a files created for the units
  936. ifdef PPUFILES
  937. CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
  938. else
  939. CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
  940. endif
  941. override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
  942. endif
  943. fpc_clean: $(CLEANTARGET)
  944. ifdef CLEANEXEFILES
  945. -$(DEL) $(CLEANEXEFILES)
  946. endif
  947. ifdef CLEANPPUFILES
  948. -$(DEL) $(CLEANPPUFILES)
  949. endif
  950. ifneq ($(CLEANPPULINKFILES),)
  951. -$(DEL) $(CLEANPPULINKFILES)
  952. endif
  953. ifdef CLEANRSTFILES
  954. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  955. endif
  956. ifdef EXTRACLEANFILES
  957. -$(DEL) $(EXTRACLEANFILES)
  958. endif
  959. ifdef LIBNAME
  960. -$(DEL) $(LIBNAME) $(LIBFULLNAME)
  961. endif
  962. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
  963. fpc_distclean: fpc_clean
  964. # Also run clean first if targetdir is set. Unittargetdir is always
  965. # set if targetdir or unittargetdir is specified
  966. ifdef UNITTARGETDIR
  967. TARGETDIRCLEAN=fpc_clean
  968. endif
  969. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  970. ifdef CLEANEXEFILES
  971. -$(DEL) $(CLEANEXEFILES)
  972. endif
  973. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  974. -$(DELTREE) *$(SMARTEXT)
  975. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
  976. #####################################################################
  977. # Info rules
  978. #####################################################################
  979. .PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
  980. fpc_dirinfo
  981. fpc_info: $(INFOTARGET)
  982. fpc_infocfg:
  983. @$(ECHO)
  984. @$(ECHO) == Configuration info ==
  985. @$(ECHO)
  986. @$(ECHO) FPC....... $(FPC)
  987. @$(ECHO) Version... $(FPC_VERSION)
  988. @$(ECHO) CPU....... $(CPU_TARGET)
  989. @$(ECHO) Source.... $(OS_SOURCE)
  990. @$(ECHO) Target.... $(OS_TARGET)
  991. @$(ECHO)
  992. fpc_infoobjects:
  993. @$(ECHO)
  994. @$(ECHO) == Object info ==
  995. @$(ECHO)
  996. @$(ECHO) LoaderObjects..... $(LOADEROBJECTS)
  997. @$(ECHO) UnitObjects....... $(UNITOBJECTS)
  998. @$(ECHO) ExeObjects........ $(EXEOBJECTS)
  999. @$(ECHO)
  1000. @$(ECHO) ExtraCleanUnits... $(EXTRACLEANUNITS)
  1001. @$(ECHO) ExtraCleanFiles... $(EXTRACLEANFILES)
  1002. @$(ECHO)
  1003. @$(ECHO) ExtraInstallUnits. $(EXTRAINSTALLUNITS)
  1004. @$(ECHO) ExtraInstallFiles. $(EXTRAINSTALLFILES)
  1005. @$(ECHO)
  1006. fpc_infoinstall:
  1007. @$(ECHO)
  1008. @$(ECHO) == Install info ==
  1009. @$(ECHO)
  1010. ifdef DATE
  1011. @$(ECHO) DateStr.............. $(DATESTR)
  1012. endif
  1013. ifdef PACKAGEPREFIX
  1014. @$(ECHO) PackagePrefix........ $(PACKAGEPREFIX)
  1015. endif
  1016. ifdef PACKAGENAME
  1017. @$(ECHO) PackageName.......... $(PACKAGENAME)
  1018. endif
  1019. @$(ECHO) PackageSuffix........ $(PACKAGESUFFIX)
  1020. @$(ECHO)
  1021. @$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR)
  1022. @$(ECHO) BinInstallDir........ $(BININSTALLDIR)
  1023. @$(ECHO) LibInstallDir........ $(LIBINSTALLDIR)
  1024. @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR)
  1025. @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR)
  1026. @$(ECHO) DocInstallDir........ $(DOCINSTALLDIR)
  1027. @$(ECHO) DataInstallDir....... $(DATAINSTALLDIR)
  1028. @$(ECHO)
  1029. @$(ECHO) DestZipDir........... $(DESTZIPDIR)
  1030. @$(ECHO) ZipName.............. $(ZIPNAME)
  1031. @$(ECHO)
  1032. #####################################################################
  1033. # Local Makefile
  1034. #####################################################################
  1035. ifneq ($(wildcard fpcmake.loc),)
  1036. include fpcmake.loc
  1037. endif
  1038. #####################################################################
  1039. # Users rules
  1040. #####################################################################
  1041. vpath %.pas $(INC) $(PROCINC)
  1042. vpath %.pp $(INC) $(PROCINC)
  1043. #
  1044. # Loaders
  1045. #
  1046. %$(OEXT) : %.as
  1047. $(AS) -o $*$(OEXT) $*.as
  1048. #
  1049. # Base Units (System, strings, os-dependent-base-unit)
  1050. #
  1051. $(SYSTEMPPU) : sysos2.pas $(SYSDEPS)
  1052. $(COMPILER) -Us -Sg sysos2.pas $(REDIR)
  1053. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMPPU)
  1054. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
  1055. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
  1056. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
  1057. $(SYSTEMPPU)
  1058. #
  1059. # System Dependent Units
  1060. #
  1061. ports$(PPUEXT) : ports.pas objpas$(PPUEXT) $(SYSTEMPPU)
  1062. doscalls$(PPUEXT) : doscalls.pas strings$(PPUEXT) objects$(PPUEXT) $(SYSTEMPPU)
  1063. kbdcalls$(PPUEXT) : kbdcalls.pas $(SYSTEMPPU)
  1064. moucalls$(PPUEXT) : moucalls.pas $(SYSTEMPPU)
  1065. moncalls$(PPUEXT) : moncalls.pas strings$(PPUEXT) $(SYSTEMPPU)
  1066. os2def$(PPUEXT) : os2def.pas $(SYSTEMPPU)
  1067. pmwin$(PPUEXT) : pmwin.pas os2def$(PPUEXT) $(SYSTEMPPU)
  1068. pmbitmap$(PPUEXT) : pmbitmap.pas $(SYSTEMPPU)
  1069. pmgpi$(PPUEXT) : pmgpi.pas pmbitmap$(PPUEXT) $(SYSTEMPPU)
  1070. dive$(PPUEXT) : dive.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMPPU)
  1071. dynlibs$(PPUEXT) : $(INC)/dynlibs.pp doscalls$(PPUEXT) $(SYSTEMPPU)
  1072. #
  1073. # TP7 Compatible RTL Units
  1074. #
  1075. dos$(PPUEXT) : dos.pas $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
  1076. doscalls$(PPUEXT) $(SYSTEMPPU)
  1077. crt$(PPUEXT) : crt.pas $(INC)/textrec.inc $(SYSTEMPPU)
  1078. objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
  1079. printer$(PPUEXT) : printer.pas $(INC)/textrec.inc $(SYSTEMPPU)
  1080. #graph$(PPUEXT) : graph.pp
  1081. #
  1082. # Delphi Compatible Units
  1083. #
  1084. sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \
  1085. objpas$(PPUEXT) dos$(PPUEXT) doscalls$(PPUEXT)
  1086. $(COMPILER) -I$(OBJPASDIR) sysutils.pp $(REDIR)
  1087. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
  1088. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
  1089. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1090. $(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
  1091. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  1092. $(OBJPASDIR)/varutilh.inc varutils.pp
  1093. $(COMPILER) -I$(OBJPASDIR) varutils.pp $(REDIR)
  1094. #
  1095. # Other system-independent RTL Units
  1096. #
  1097. ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMPPU)
  1098. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMPPU)
  1099. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMPPU)
  1100. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
  1101. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMPPU)
  1102. $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
  1103. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMPPU)
  1104. #
  1105. # Other system-dependent RTL Units
  1106. #