~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to rtl/go32v2/Makefile

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2001-08-29 23:15:17 UTC
  • Revision ID: james.westby@ubuntu.com-20010829231517-thxsp7ctuab584ia
Tags: upstream-1.0.4
ImportĀ upstreamĀ versionĀ 1.0.4

Show diffs side-by-side

added added

removed removed

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