Makefile 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.1 [2004/04/21]
  3. #
  4. default: all
  5. MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
  6. BSDs = freebsd netbsd openbsd darwin
  7. UNIXs = linux $(BSDs) sunos qnx
  8. FORCE:
  9. .PHONY: FORCE
  10. override PATH:=$(subst \,/,$(PATH))
  11. ifneq ($(findstring darwin,$(OSTYPE)),)
  12. inUnix=1 #darwin
  13. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  14. else
  15. ifeq ($(findstring ;,$(PATH)),)
  16. inUnix=1
  17. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  18. else
  19. SEARCHPATH:=$(subst ;, ,$(PATH))
  20. endif
  21. endif
  22. SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
  23. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
  24. ifeq ($(PWD),)
  25. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
  26. ifeq ($(PWD),)
  27. $(error You need the GNU utils package to use this Makefile)
  28. else
  29. PWD:=$(firstword $(PWD))
  30. SRCEXEEXT=
  31. endif
  32. else
  33. PWD:=$(firstword $(PWD))
  34. SRCEXEEXT=.exe
  35. endif
  36. ifndef inUnix
  37. ifeq ($(OS),Windows_NT)
  38. inWinNT=1
  39. else
  40. ifdef OS2_SHELL
  41. inOS2=1
  42. endif
  43. endif
  44. else
  45. ifneq ($(findstring cygdrive,$(PATH)),)
  46. inCygWin=1
  47. endif
  48. endif
  49. ifdef inUnix
  50. SRCBATCHEXT=.sh
  51. else
  52. ifdef inOS2
  53. SRCBATCHEXT=.cmd
  54. else
  55. SRCBATCHEXT=.bat
  56. endif
  57. endif
  58. ifdef inUnix
  59. PATHSEP=/
  60. else
  61. PATHSEP:=$(subst /,\,/)
  62. ifdef inCygWin
  63. PATHSEP=/
  64. endif
  65. endif
  66. ifdef PWD
  67. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  68. ifdef inCygWin
  69. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  70. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  71. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  72. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  73. endif
  74. endif
  75. else
  76. BASEDIR=.
  77. endif
  78. ifdef inOS2
  79. ifndef ECHO
  80. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  81. ifeq ($(ECHO),)
  82. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  83. ifeq ($(ECHO),)
  84. ECHO=echo
  85. else
  86. ECHO:=$(firstword $(ECHO))
  87. endif
  88. else
  89. ECHO:=$(firstword $(ECHO))
  90. endif
  91. endif
  92. export ECHO
  93. endif
  94. override OS_TARGET_DEFAULT=netware
  95. override DEFAULT_FPCDIR=../..
  96. ifndef FPC
  97. ifdef PP
  98. FPC=$(PP)
  99. endif
  100. endif
  101. ifndef FPC
  102. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  103. ifneq ($(FPCPROG),)
  104. FPCPROG:=$(firstword $(FPCPROG))
  105. FPC:=$(shell $(FPCPROG) -PB)
  106. ifneq ($(findstring Error,$(FPC)),)
  107. override FPC=ppc386
  108. endif
  109. else
  110. override FPC=ppc386
  111. endif
  112. endif
  113. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  114. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  115. ifndef FPC_VERSION
  116. FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
  117. FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
  118. endif
  119. export FPC FPC_VERSION FPC_COMPILERINFO
  120. unexport CHECKDEPEND ALLDEPENDENCIES
  121. ifndef CPU_TARGET
  122. ifdef CPU_TARGET_DEFAULT
  123. CPU_TARGET=$(CPU_TARGET_DEFAULT)
  124. endif
  125. endif
  126. ifndef OS_TARGET
  127. ifdef OS_TARGET_DEFAULT
  128. OS_TARGET=$(OS_TARGET_DEFAULT)
  129. endif
  130. endif
  131. ifneq ($(words $(FPC_COMPILERINFO)),5)
  132. FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
  133. FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
  134. FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
  135. FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
  136. endif
  137. ifndef CPU_SOURCE
  138. CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
  139. endif
  140. ifndef CPU_TARGET
  141. CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
  142. endif
  143. ifndef OS_SOURCE
  144. OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
  145. endif
  146. ifndef OS_TARGET
  147. OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
  148. endif
  149. FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  150. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  151. ifneq ($(FULL_TARGET),$(FULL_SOURCE))
  152. CROSSCOMPILE=1
  153. endif
  154. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  155. ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
  156. $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
  157. endif
  158. endif
  159. ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
  160. BSDhier=1
  161. endif
  162. ifeq ($(OS_TARGET),linux)
  163. linuxHier=1
  164. endif
  165. export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
  166. ifdef FPCDIR
  167. override FPCDIR:=$(subst \,/,$(FPCDIR))
  168. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  169. override FPCDIR=wrong
  170. endif
  171. else
  172. override FPCDIR=wrong
  173. endif
  174. ifdef DEFAULT_FPCDIR
  175. ifeq ($(FPCDIR),wrong)
  176. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  177. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  178. override FPCDIR=wrong
  179. endif
  180. endif
  181. endif
  182. ifeq ($(FPCDIR),wrong)
  183. ifdef inUnix
  184. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  185. ifeq ($(wildcard $(FPCDIR)/units),)
  186. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  187. endif
  188. else
  189. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  190. override FPCDIR:=$(FPCDIR)/..
  191. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  192. override FPCDIR:=$(FPCDIR)/..
  193. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  194. override FPCDIR:=$(BASEDIR)
  195. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  196. override FPCDIR=c:/pp
  197. endif
  198. endif
  199. endif
  200. endif
  201. endif
  202. ifndef CROSSDIR
  203. CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
  204. endif
  205. ifndef CROSSTARGETDIR
  206. CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
  207. endif
  208. ifdef CROSSCOMPILE
  209. UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
  210. ifeq ($(UNITSDIR),)
  211. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  212. endif
  213. else
  214. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  215. endif
  216. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
  217. override PACKAGE_NAME=rtl
  218. RTL=..
  219. INC=$(RTL)/inc
  220. PROCINC=$(RTL)/$(CPU_TARGET)
  221. UNITPREFIX=rtl
  222. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  223. SYSTEMUNIT=system
  224. else
  225. SYSTEMUNIT=sysnetwa
  226. endif
  227. override FPCOPT+=-Ur
  228. override FPCOPT+=-dMT
  229. CREATESMART=0
  230. OBJPASDIR=$(RTL)/objpas
  231. override TARGET_UNITS+=$(SYSTEMUNIT) systhrds objpas strings winsock dos crt objects sysutils classes typinfo math cpu mmx getopts heaptrc lineinfo sockets aio varutils video mouse keyboard types nwsnut nwserv nwnit nwprot sysconst
  232. override TARGET_LOADERS+=nwpre prelude
  233. override TARGET_RSTS+=math typinfo varutils classes
  234. override INSTALL_FPCPACKAGE=y
  235. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
  236. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
  237. override COMPILER_TARGETDIR+=.
  238. ifdef REQUIRE_UNITSDIR
  239. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  240. endif
  241. ifdef REQUIRE_PACKAGESDIR
  242. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  243. endif
  244. ifdef ZIPINSTALL
  245. ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
  246. UNIXHier=1
  247. endif
  248. else
  249. ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
  250. UNIXHier=1
  251. endif
  252. endif
  253. ifndef INSTALL_PREFIX
  254. ifdef PREFIX
  255. INSTALL_PREFIX=$(PREFIX)
  256. endif
  257. endif
  258. ifndef INSTALL_PREFIX
  259. ifdef UNIXHier
  260. INSTALL_PREFIX=/usr/local
  261. else
  262. ifdef INSTALL_FPCPACKAGE
  263. INSTALL_BASEDIR:=/pp
  264. else
  265. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  266. endif
  267. endif
  268. endif
  269. export INSTALL_PREFIX
  270. ifdef INSTALL_FPCSUBDIR
  271. export INSTALL_FPCSUBDIR
  272. endif
  273. ifndef DIST_DESTDIR
  274. DIST_DESTDIR:=$(BASEDIR)
  275. endif
  276. export DIST_DESTDIR
  277. ifndef INSTALL_BASEDIR
  278. ifdef UNIXHier
  279. ifdef INSTALL_FPCPACKAGE
  280. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  281. else
  282. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  283. endif
  284. else
  285. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  286. endif
  287. endif
  288. ifndef INSTALL_BINDIR
  289. ifdef UNIXHier
  290. ifdef CROSSCOMPILE
  291. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
  292. else
  293. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  294. endif
  295. else
  296. ifdef CROSSCOMPILE
  297. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
  298. else
  299. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  300. endif
  301. ifdef INSTALL_FPCPACKAGE
  302. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
  303. endif
  304. endif
  305. endif
  306. ifndef INSTALL_UNITDIR
  307. ifdef CROSSCOMPILE
  308. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
  309. else
  310. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
  311. endif
  312. ifdef INSTALL_FPCPACKAGE
  313. ifdef PACKAGE_NAME
  314. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  315. endif
  316. endif
  317. endif
  318. ifndef INSTALL_LIBDIR
  319. ifdef UNIXHier
  320. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  321. else
  322. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  323. endif
  324. endif
  325. ifndef INSTALL_SOURCEDIR
  326. ifdef UNIXHier
  327. ifdef BSDhier
  328. SRCPREFIXDIR=share/src
  329. else
  330. ifdef linuxHier
  331. SRCPREFIXDIR=share/src
  332. else
  333. SRCPREFIXDIR=src
  334. endif
  335. endif
  336. ifdef INSTALL_FPCPACKAGE
  337. ifdef INSTALL_FPCSUBDIR
  338. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  339. else
  340. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  341. endif
  342. else
  343. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  344. endif
  345. else
  346. ifdef INSTALL_FPCPACKAGE
  347. ifdef INSTALL_FPCSUBDIR
  348. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  349. else
  350. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  351. endif
  352. else
  353. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  354. endif
  355. endif
  356. endif
  357. ifndef INSTALL_DOCDIR
  358. ifdef UNIXHier
  359. ifdef BSDhier
  360. DOCPREFIXDIR=share/doc
  361. else
  362. ifdef linuxHier
  363. DOCPREFIXDIR=share/doc
  364. else
  365. DOCPREFIXDIR=doc
  366. endif
  367. endif
  368. ifdef INSTALL_FPCPACKAGE
  369. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  370. else
  371. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  372. endif
  373. else
  374. ifdef INSTALL_FPCPACKAGE
  375. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  376. else
  377. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  378. endif
  379. endif
  380. endif
  381. ifndef INSTALL_EXAMPLEDIR
  382. ifdef UNIXHier
  383. ifdef INSTALL_FPCPACKAGE
  384. ifdef BSDhier
  385. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  386. else
  387. ifdef linuxHier
  388. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  389. else
  390. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  391. endif
  392. endif
  393. else
  394. ifdef BSDhier
  395. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  396. else
  397. ifdef linuxHier
  398. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  399. else
  400. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  401. endif
  402. endif
  403. endif
  404. else
  405. ifdef INSTALL_FPCPACKAGE
  406. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  407. else
  408. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  409. endif
  410. endif
  411. endif
  412. ifndef INSTALL_DATADIR
  413. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  414. endif
  415. ifdef CROSSCOMPILE
  416. ifndef CROSSBINDIR
  417. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(FULL_SOURCE))
  418. ifeq ($(CROSSBINDIR),)
  419. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin/$(FULL_SOURCE))
  420. endif
  421. endif
  422. else
  423. CROSSBINDIR=
  424. endif
  425. BATCHEXT=.bat
  426. LOADEREXT=.as
  427. EXEEXT=.exe
  428. PPLEXT=.ppl
  429. PPUEXT=.ppu
  430. OEXT=.o
  431. ASMEXT=.s
  432. SMARTEXT=.sl
  433. STATICLIBEXT=.a
  434. SHAREDLIBEXT=.so
  435. STATICLIBPREFIX=libp
  436. RSTEXT=.rst
  437. FPCMADE=fpcmade
  438. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  439. ifeq ($(OS_TARGET),go32v1)
  440. STATICLIBPREFIX=
  441. FPCMADE=fpcmade.v1
  442. PACKAGESUFFIX=v1
  443. endif
  444. ifeq ($(OS_TARGET),go32v2)
  445. STATICLIBPREFIX=
  446. FPCMADE=fpcmade.dos
  447. ZIPSUFFIX=go32
  448. endif
  449. ifeq ($(OS_TARGET),watcom)
  450. STATICLIBPREFIX=
  451. FPCMADE=fpcmade.wat
  452. ZIPSUFFIX=watc
  453. OEXT=.obj
  454. ASMEXT=.asm
  455. SHAREDLIBEXT=.dll
  456. endif
  457. ifeq ($(OS_TARGET),linux)
  458. BATCHEXT=.sh
  459. EXEEXT=
  460. HASSHAREDLIB=1
  461. FPCMADE=fpcmade.lnx
  462. ZIPSUFFIX=linux
  463. endif
  464. ifeq ($(OS_TARGET),freebsd)
  465. BATCHEXT=.sh
  466. EXEEXT=
  467. HASSHAREDLIB=1
  468. FPCMADE=fpcmade.freebsd
  469. ZIPSUFFIX=freebsd
  470. endif
  471. ifeq ($(OS_TARGET),netbsd)
  472. BATCHEXT=.sh
  473. EXEEXT=
  474. HASSHAREDLIB=1
  475. FPCMADE=fpcmade.netbsd
  476. ZIPSUFFIX=netbsd
  477. endif
  478. ifeq ($(OS_TARGET),openbsd)
  479. BATCHEXT=.sh
  480. EXEEXT=
  481. HASSHAREDLIB=1
  482. FPCMADE=fpcmade.openbsd
  483. ZIPSUFFIX=openbsd
  484. endif
  485. ifeq ($(OS_TARGET),win32)
  486. SHAREDLIBEXT=.dll
  487. FPCMADE=fpcmade.w32
  488. ZIPSUFFIX=w32
  489. endif
  490. ifeq ($(OS_TARGET),os2)
  491. BATCHEXT=.cmd
  492. AOUTEXT=.out
  493. STATICLIBPREFIX=
  494. SHAREDLIBEXT=.dll
  495. FPCMADE=fpcmade.os2
  496. ZIPSUFFIX=os2
  497. ECHO=echo
  498. endif
  499. ifeq ($(OS_TARGET),emx)
  500. BATCHEXT=.cmd
  501. AOUTEXT=.out
  502. STATICLIBPREFIX=
  503. SHAREDLIBEXT=.dll
  504. FPCMADE=fpcmade.emx
  505. ZIPSUFFIX=emx
  506. ECHO=echo
  507. endif
  508. ifeq ($(OS_TARGET),amiga)
  509. EXEEXT=
  510. SHAREDLIBEXT=.library
  511. FPCMADE=fpcmade.amg
  512. endif
  513. ifeq ($(OS_TARGET),atari)
  514. EXEEXT=.ttp
  515. FPCMADE=fpcmade.ata
  516. endif
  517. ifeq ($(OS_TARGET),beos)
  518. BATCHEXT=.sh
  519. EXEEXT=
  520. FPCMADE=fpcmade.be
  521. ZIPSUFFIX=be
  522. endif
  523. ifeq ($(OS_TARGET),sunos)
  524. BATCHEXT=.sh
  525. EXEEXT=
  526. FPCMADE=fpcmade.sun
  527. ZIPSUFFIX=sun
  528. endif
  529. ifeq ($(OS_TARGET),qnx)
  530. BATCHEXT=.sh
  531. EXEEXT=
  532. FPCMADE=fpcmade.qnx
  533. ZIPSUFFIX=qnx
  534. endif
  535. ifeq ($(OS_TARGET),netware)
  536. EXEEXT=.nlm
  537. STATICLIBPREFIX=
  538. FPCMADE=fpcmade.nw
  539. ZIPSUFFIX=nw
  540. endif
  541. ifeq ($(OS_TARGET),macos)
  542. BATCHEXT=
  543. EXEEXT=
  544. FPCMADE=fpcmade.macos
  545. ZIPSUFFIX=macos
  546. DEBUGSYMEXT=.xcoff
  547. endif
  548. ifeq ($(OS_TARGET),darwin)
  549. BATCHEXT=.sh
  550. EXEEXT=
  551. HASSHAREDLIB=1
  552. FPCMADE=fpcmade.darwin
  553. ZIPSUFFIX=darwin
  554. endif
  555. else
  556. ifeq ($(OS_TARGET),go32v1)
  557. PPUEXT=.pp1
  558. OEXT=.o1
  559. ASMEXT=.s1
  560. SMARTEXT=.sl1
  561. STATICLIBEXT=.a1
  562. SHAREDLIBEXT=.so1
  563. STATICLIBPREFIX=
  564. FPCMADE=fpcmade.v1
  565. PACKAGESUFFIX=v1
  566. endif
  567. ifeq ($(OS_TARGET),go32v2)
  568. STATICLIBPREFIX=
  569. FPCMADE=fpcmade.dos
  570. ZIPSUFFIX=go32
  571. endif
  572. ifeq ($(OS_TARGET),watcom)
  573. STATICLIBPREFIX=
  574. FPCMADE=fpcmade.dos
  575. ZIPSUFFIX=watcom
  576. endif
  577. ifeq ($(OS_TARGET),linux)
  578. BATCHEXT=.sh
  579. EXEEXT=
  580. HASSHAREDLIB=1
  581. FPCMADE=fpcmade.lnx
  582. ZIPSUFFIX=linux
  583. endif
  584. ifeq ($(OS_TARGET),freebsd)
  585. BATCHEXT=.sh
  586. EXEEXT=
  587. HASSHAREDLIB=1
  588. FPCMADE=fpcmade.freebsd
  589. ZIPSUFFIX=freebsd
  590. endif
  591. ifeq ($(OS_TARGET),netbsd)
  592. BATCHEXT=.sh
  593. EXEEXT=
  594. HASSHAREDLIB=1
  595. FPCMADE=fpcmade.netbsd
  596. ZIPSUFFIX=netbsd
  597. endif
  598. ifeq ($(OS_TARGET),openbsd)
  599. BATCHEXT=.sh
  600. EXEEXT=
  601. HASSHAREDLIB=1
  602. FPCMADE=fpcmade.openbsd
  603. ZIPSUFFIX=openbsd
  604. endif
  605. ifeq ($(OS_TARGET),win32)
  606. PPUEXT=.ppw
  607. OEXT=.ow
  608. ASMEXT=.sw
  609. SMARTEXT=.slw
  610. STATICLIBEXT=.aw
  611. SHAREDLIBEXT=.dll
  612. FPCMADE=fpcmade.w32
  613. ZIPSUFFIX=w32
  614. endif
  615. ifeq ($(OS_TARGET),os2)
  616. BATCHEXT=.cmd
  617. PPUEXT=.ppo
  618. ASMEXT=.so2
  619. OEXT=.oo2
  620. AOUTEXT=.out
  621. SMARTEXT=.sl2
  622. STATICLIBPREFIX=
  623. STATICLIBEXT=.ao2
  624. SHAREDLIBEXT=.dll
  625. FPCMADE=fpcmade.os2
  626. ZIPSUFFIX=emx
  627. ECHO=echo
  628. endif
  629. ifeq ($(OS_TARGET),amiga)
  630. EXEEXT=
  631. PPUEXT=.ppu
  632. ASMEXT=.asm
  633. OEXT=.o
  634. SMARTEXT=.sl
  635. STATICLIBEXT=.a
  636. SHAREDLIBEXT=.library
  637. FPCMADE=fpcmade.amg
  638. endif
  639. ifeq ($(OS_TARGET),atari)
  640. PPUEXT=.ppu
  641. ASMEXT=.s
  642. OEXT=.o
  643. SMARTEXT=.sl
  644. STATICLIBEXT=.a
  645. EXEEXT=.ttp
  646. FPCMADE=fpcmade.ata
  647. endif
  648. ifeq ($(OS_TARGET),beos)
  649. BATCHEXT=.sh
  650. PPUEXT=.ppu
  651. ASMEXT=.s
  652. OEXT=.o
  653. SMARTEXT=.sl
  654. STATICLIBEXT=.a
  655. EXEEXT=
  656. FPCMADE=fpcmade.be
  657. ZIPSUFFIX=be
  658. endif
  659. ifeq ($(OS_TARGET),sunos)
  660. BATCHEXT=.sh
  661. PPUEXT=.ppu
  662. ASMEXT=.s
  663. OEXT=.o
  664. SMARTEXT=.sl
  665. STATICLIBEXT=.a
  666. EXEEXT=
  667. FPCMADE=fpcmade.sun
  668. ZIPSUFFIX=sun
  669. endif
  670. ifeq ($(OS_TARGET),qnx)
  671. BATCHEXT=.sh
  672. PPUEXT=.ppu
  673. ASMEXT=.s
  674. OEXT=.o
  675. SMARTEXT=.sl
  676. STATICLIBEXT=.a
  677. EXEEXT=
  678. FPCMADE=fpcmade.qnx
  679. ZIPSUFFIX=qnx
  680. endif
  681. ifeq ($(OS_TARGET),netware)
  682. STATICLIBPREFIX=
  683. PPUEXT=.ppu
  684. OEXT=.o
  685. ASMEXT=.s
  686. SMARTEXT=.sl
  687. STATICLIBEXT=.a
  688. SHAREDLIBEXT=.nlm
  689. FPCMADE=fpcmade.nw
  690. ZIPSUFFIX=nw
  691. EXEEXT=.nlm
  692. endif
  693. ifeq ($(OS_TARGET),macos)
  694. BATCHEXT=
  695. PPUEXT=.ppu
  696. ASMEXT=.s
  697. OEXT=.o
  698. SMARTEXT=.sl
  699. STATICLIBEXT=.a
  700. EXEEXT=
  701. DEBUGSYMEXT=.xcoff
  702. FPCMADE=fpcmade.macos
  703. endif
  704. endif
  705. ifndef ECHO
  706. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  707. ifeq ($(ECHO),)
  708. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  709. ifeq ($(ECHO),)
  710. ECHO= __missing_command__
  711. else
  712. ECHO:=$(firstword $(ECHO))
  713. endif
  714. else
  715. ECHO:=$(firstword $(ECHO))
  716. endif
  717. endif
  718. export ECHO
  719. ifndef DATE
  720. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  721. ifeq ($(DATE),)
  722. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  723. ifeq ($(DATE),)
  724. DATE= __missing_command__
  725. else
  726. DATE:=$(firstword $(DATE))
  727. endif
  728. else
  729. DATE:=$(firstword $(DATE))
  730. endif
  731. endif
  732. export DATE
  733. ifndef GINSTALL
  734. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  735. ifeq ($(GINSTALL),)
  736. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  737. ifeq ($(GINSTALL),)
  738. GINSTALL= __missing_command__
  739. else
  740. GINSTALL:=$(firstword $(GINSTALL))
  741. endif
  742. else
  743. GINSTALL:=$(firstword $(GINSTALL))
  744. endif
  745. endif
  746. export GINSTALL
  747. ifndef CPPROG
  748. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  749. ifeq ($(CPPROG),)
  750. CPPROG= __missing_command__
  751. else
  752. CPPROG:=$(firstword $(CPPROG))
  753. endif
  754. endif
  755. export CPPROG
  756. ifndef RMPROG
  757. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  758. ifeq ($(RMPROG),)
  759. RMPROG= __missing_command__
  760. else
  761. RMPROG:=$(firstword $(RMPROG))
  762. endif
  763. endif
  764. export RMPROG
  765. ifndef MVPROG
  766. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  767. ifeq ($(MVPROG),)
  768. MVPROG= __missing_command__
  769. else
  770. MVPROG:=$(firstword $(MVPROG))
  771. endif
  772. endif
  773. export MVPROG
  774. ifndef ECHOREDIR
  775. ifndef inUnix
  776. ECHOREDIR=echo
  777. else
  778. ECHOREDIR=$(ECHO)
  779. endif
  780. endif
  781. ifndef COPY
  782. COPY:=$(CPPROG) -fp
  783. endif
  784. ifndef COPYTREE
  785. COPYTREE:=$(CPPROG) -rfp
  786. endif
  787. ifndef MOVE
  788. MOVE:=$(MVPROG) -f
  789. endif
  790. ifndef DEL
  791. DEL:=$(RMPROG) -f
  792. endif
  793. ifndef DELTREE
  794. DELTREE:=$(RMPROG) -rf
  795. endif
  796. ifndef INSTALL
  797. ifdef inUnix
  798. INSTALL:=$(GINSTALL) -c -m 644
  799. else
  800. INSTALL:=$(COPY)
  801. endif
  802. endif
  803. ifndef INSTALLEXE
  804. ifdef inUnix
  805. INSTALLEXE:=$(GINSTALL) -c -m 755
  806. else
  807. INSTALLEXE:=$(COPY)
  808. endif
  809. endif
  810. ifndef MKDIR
  811. MKDIR:=$(GINSTALL) -m 755 -d
  812. endif
  813. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  814. ifndef PPUMOVE
  815. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  816. ifeq ($(PPUMOVE),)
  817. PPUMOVE= __missing_command__
  818. else
  819. PPUMOVE:=$(firstword $(PPUMOVE))
  820. endif
  821. endif
  822. export PPUMOVE
  823. ifndef FPCMAKE
  824. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  825. ifeq ($(FPCMAKE),)
  826. FPCMAKE= __missing_command__
  827. else
  828. FPCMAKE:=$(firstword $(FPCMAKE))
  829. endif
  830. endif
  831. export FPCMAKE
  832. ifndef ZIPPROG
  833. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  834. ifeq ($(ZIPPROG),)
  835. ZIPPROG= __missing_command__
  836. else
  837. ZIPPROG:=$(firstword $(ZIPPROG))
  838. endif
  839. endif
  840. export ZIPPROG
  841. ifndef TARPROG
  842. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  843. ifeq ($(TARPROG),)
  844. TARPROG= __missing_command__
  845. else
  846. TARPROG:=$(firstword $(TARPROG))
  847. endif
  848. endif
  849. export TARPROG
  850. ASNAME=$(BINUTILSPREFIX)as
  851. LDNAME=$(BINUTILSPREFIX)ld
  852. ARNAME=$(BINUTILSPREFIX)ar
  853. RCNAME=$(BINUTILSPREFIX)rc
  854. ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
  855. ifeq ($(OS_TARGET),win32)
  856. ifeq ($(CROSSBINDIR),)
  857. ASNAME=asw
  858. LDNAME=ldw
  859. ARNAME=arw
  860. endif
  861. endif
  862. endif
  863. ifndef ASPROG
  864. ifdef CROSSBINDIR
  865. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  866. else
  867. ASPROG=$(ASNAME)
  868. endif
  869. endif
  870. ifndef LDPROG
  871. ifdef CROSSBINDIR
  872. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  873. else
  874. LDPROG=$(LDNAME)
  875. endif
  876. endif
  877. ifndef RCPROG
  878. ifdef CROSSBINDIR
  879. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  880. else
  881. RCPROG=$(RCNAME)
  882. endif
  883. endif
  884. ifndef ARPROG
  885. ifdef CROSSBINDIR
  886. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  887. else
  888. ARPROG=$(ARNAME)
  889. endif
  890. endif
  891. AS=$(ASPROG)
  892. LD=$(LDPROG)
  893. RC=$(RCPROG)
  894. AR=$(ARPROG)
  895. PPAS=ppas$(SRCBATCHEXT)
  896. ifdef inUnix
  897. LDCONFIG=ldconfig
  898. else
  899. LDCONFIG=
  900. endif
  901. ifdef DATE
  902. DATESTR:=$(shell $(DATE) +%Y%m%d)
  903. else
  904. DATESTR=
  905. endif
  906. ifndef UPXPROG
  907. ifeq ($(OS_TARGET),go32v2)
  908. UPXPROG:=1
  909. endif
  910. ifeq ($(OS_TARGET),win32)
  911. UPXPROG:=1
  912. endif
  913. ifdef UPXPROG
  914. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  915. ifeq ($(UPXPROG),)
  916. UPXPROG=
  917. else
  918. UPXPROG:=$(firstword $(UPXPROG))
  919. endif
  920. else
  921. UPXPROG=
  922. endif
  923. endif
  924. export UPXPROG
  925. ZIPOPT=-9
  926. ZIPEXT=.zip
  927. ifeq ($(USETAR),bz2)
  928. TAROPT=vI
  929. TAREXT=.tar.bz2
  930. else
  931. TAROPT=vz
  932. TAREXT=.tar.gz
  933. endif
  934. ifndef NOCPUDEF
  935. override FPCOPTDEF=$(CPU_TARGET)
  936. endif
  937. ifneq ($(OS_TARGET),$(OS_SOURCE))
  938. override FPCOPT+=-T$(OS_TARGET)
  939. endif
  940. ifeq ($(OS_SOURCE),openbsd)
  941. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  942. endif
  943. ifndef CROSSBOOTSTRAP
  944. ifneq ($(BINUTILSPREFIX),)
  945. override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
  946. endif
  947. ifneq ($(BINUTILSPREFIX),)
  948. override FPCOPT+=-Xr$(RLINKPATH)
  949. endif
  950. endif
  951. ifdef UNITDIR
  952. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  953. endif
  954. ifdef LIBDIR
  955. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  956. endif
  957. ifdef OBJDIR
  958. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  959. endif
  960. ifdef INCDIR
  961. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  962. endif
  963. ifdef LINKSMART
  964. override FPCOPT+=-XX
  965. endif
  966. ifdef CREATESMART
  967. override FPCOPT+=-CX
  968. endif
  969. ifdef DEBUG
  970. override FPCOPT+=-gl
  971. override FPCOPTDEF+=DEBUG
  972. endif
  973. ifdef RELEASE
  974. ifeq ($(CPU_TARGET),i386)
  975. FPCCPUOPT:=-OG2p3
  976. else
  977. ifeq ($(CPU_TARGET),powerpc)
  978. FPCCPUOPT:=-O1
  979. else
  980. FPCCPUOPT:=
  981. endif
  982. endif
  983. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  984. override FPCOPTDEF+=RELEASE
  985. endif
  986. ifdef STRIP
  987. override FPCOPT+=-Xs
  988. endif
  989. ifdef OPTIMIZE
  990. ifeq ($(CPU_TARGET),i386)
  991. override FPCOPT+=-OG2p3
  992. endif
  993. endif
  994. ifdef VERBOSE
  995. override FPCOPT+=-vwni
  996. endif
  997. ifdef COMPILER_OPTIONS
  998. override FPCOPT+=$(COMPILER_OPTIONS)
  999. endif
  1000. ifdef COMPILER_UNITDIR
  1001. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  1002. endif
  1003. ifdef COMPILER_LIBRARYDIR
  1004. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  1005. endif
  1006. ifdef COMPILER_OBJECTDIR
  1007. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  1008. endif
  1009. ifdef COMPILER_INCLUDEDIR
  1010. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  1011. endif
  1012. ifdef CROSSBINDIR
  1013. override FPCOPT+=-FD$(CROSSBINDIR)
  1014. endif
  1015. ifdef COMPILER_TARGETDIR
  1016. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  1017. ifeq ($(COMPILER_TARGETDIR),.)
  1018. override TARGETDIRPREFIX=
  1019. else
  1020. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  1021. endif
  1022. endif
  1023. ifdef COMPILER_UNITTARGETDIR
  1024. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  1025. ifeq ($(COMPILER_UNITTARGETDIR),.)
  1026. override UNITTARGETDIRPREFIX=
  1027. else
  1028. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  1029. endif
  1030. else
  1031. ifdef COMPILER_TARGETDIR
  1032. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  1033. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  1034. endif
  1035. endif
  1036. ifeq ($(OS_TARGET),linux)
  1037. ifeq ($(FPC_VERSION),1.0.6)
  1038. override FPCOPTDEF+=HASUNIX
  1039. endif
  1040. endif
  1041. ifdef OPT
  1042. override FPCOPT+=$(OPT)
  1043. endif
  1044. ifdef FPCOPTDEF
  1045. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  1046. endif
  1047. ifdef CFGFILE
  1048. override FPCOPT+=@$(CFGFILE)
  1049. endif
  1050. ifdef USEENV
  1051. override FPCEXTCMD:=$(FPCOPT)
  1052. override FPCOPT:=!FPCEXTCMD
  1053. export FPCEXTCMD
  1054. endif
  1055. override COMPILER:=$(FPC) $(FPCOPT)
  1056. ifeq (,$(findstring -s ,$(COMPILER)))
  1057. EXECPPAS=
  1058. else
  1059. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  1060. EXECPPAS:=@$(PPAS)
  1061. endif
  1062. endif
  1063. .PHONY: fpc_loaders
  1064. ifdef TARGET_LOADERS
  1065. override ALLTARGET+=fpc_loaders
  1066. override CLEANTARGET+=fpc_loaders_clean
  1067. override INSTALLTARGET+=fpc_loaders_install
  1068. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  1069. endif
  1070. %$(OEXT): %$(LOADEREXT)
  1071. $(AS) -o $*$(OEXT) $<
  1072. fpc_loaders: $(LOADEROFILES)
  1073. fpc_loaders_clean:
  1074. -$(DEL) $(LOADEROFILES)
  1075. fpc_loaders_install:
  1076. $(MKDIR) $(INSTALL_UNITDIR)
  1077. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  1078. .PHONY: fpc_units
  1079. ifdef TARGET_UNITS
  1080. override ALLTARGET+=fpc_units
  1081. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  1082. override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
  1083. override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1084. override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1085. endif
  1086. fpc_units: $(UNITPPUFILES)
  1087. ifdef TARGET_RSTS
  1088. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1089. override CLEANRSTFILES+=$(RSTFILES)
  1090. endif
  1091. .PHONY: fpc_all fpc_smart fpc_debug fpc_release
  1092. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  1093. @$(ECHOREDIR) Compiled > $(FPCMADE)
  1094. fpc_all: $(FPCMADE)
  1095. fpc_smart:
  1096. $(MAKE) all LINKSMART=1 CREATESMART=1
  1097. fpc_debug:
  1098. $(MAKE) all DEBUG=1
  1099. fpc_release:
  1100. $(MAKE) all RELEASE=1
  1101. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
  1102. %$(PPUEXT): %.pp
  1103. $(COMPILER) $<
  1104. $(EXECPPAS)
  1105. %$(PPUEXT): %.pas
  1106. $(COMPILER) $<
  1107. $(EXECPPAS)
  1108. %$(EXEEXT): %.pp
  1109. $(COMPILER) $<
  1110. $(EXECPPAS)
  1111. %$(EXEEXT): %.pas
  1112. $(COMPILER) $<
  1113. $(EXECPPAS)
  1114. %$(EXEEXT): %.dpr
  1115. $(COMPILER) $<
  1116. $(EXECPPAS)
  1117. %.res: %.rc
  1118. windres -i $< -o $@
  1119. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1120. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1121. vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1122. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  1123. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  1124. ifdef INSTALL_UNITS
  1125. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  1126. endif
  1127. ifdef INSTALL_BUILDUNIT
  1128. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  1129. endif
  1130. ifdef INSTALLPPUFILES
  1131. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  1132. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  1133. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  1134. override INSTALL_CREATEPACKAGEFPC=1
  1135. endif
  1136. ifdef INSTALLEXEFILES
  1137. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  1138. endif
  1139. fpc_install: all $(INSTALLTARGET)
  1140. ifdef INSTALLEXEFILES
  1141. $(MKDIR) $(INSTALL_BINDIR)
  1142. ifdef UPXPROG
  1143. -$(UPXPROG) $(INSTALLEXEFILES)
  1144. endif
  1145. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1146. endif
  1147. ifdef INSTALL_CREATEPACKAGEFPC
  1148. ifdef FPCMAKE
  1149. ifdef PACKAGE_VERSION
  1150. ifneq ($(wildcard Makefile.fpc),)
  1151. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  1152. $(MKDIR) $(INSTALL_UNITDIR)
  1153. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1154. endif
  1155. endif
  1156. endif
  1157. endif
  1158. ifdef INSTALLPPUFILES
  1159. $(MKDIR) $(INSTALL_UNITDIR)
  1160. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1161. ifneq ($(INSTALLPPULINKFILES),)
  1162. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1163. endif
  1164. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1165. $(MKDIR) $(INSTALL_LIBDIR)
  1166. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1167. ifdef inUnix
  1168. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1169. endif
  1170. endif
  1171. endif
  1172. ifdef INSTALL_FILES
  1173. $(MKDIR) $(INSTALL_DATADIR)
  1174. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1175. endif
  1176. fpc_sourceinstall: distclean
  1177. $(MKDIR) $(INSTALL_SOURCEDIR)
  1178. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  1179. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1180. ifdef HASEXAMPLES
  1181. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1182. endif
  1183. ifdef EXAMPLESOURCEFILES
  1184. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1185. endif
  1186. ifdef TARGET_EXAMPLEDIRS
  1187. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1188. endif
  1189. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1190. ifdef EXEFILES
  1191. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1192. endif
  1193. ifdef CLEAN_UNITS
  1194. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1195. endif
  1196. ifdef CLEANPPUFILES
  1197. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1198. ifdef DEBUGSYMEXT
  1199. override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
  1200. endif
  1201. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1202. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1203. endif
  1204. fpc_clean: $(CLEANTARGET)
  1205. ifdef CLEANEXEFILES
  1206. -$(DEL) $(CLEANEXEFILES)
  1207. endif
  1208. ifdef CLEANPPUFILES
  1209. -$(DEL) $(CLEANPPUFILES)
  1210. endif
  1211. ifneq ($(CLEANPPULINKFILES),)
  1212. -$(DEL) $(CLEANPPULINKFILES)
  1213. endif
  1214. ifdef CLEANRSTFILES
  1215. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1216. endif
  1217. ifdef CLEAN_FILES
  1218. -$(DEL) $(CLEAN_FILES)
  1219. endif
  1220. ifdef LIB_NAME
  1221. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1222. endif
  1223. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1224. -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
  1225. fpc_distclean: clean
  1226. ifdef COMPILER_UNITTARGETDIR
  1227. TARGETDIRCLEAN=fpc_clean
  1228. endif
  1229. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  1230. ifdef CLEANEXEFILES
  1231. -$(DEL) $(CLEANEXEFILES)
  1232. endif
  1233. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1234. -$(DELTREE) *$(SMARTEXT)
  1235. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1236. -$(DEL) *_ppas$(BATCHEXT)
  1237. ifdef AOUTEXT
  1238. -$(DEL) *$(AOUTEXT)
  1239. endif
  1240. ifdef DEBUGSYMEXT
  1241. -$(DEL) *$(DEBUGSYMEXT)
  1242. endif
  1243. .PHONY: fpc_baseinfo
  1244. override INFORULES+=fpc_baseinfo
  1245. fpc_baseinfo:
  1246. @$(ECHO)
  1247. @$(ECHO) == Package info ==
  1248. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1249. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1250. @$(ECHO)
  1251. @$(ECHO) == Configuration info ==
  1252. @$(ECHO)
  1253. @$(ECHO) FPC.......... $(FPC)
  1254. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1255. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1256. @$(ECHO) Target CPU... $(CPU_TARGET)
  1257. @$(ECHO) Source OS.... $(OS_SOURCE)
  1258. @$(ECHO) Target OS.... $(OS_TARGET)
  1259. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1260. @$(ECHO) Full Target.. $(FULL_TARGET)
  1261. @$(ECHO)
  1262. @$(ECHO) == Directory info ==
  1263. @$(ECHO)
  1264. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1265. @$(ECHO)
  1266. @$(ECHO) Basedir......... $(BASEDIR)
  1267. @$(ECHO) FPCDir.......... $(FPCDIR)
  1268. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1269. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1270. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1271. @$(ECHO)
  1272. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1273. @$(ECHO) Other library... $(OTHERLIBDIR)
  1274. @$(ECHO)
  1275. @$(ECHO) == Tools info ==
  1276. @$(ECHO)
  1277. @$(ECHO) As........ $(AS)
  1278. @$(ECHO) Ld........ $(LD)
  1279. @$(ECHO) Ar........ $(AR)
  1280. @$(ECHO) Rc........ $(RC)
  1281. @$(ECHO)
  1282. @$(ECHO) Mv........ $(MVPROG)
  1283. @$(ECHO) Cp........ $(CPPROG)
  1284. @$(ECHO) Rm........ $(RMPROG)
  1285. @$(ECHO) GInstall.. $(GINSTALL)
  1286. @$(ECHO) Echo...... $(ECHO)
  1287. @$(ECHO) Shell..... $(SHELL)
  1288. @$(ECHO) Date...... $(DATE)
  1289. @$(ECHO) FPCMake... $(FPCMAKE)
  1290. @$(ECHO) PPUMove... $(PPUMOVE)
  1291. @$(ECHO) Upx....... $(UPXPROG)
  1292. @$(ECHO) Zip....... $(ZIPPROG)
  1293. @$(ECHO)
  1294. @$(ECHO) == Object info ==
  1295. @$(ECHO)
  1296. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1297. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1298. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1299. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1300. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1301. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1302. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1303. @$(ECHO)
  1304. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1305. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1306. @$(ECHO)
  1307. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1308. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1309. @$(ECHO)
  1310. @$(ECHO) == Install info ==
  1311. @$(ECHO)
  1312. @$(ECHO) DateStr.............. $(DATESTR)
  1313. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1314. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1315. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1316. @$(ECHO)
  1317. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1318. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1319. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1320. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1321. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1322. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1323. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1324. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1325. @$(ECHO)
  1326. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1327. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1328. @$(ECHO)
  1329. .PHONY: fpc_info
  1330. fpc_info: $(INFORULES)
  1331. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1332. fpc_makefile_dirs
  1333. fpc_makefile:
  1334. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1335. fpc_makefile_sub1:
  1336. ifdef TARGET_DIRS
  1337. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1338. endif
  1339. ifdef TARGET_EXAMPLEDIRS
  1340. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1341. endif
  1342. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1343. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1344. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1345. all: fpc_all
  1346. debug: fpc_debug
  1347. smart: fpc_smart
  1348. release: fpc_release
  1349. examples:
  1350. shared:
  1351. install: fpc_install
  1352. sourceinstall: fpc_sourceinstall
  1353. exampleinstall: fpc_exampleinstall
  1354. distinstall:
  1355. zipinstall:
  1356. zipsourceinstall:
  1357. zipexampleinstall:
  1358. zipdistinstall:
  1359. clean: fpc_clean
  1360. distclean: fpc_distclean
  1361. cleanall: fpc_cleanall
  1362. info: fpc_info
  1363. makefiles: fpc_makefiles
  1364. .PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  1365. ifneq ($(wildcard fpcmake.loc),)
  1366. include fpcmake.loc
  1367. endif
  1368. SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
  1369. include $(INC)/makefile.inc
  1370. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  1371. include $(PROCINC)/makefile.cpu
  1372. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  1373. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  1374. nwpre$(OEXT) : nwpre.as
  1375. $(AS) -o nwpre$(OEXT) nwpre.as
  1376. prelude$(OEXT) : prelude.as
  1377. $(AS) -o prelude$(OEXT) prelude.as
  1378. $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp nwsys.inc $(SYSDEPS)
  1379. $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp
  1380. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  1381. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
  1382. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
  1383. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
  1384. $(SYSTEMUNIT)$(PPUEXT)
  1385. netware$(PPUEXT) : netware.pp $(SYSTEMUNIT)$(PPUEXT)
  1386. $(COMPILER) -I$(WININC) netware.pp
  1387. winsock2$(PPUEXT) : winsock2.pp qos.inc netware$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1388. sockets$(PPUEXT) : sockets.pp netware$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  1389. $(INC)/sockets.inc $(INC)/socketsh.inc
  1390. dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1391. crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) dos$(PPUEXT)
  1392. objects$(PPUEXT) : $(INC)/objects.pp $(SYSTEMUNIT)$(PPUEXT)
  1393. sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
  1394. objpas$(PPUEXT) dos$(PPUEXT) nwsys.inc sysconst$(PPUEXT)
  1395. $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
  1396. classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
  1397. sysutils$(PPUEXT) typinfo$(PPUEXT)
  1398. $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
  1399. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
  1400. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
  1401. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1402. $(COMPILER) $(OBJPASDIR)/math.pp
  1403. gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1404. $(COMPILER) $(OBJPASDIR)/gettext.pp
  1405. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  1406. $(OBJPASDIR)/varutilh.inc varutils.pp
  1407. $(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
  1408. types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1409. $(COMPILER) $(OBJPASDIR)/types.pp
  1410. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
  1411. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1412. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  1413. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  1414. $(COMPILER) -Sg $(INC)/heaptrc.pp
  1415. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
  1416. callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
  1417. aio$(PPUEXT) : aio.pp $(SYSTEMUNIT)$(PPUEXT)
  1418. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  1419. $(OBJPASDIR)/varutilh.inc varutils.pp
  1420. $(COMPILER) -I$(OBJPASDIR) varutils.pp
  1421. override INSTALLPPUFILES+=nwimp/aio.imp nwimp/aio.imp nwimp/audnlm32.imp \
  1422. nwimp/calnlm32.imp nwimp/ccs.imp nwimp/ccs-os.imp nwimp/clibaux.imp \
  1423. nwimp/clibctx.imp nwimp/clib.imp nwimp/clxnlm32.imp nwimp/dplsv386.imp \
  1424. nwimp/dsapi.imp nwimp/dsevent.imp nwimp/lib0.imp \
  1425. nwimp/locnlm32.imp nwimp/ndpsrpc.imp nwimp/netnlm32.imp nwimp/nit.imp \
  1426. nwimp/nlmlib.imp nwimp/nwpsrv3x.imp nwimp/nwpsrv.imp nwimp/nwsnut.imp \
  1427. nwimp/requestr.imp nwimp/socklib.imp nwimp/streams.imp nwimp/threads.imp \
  1428. nwimp/tli.imp nwimp/vollib.imp nwimp/ws2_32.imp nwimp/ws2nlm.imp