|
@@ -236,14 +236,6 @@ OS_TARGET=$(OS_TARGET_DEFAULT)
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-# For 1.0.x we need to use extra calls to retrieve all info
|
|
|
-ifneq ($(words $(FPC_COMPILERINFO)),5)
|
|
|
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
|
|
|
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
|
|
|
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
|
|
|
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
|
|
|
-endif
|
|
|
-
|
|
|
# Retrieve Target/Source CPU and Target/Source OS
|
|
|
ifndef CPU_SOURCE
|
|
|
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
|
|
@@ -832,12 +824,10 @@ SHAREDLIBPREFIX=libfp
|
|
|
STATICLIBPREFIX=libp
|
|
|
IMPORTLIBPREFIX=libimp
|
|
|
RSTEXT=.rst
|
|
|
+# external debug info for executable
|
|
|
+EXEDBGEXT=.dbg
|
|
|
#DEBUGSYMEXT #for debugger symbol files, define only for targets which has this
|
|
|
|
|
|
-# 1.0.x has target specific extensions for ppu files and objects
|
|
|
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
|
|
|
-# short version for 1.1 and above - no target specific extensions
|
|
|
-
|
|
|
# Go32v1
|
|
|
ifeq ($(OS_TARGET),go32v1)
|
|
|
STATICLIBPREFIX=
|
|
@@ -1000,6 +990,7 @@ BATCHEXT=.sh
|
|
|
EXEEXT=
|
|
|
HASSHAREDLIB=1
|
|
|
SHORTSUFFIX=dwn
|
|
|
+EXEDBGEXT=.dSYM
|
|
|
endif
|
|
|
|
|
|
# gba
|
|
@@ -1028,197 +1019,6 @@ SHAREDLIBEXT=.so
|
|
|
SHORTSUFFIX=wii
|
|
|
endif
|
|
|
|
|
|
-else
|
|
|
-# long version for 1.0.x - target specific extensions
|
|
|
-
|
|
|
-# Go32v1
|
|
|
-ifeq ($(OS_TARGET),go32v1)
|
|
|
-PPUEXT=.pp1
|
|
|
-OEXT=.o1
|
|
|
-ASMEXT=.s1
|
|
|
-SMARTEXT=.sl1
|
|
|
-STATICLIBEXT=.a1
|
|
|
-SHAREDLIBEXT=.so1
|
|
|
-STATICLIBPREFIX=
|
|
|
-SHORTSUFFIX=v1
|
|
|
-IMPORTLIBPREFIX=
|
|
|
-endif
|
|
|
-
|
|
|
-# Go32v2
|
|
|
-ifeq ($(OS_TARGET),go32v2)
|
|
|
-STATICLIBPREFIX=
|
|
|
-SHORTSUFFIX=dos
|
|
|
-IMPORTLIBPREFIX=
|
|
|
-endif
|
|
|
-
|
|
|
-# watcom
|
|
|
-ifeq ($(OS_TARGET),watcom)
|
|
|
-STATICLIBPREFIX=
|
|
|
-SHORTSUFFIX=wat
|
|
|
-IMPORTLIBPREFIX=
|
|
|
-endif
|
|
|
-
|
|
|
-# Linux
|
|
|
-ifeq ($(OS_TARGET),linux)
|
|
|
-BATCHEXT=.sh
|
|
|
-EXEEXT=
|
|
|
-HASSHAREDLIB=1
|
|
|
-SHORTSUFFIX=lnx
|
|
|
-endif
|
|
|
-
|
|
|
-# FreeBSD
|
|
|
-ifeq ($(OS_TARGET),freebsd)
|
|
|
-BATCHEXT=.sh
|
|
|
-EXEEXT=
|
|
|
-HASSHAREDLIB=1
|
|
|
-SHORTSUFFIX=fbs
|
|
|
-endif
|
|
|
-
|
|
|
-# NetBSD
|
|
|
-ifeq ($(OS_TARGET),netbsd)
|
|
|
-BATCHEXT=.sh
|
|
|
-EXEEXT=
|
|
|
-HASSHAREDLIB=1
|
|
|
-SHORTSUFFIX=nbs
|
|
|
-endif
|
|
|
-
|
|
|
-# OpenBSD
|
|
|
-ifeq ($(OS_TARGET),openbsd)
|
|
|
-BATCHEXT=.sh
|
|
|
-EXEEXT=
|
|
|
-HASSHAREDLIB=1
|
|
|
-SHORTSUFFIX=obs
|
|
|
-endif
|
|
|
-
|
|
|
-# Win32
|
|
|
-ifeq ($(OS_TARGET),win32)
|
|
|
-PPUEXT=.ppw
|
|
|
-OEXT=.ow
|
|
|
-ASMEXT=.sw
|
|
|
-SMARTEXT=.slw
|
|
|
-STATICLIBEXT=.aw
|
|
|
-SHAREDLIBEXT=.dll
|
|
|
-SHORTSUFFIX=w32
|
|
|
-endif
|
|
|
-
|
|
|
-# OS/2
|
|
|
-ifeq ($(OS_TARGET),os2)
|
|
|
-BATCHEXT=.cmd
|
|
|
-PPUEXT=.ppo
|
|
|
-ASMEXT=.so2
|
|
|
-OEXT=.oo2
|
|
|
-AOUTEXT=.out
|
|
|
-SMARTEXT=.sl2
|
|
|
-STATICLIBPREFIX=
|
|
|
-STATICLIBEXT=.ao2
|
|
|
-SHAREDLIBEXT=.dll
|
|
|
-SHORTSUFFIX=os2
|
|
|
-ECHO=echo
|
|
|
-IMPORTLIBPREFIX=
|
|
|
-endif
|
|
|
-
|
|
|
-# Amiga
|
|
|
-ifeq ($(OS_TARGET),amiga)
|
|
|
-EXEEXT=
|
|
|
-PPUEXT=.ppu
|
|
|
-ASMEXT=.s
|
|
|
-OEXT=.o
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-SHAREDLIBEXT=.library
|
|
|
-SHORTSUFFIX=amg
|
|
|
-endif
|
|
|
-
|
|
|
-# Atari
|
|
|
-ifeq ($(OS_TARGET),atari)
|
|
|
-PPUEXT=.ppu
|
|
|
-ASMEXT=.s
|
|
|
-OEXT=.o
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-EXEEXT=.ttp
|
|
|
-SHORTSUFFIX=ata
|
|
|
-endif
|
|
|
-
|
|
|
-# BeOS
|
|
|
-ifeq ($(OS_TARGET),beos)
|
|
|
-BATCHEXT=.sh
|
|
|
-PPUEXT=.ppu
|
|
|
-ASMEXT=.s
|
|
|
-OEXT=.o
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-EXEEXT=
|
|
|
-SHORTSUFFIX=be
|
|
|
-endif
|
|
|
-
|
|
|
-# Solaris
|
|
|
-ifeq ($(OS_TARGET),solaris)
|
|
|
-BATCHEXT=.sh
|
|
|
-PPUEXT=.ppu
|
|
|
-ASMEXT=.s
|
|
|
-OEXT=.o
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-EXEEXT=
|
|
|
-SHORTSUFFIX=sun
|
|
|
-endif
|
|
|
-
|
|
|
-# QNX
|
|
|
-ifeq ($(OS_TARGET),qnx)
|
|
|
-BATCHEXT=.sh
|
|
|
-PPUEXT=.ppu
|
|
|
-ASMEXT=.s
|
|
|
-OEXT=.o
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-EXEEXT=
|
|
|
-SHORTSUFFIX=qnx
|
|
|
-endif
|
|
|
-
|
|
|
-# Netware
|
|
|
-ifeq ($(OS_TARGET),netware)
|
|
|
-STATICLIBPREFIX=
|
|
|
-PPUEXT=.ppu
|
|
|
-OEXT=.o
|
|
|
-ASMEXT=.s
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-SHAREDLIBEXT=.nlm
|
|
|
-EXEEXT=.nlm
|
|
|
-SHORTSUFFIX=nw
|
|
|
-IMPORTLIBPREFIX=imp
|
|
|
-endif
|
|
|
-
|
|
|
-# Netware libc
|
|
|
-ifeq ($(OS_TARGET),netwlibc)
|
|
|
-STATICLIBPREFIX=
|
|
|
-PPUEXT=.ppu
|
|
|
-OEXT=.o
|
|
|
-ASMEXT=.s
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-SHAREDLIBEXT=.nlm
|
|
|
-EXEEXT=.nlm
|
|
|
-SHORTSUFFIX=nwl
|
|
|
-IMPORTLIBPREFIX=imp
|
|
|
-endif
|
|
|
-
|
|
|
-# MacOS
|
|
|
-ifeq ($(OS_TARGET),macos)
|
|
|
-BATCHEXT=
|
|
|
-PPUEXT=.ppu
|
|
|
-ASMEXT=.s
|
|
|
-OEXT=.o
|
|
|
-SMARTEXT=.sl
|
|
|
-STATICLIBEXT=.a
|
|
|
-EXEEXT=
|
|
|
-DEBUGSYMEXT=.xcoff
|
|
|
-SHORTSUFFIX=mac
|
|
|
-IMPORTLIBPREFIX=imp
|
|
|
-endif
|
|
|
-
|
|
|
-#end of target specific settings
|
|
|
endif
|
|
|
|
|
|
# For 8.3 limited OS's the short suffixes
|
|
@@ -1252,15 +1052,6 @@ ASNAME=$(BINUTILSPREFIX)as
|
|
|
LDNAME=$(BINUTILSPREFIX)ld
|
|
|
ARNAME=$(BINUTILSPREFIX)ar
|
|
|
RCNAME=$(BINUTILSPREFIX)rc
|
|
|
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
|
|
|
-ifeq ($(OS_TARGET),win32)
|
|
|
-ifeq ($(CROSSBINDIR),)
|
|
|
-ASNAME=asw
|
|
|
-LDNAME=ldw
|
|
|
-ARNAME=arw
|
|
|
-endif
|
|
|
-endif
|
|
|
-endif
|
|
|
|
|
|
# assembler, redefine it if cross compiling
|
|
|
ifndef ASPROG
|
|
@@ -1511,7 +1302,7 @@ endif
|
|
|
|
|
|
# create always pic'ed code on x86_64
|
|
|
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
|
|
|
-ifneq ($(findstring $(OS_TARGET),linux solaris),)
|
|
|
+ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
|
|
|
ifeq ($(CPU_TARGET),x86_64)
|
|
|
override FPCOPT+=-Cg
|
|
|
endif
|
|
@@ -1656,10 +1447,12 @@ ifndef CROSSINSTALL
|
|
|
ifneq ($(TARGET_PROGRAMS),)
|
|
|
override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
|
|
|
override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
|
|
|
+override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
|
|
|
|
|
|
override ALLTARGET+=fpc_exes
|
|
|
override INSTALLEXEFILES+=$(EXEFILES)
|
|
|
override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
|
|
|
+override CLEANEXEDBGFILES+=$(EXEDBGFILES)
|
|
|
ifeq ($(OS_TARGET),os2)
|
|
|
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
|
|
|
endif
|
|
@@ -1696,8 +1489,10 @@ HASEXAMPLES=1
|
|
|
override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
|
|
|
override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
|
|
|
override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
|
|
|
+override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES))
|
|
|
|
|
|
override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
|
|
|
+override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES)
|
|
|
ifeq ($(OS_TARGET),os2)
|
|
|
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
|
|
|
endif
|
|
@@ -2044,10 +1839,12 @@ fpc_zipdistinstall:
|
|
|
|
|
|
ifdef EXEFILES
|
|
|
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
|
|
|
+override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
|
|
|
endif
|
|
|
|
|
|
ifdef CLEAN_PROGRAMS
|
|
|
override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
|
|
|
+override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
|
|
|
endif
|
|
|
|
|
|
ifdef CLEAN_UNITS
|
|
@@ -2067,6 +1864,10 @@ fpc_clean: $(CLEANTARGET)
|
|
|
ifdef CLEANEXEFILES
|
|
|
-$(DEL) $(CLEANEXEFILES)
|
|
|
endif
|
|
|
+# DELTREE instead of DEL because on Mac OS X these are directories
|
|
|
+ifdef CLEANEXEDBGFILES
|
|
|
+ -$(DELTREE) $(CLEANEXEDBGFILES)
|
|
|
+endif
|
|
|
ifdef CLEANPPUFILES
|
|
|
-$(DEL) $(CLEANPPUFILES)
|
|
|
endif
|