2 # Makefile generated by fpcmake v1.00 [2000/12/19]
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 #####################################################################
14 # We need only / in the path
15 override PATH
:=$(subst \
,/,$(PATH
))
17 # Search for PWD and determine also if we are under linux
18 PWD
:=$(strip $(wildcard $(addsuffix /pwd.exe
,$(subst ;, ,$(PATH
)))))
20 PWD
:=$(strip $(wildcard $(addsuffix /pwd
,$(subst :, ,$(PATH
)))))
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
28 PWD
:=$(firstword $(PWD
))
31 PWD
:=$(firstword $(PWD
))
34 # Detect NT - NT sets OS to Windows_NT
35 # Detect OS/2 - OS/2 has OS2_SHELL defined
37 ifeq ($(OS
),Windows_NT
)
46 # The extension of executables
53 # The path which is searched separated by spaces
55 SEARCHPATH
=$(subst :, ,$(PATH
))
57 SEARCHPATH
=$(subst ;, ,$(PATH
))
62 BASEDIR
:=$(shell $(PWD
))
67 #####################################################################
69 #####################################################################
71 override OS_TARGET
:=os2
72 override CPU_TARGET
:=i386
74 #####################################################################
75 # FPC version/target Detection
76 #####################################################################
78 # What compiler to use ?
80 # Compatibility with old makefiles
87 override FPC
:=$(subst $(SRCEXEEXT
),,$(FPC
))
88 override FPC
:=$(subst \
,/,$(FPC
))$(SRCEXEEXT
)
92 OS_TARGET
:=$(shell $(FPC
) -iTO
)
97 OS_SOURCE
:=$(shell $(FPC
) -iSO
)
102 CPU_TARGET
:=$(shell $(FPC
) -iTP
)
107 CPU_SOURCE
:=$(shell $(FPC
) -iSP
)
112 FPC_VERSION
:=$(shell $(FPC
) -iV
)
115 export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
117 #####################################################################
119 #####################################################################
123 PROCINC
=$(RTL
)/$(CPU_TARGET
)
128 OBJPASDIR
=$(RTL
)/objpas
129 GRAPHDIR
=$(INC
)/graph
131 # Define Go32v2 Units
133 #####################################################################
135 #####################################################################
137 # Test FPCDIR to look if the RTL dir exists
139 override FPCDIR
:=$(subst \
,/,$(FPCDIR
))
140 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
141 ifeq ($(wildcard $(FPCDIR
)/units
),)
142 override FPCDIR
=wrong
146 override FPCDIR
=wrong
150 ifeq ($(FPCDIR
),wrong
)
152 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
153 ifeq ($(wildcard $(FPCDIR
)/units
),)
154 override FPCDIR
=wrong
160 ifeq ($(FPCDIR
),wrong
)
162 override FPCDIR
=/usr
/local
/lib
/fpc
/$(FPC_VERSION
)
163 ifeq ($(wildcard $(FPCDIR
)/units
),)
164 override FPCDIR
=/usr
/lib
/fpc
/$(FPC_VERSION
)
167 override FPCDIR
:=$(subst /$(FPC
),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC
),$(SEARCHPATH
))))))
168 override FPCDIR
:=$(FPCDIR
)/..
169 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
170 ifeq ($(wildcard $(FPCDIR
)/units
),)
171 override FPCDIR
:=$(FPCDIR
)/..
172 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
173 ifeq ($(wildcard $(FPCDIR
)/units
),)
174 override FPCDIR
=c
:/pp
182 #####################################################################
184 #####################################################################
189 override LOADEROBJECTS
+=prt0 prt1 code2 code3
190 override UNITOBJECTS
+=$(SYSTEMUNIT
) objpas strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi dive dos crt objects printer sysutils math typinfo ucomplex cpu mmx getopts heaptrc lineinfo
191 override RSTOBJECTS
+=math
206 override NEEDINCDIR
=$(INC
) $(PROCINC
)
219 INFOTARGET
=fpc_infocfg fpc_infoobjects fpc_infoinstall
221 #####################################################################
223 #####################################################################
225 SYSTEMPPU
=$(addsuffix $(PPUEXT
),$(SYSTEMUNIT
))
227 # Get the system independent include file names.
228 # This will set the following variables :
230 include $(INC
)/makefile.inc
231 SYSINCDEPS
=$(addprefix $(INC
)/,$(SYSINCNAMES
))
233 # Get the processor dependent include file names.
234 # This will set the following variables :
236 include $(PROCINC
)/makefile.cpu
237 SYSCPUDEPS
=$(addprefix $(PROCINC
)/,$(CPUINCNAMES
))
239 # Put system unit dependencies together.
240 SYSDEPS
=$(SYSINCDEPS
) $(SYSCPUDEPS
)
242 #####################################################################
244 #####################################################################
248 ECHO
:=$(strip $(wildcard $(addsuffix /gecho
$(EXEEXT
),$(SEARCHPATH
))))
250 ECHO
:=$(strip $(wildcard $(addsuffix /echo
$(SRCEXEEXT
),$(SEARCHPATH
))))
255 ECHO
:=$(firstword $(ECHO
))
259 ECHO
:=$(firstword $(ECHO
))
279 # Check delete program
284 # Check deltree program
292 INSTALL
:=install -c
-m
644
298 # To install programs
301 INSTALLEXE
:=install -c
-m
755
307 # To make a directory.
310 MKDIR
:=install -m
755 -d
312 MKDIR
:=ginstall
-m
755 -d
316 export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
318 #####################################################################
320 #####################################################################
322 # assembler, redefine it if cross compiling
327 # linker, but probably not used
343 # ldconfig to rebuild .so cache
352 PPUMOVE
:=$(strip $(wildcard $(addsuffix /ppumove
$(SRCEXEEXT
),$(SEARCHPATH
))))
356 PPUMOVE
:=$(firstword $(PPUMOVE
))
363 PPUFILES
:=$(strip $(wildcard $(addsuffix /ppufiles
$(SRCEXEEXT
),$(SEARCHPATH
))))
367 PPUFILES
:=$(firstword $(PPUFILES
))
372 # Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
373 # upx uses that one itself (PFV)
375 ifeq ($(OS_TARGET
),go32v2
)
378 ifeq ($(OS_TARGET
),win32
)
382 UPXPROG
:=$(strip $(wildcard $(addsuffix /upx
$(SRCEXEEXT
),$(SEARCHPATH
))))
386 UPXPROG
:=$(firstword $(UPXPROG
))
394 # ZipProg, you can't use Zip as the var name (PFV)
396 ZIPPROG
:=$(strip $(wildcard $(addsuffix /zip
$(SRCEXEEXT
),$(SEARCHPATH
))))
400 ZIPPROG
:=$(firstword $(ZIPPROG
))
410 TARPROG
:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT
),$(SEARCHPATH
))))
414 TARPROG
:=$(firstword $(TARPROG
))
427 #####################################################################
429 #####################################################################
431 # Default needed extensions (Go32v2,Linux)
445 ifeq ($(OS_TARGET
),go32v1
)
456 ifeq ($(OS_TARGET
),go32v2
)
461 ifeq ($(OS_TARGET
),linux
)
468 ifeq ($(OS_TARGET
),freebsd
)
471 FPCMADE
=fpcmade.freebsd
475 ifeq ($(OS_TARGET
),win32
)
486 ifeq ($(OS_TARGET
),os2
)
498 ifeq ($(OS_TARGET
),go32v2
)
501 ifeq ($(OS_TARGET
),go32v1
)
505 # determine which .pas extension is used
508 override TESTPAS
:=$(strip $(wildcard $(addsuffix .pas
,$(firstword $(EXEOBJECTS
)))))
510 override TESTPAS
:=$(strip $(wildcard $(addsuffix .pas
,$(firstword $(UNITOBJECTS
)))))
521 #####################################################################
522 # Default Directories
523 #####################################################################
525 # Linux and freebsd use unix dirs with /usr/bin, /usr/lib
526 # When zipping use the target as default, when normal install then
527 # use the source os as default
530 ifeq ($(OS_TARGET
),linux
)
533 ifeq ($(OS_TARGET
),freebsd
)
538 ifeq ($(OS_SOURCE
),linux
)
541 ifeq ($(OS_SOURCE
),freebsd
)
546 # set the prefix directory where to install everything
547 ifndef PREFIXINSTALLDIR
549 PREFIXINSTALLDIR
=/usr
554 export PREFIXINSTALLDIR
556 # Where to place the resulting zip files
558 DESTZIPDIR
:=$(BASEDIR
)
562 #####################################################################
563 # Install Directories
564 #####################################################################
566 # set the base directory where to install everything
567 ifndef BASEINSTALLDIR
569 BASEINSTALLDIR
=$(PREFIXINSTALLDIR
)/lib
/fpc
/$(FPC_VERSION
)
571 BASEINSTALLDIR
=$(PREFIXINSTALLDIR
)
575 # set the directory where to install the binaries
578 BININSTALLDIR
=$(PREFIXINSTALLDIR
)/bin
580 BININSTALLDIR
=$(BASEINSTALLDIR
)/bin
/$(OS_TARGET
)
584 # set the directory where to install the units.
585 ifndef UNITINSTALLDIR
586 UNITINSTALLDIR
=$(BASEINSTALLDIR
)/units
/$(OS_TARGET
)
588 UNITINSTALLDIR
:=$(UNITINSTALLDIR
)/$(UNITSUBDIR
)
592 # Where to install shared libraries
595 LIBINSTALLDIR
=$(PREFIXINSTALLDIR
)/lib
597 LIBINSTALLDIR
=$(UNITINSTALLDIR
)
601 # Where the source files will be stored
602 ifndef SOURCEINSTALLDIR
604 SOURCEINSTALLDIR
=$(PREFIXINSTALLDIR
)/src
/fpc-
$(FPC_VERSION
)
606 SOURCEINSTALLDIR
=$(BASEINSTALLDIR
)/source
609 SOURCEINSTALLDIR
:=$(SOURCEINSTALLDIR
)/$(SOURCESUBDIR
)
613 # Where the doc files will be stored
616 DOCINSTALLDIR
=$(PREFIXINSTALLDIR
)/doc
/fpc-
$(FPC_VERSION
)
618 DOCINSTALLDIR
=$(BASEINSTALLDIR
)/doc
622 # Where to install the examples, under linux we use the doc dir
623 # because the copytree command will create a subdir itself
624 ifndef EXAMPLEINSTALLDIR
626 EXAMPLEINSTALLDIR
=$(DOCINSTALLDIR
)/examples
628 EXAMPLEINSTALLDIR
=$(BASEINSTALLDIR
)/examples
631 EXAMPLEINSTALLDIR
:=$(EXAMPLEINSTALLDIR
)/$(EXAMPLESUBDIR
)
635 # Where the some extra (data)files will be stored
636 ifndef DATAINSTALLDIR
637 DATAINSTALLDIR
=$(BASEINSTALLDIR
)
640 #####################################################################
642 #####################################################################
650 override FPC
=redir
-eo
$(FPC
)
652 # set the verbosity to max
654 override REDIR
:= >> $(REDIRFILE
)
658 #####################################################################
659 # Compiler Command Line
660 #####################################################################
662 # Load commandline OPTDEF and add FPC_CPU define
663 override FPCOPTDEF
:=-d
$(CPU_TARGET
)
665 # Load commandline OPT and add target and unit dir to be sure
666 ifneq ($(OS_TARGET
),$(OS_SOURCE
))
667 override FPCOPT
+=-T
$(OS_TARGET
)
670 # User dirs should be first, so they are looked at first
672 override FPCOPT
+=$(addprefix -Fu
,$(UNITDIR
))
675 override FPCOPT
+=$(addprefix -Fl
,$(LIBDIR
))
678 override FPCOPT
+=$(addprefix -Fo
,$(OBJDIR
))
681 override FPCOPT
+=$(addprefix -Fi
,$(INCDIR
))
689 # Smartlinking creation
696 override FPCOPT
+=-gl
-dDEBUG
699 # Release mode (strip, optimize and don't load ppc386.cfg)
700 # 0.99.12b has a bug in the optimizer so don't use it by default
702 ifeq ($(FPC_VERSION
),0.99.12)
703 override FPCOPT
+=-Xs
-OGp3
-n
705 override FPCOPT
+=-Xs
-OG2p3
-n
716 override FPCOPT
+=-OG2p3
719 # Verbose settings (warning,note,info)
721 override FPCOPT
+=-vwni
725 override FPCOPT
+=-Fu
$(UNITSDIR
)
729 override FPCOPT
+=$(addprefix -Fi
,$(NEEDINCDIR
))
733 # Target dirs and the prefix to use for clean/install
735 override FPCOPT
+=-FE
$(TARGETDIR
)
736 ifeq ($(TARGETDIR
),.
)
737 override TARGETDIRPREFIX
=
739 override TARGETDIRPREFIX
=$(TARGETDIR
)/
743 override FPCOPT
+=-FU
$(UNITTARGETDIR
)
744 ifeq ($(UNITTARGETDIR
),.
)
745 override UNITTARGETDIRPREFIX
=
747 override UNITTARGETDIRPREFIX
=$(TARGETDIR
)/
751 override UNITTARGETDIR
=$(TARGETDIR
)
752 override UNITTARGETDIRPREFIX
=$(TARGETDIRPREFIX
)
756 # Add commandline options last so they can override
758 override FPCOPT
+=$(OPT
)
761 # Add defines from FPCOPTDEF to FPCOPT
763 override FPCOPT
+=$(FPCOPTDEF
)
768 override FPCOPT
+=-Fr
$(ERRORFILE
)
771 # Was a config file specified ?
773 override FPCOPT
+=@
$(CFGFILE
)
776 # For win32 the options are passed using the environment FPCEXTCMD
777 ifeq ($(OS_SOURCE
),win32
)
778 override FPCEXTCMD
:=$(FPCOPT
)
779 override FPCOPT
:=!FPCEXTCMD
783 # Compiler commandline
784 override COMPILER
:=$(FPC
) $(FPCOPT
)
786 # also call ppas if with command option -s
787 # but only if the OS_SOURCE and OS_TARGE are equal
788 ifeq (,$(findstring -s
,$(COMPILER
)))
791 ifeq ($(OS_SOURCE
),$(OS_TARGET
))
796 #####################################################################
798 #####################################################################
808 showinstall
: fpc_showinstall
812 sourceinstall
: fpc_sourceinstall
814 exampleinstall
: fpc_exampleinstall
816 zipinstall
: fpc_zipinstall
818 zipsourceinstall
: fpc_zipsourceinstall
820 zipexampleinstall
: fpc_zipexampleinstall
824 distclean: fpc_distclean
826 cleanall
: fpc_cleanall
830 .PHONY
: all debug smart shared showinstall
install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall
clean distclean cleanall
info
832 #####################################################################
834 #####################################################################
838 %$(OEXT
): %$(LOADEREXT
)
839 $(AS
) -o
$*$(OEXT
) $<
841 override ALLTARGET
+=fpc_loaders
842 override CLEANTARGET
+=fpc_loaders_clean
843 override SHOWINSTALLTARGET
+=fpc_loaders_showinstall
844 override INSTALLTARGET
+=fpc_loaders_install
846 override LOADEROFILES
:=$(addsuffix $(OEXT
),$(LOADEROBJECTS
))
848 fpc_loaders
: $(LOADEROFILES
)
851 -$(DEL
) $(LOADEROFILES
)
853 fpc_loaders_showinstall
:
854 @
$(ECHO
) -e
$(addprefix "\n"$(UNITINSTALLDIR
)/,$(LOADEROFILES
))
857 $(MKDIR
) $(UNITINSTALLDIR
)
858 $(INSTALL
) $(LOADEROFILES
) $(UNITINSTALLDIR
)
860 #####################################################################
862 #####################################################################
866 override ALLTARGET
+=fpc_units
868 override UNITPPUFILES
=$(addsuffix $(PPUEXT
),$(UNITOBJECTS
))
869 override INSTALLPPUFILES
+=$(UNITPPUFILES
)
870 override CLEANPPUFILES
+=$(UNITPPUFILES
)
872 fpc_units
: $(UNITPPUFILES
)
874 #####################################################################
876 #####################################################################
879 override RSTFILES
=$(addsuffix $(RSTEXT
),$(RSTOBJECTS
))
881 override CLEANRSTFILES
+=$(RSTFILES
)
884 #####################################################################
885 # General compile rules
886 #####################################################################
888 .PHONY
: fpc_packages fpc_all fpc_debug
890 $(FPCMADE
): $(ALLTARGET
)
891 @
$(ECHO
) Compiled
> $(FPCMADE
)
893 fpc_packages
: $(COMPILEPACKAGES
)
895 fpc_all
: fpc_packages
$(FPCMADE
)
900 # Search paths for .ppu if targetdir is set
902 vpath
%$(PPUEXT
) $(UNITTARGETDIR
)
905 # General compile rules, available for both possible PASEXT
907 .SUFFIXES
: $(EXEEXT
) $(PPUEXT
) $(OEXT
) .pas .pp
910 $(COMPILER
) $< $(REDIR
)
914 $(COMPILER
) $< $(REDIR
)
918 $(COMPILER
) $< $(REDIR
)
922 $(COMPILER
) $< $(REDIR
)
925 #####################################################################
927 #####################################################################
929 .PHONY
: fpc_smart fpc_shared
932 LIBFULLNAME
=$(LIBNAME
).
$(LIBVERSION
)
934 LIBFULLNAME
=$(LIBNAME
)
937 # Default sharedlib units are all unit objects
938 ifndef SHAREDLIBUNITOBJECTS
939 SHAREDLIBUNITOBJECTS
:=$(UNITOBJECTS
)
943 $(MAKE
) all LINKSMART
=1 CREATESMART
=1
948 @
$(ECHO
) "LIBNAME not set"
950 $(PPUMOVE
) $(SHAREDLIBUNITOBJECTS
) -o
$(LIBFULLNAME
)
953 @
$(ECHO
) "Shared Libraries not supported"
956 #####################################################################
958 #####################################################################
960 .PHONY
: fpc_showinstall fpc_install
962 ifdef EXTRAINSTALLUNITS
963 override INSTALLPPUFILES
+=$(addsuffix $(PPUEXT
),$(EXTRAINSTALLUNITS
))
966 ifdef INSTALLPPUFILES
967 override INSTALLPPUFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(INSTALLPPUFILES
))
969 INSTALLPPULINKFILES
:=$(shell $(PPUFILES
) -S
-O
$(INSTALLPPUFILES
))
971 INSTALLPPULINKFILES
:=$(wildcard $(subst $(PPUEXT
),$(OEXT
),$(INSTALLPPUFILES
)) $(addprefix $(LIBPREFIX
),$(subst $(PPUEXT
),$(STATICLIBEXT
),$(INSTALLPPUFILES
))))
973 override INSTALLPPULINKFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(INSTALLPPULINKFILES
))
976 ifdef INSTALLEXEFILES
977 override INSTALLEXEFILES
:=$(addprefix $(TARGETDIRPREFIX
),$(INSTALLEXEFILES
))
980 fpc_showinstall
: $(SHOWINSTALLTARGET
)
981 ifdef INSTALLEXEFILES
982 @
$(ECHO
) -e
$(addprefix "\n"$(BININSTALLDIR
)/,$(INSTALLEXEFILES
))
984 ifdef INSTALLPPUFILES
985 @
$(ECHO
) -e
$(addprefix "\n"$(UNITINSTALLDIR
)/,$(INSTALLPPUFILES
))
986 ifneq ($(INSTALLPPULINKFILES
),)
987 @
$(ECHO
) -e
$(addprefix "\n"$(UNITINSTALLDIR
)/,$(INSTALLPPULINKFILES
))
989 ifneq ($(wildcard $(LIBFULLNAME
)),)
990 @
$(ECHO
) $(LIBINSTALLDIR
)/$(LIBFULLNAME
)
992 @
$(ECHO
) $(LIBINSTALLDIR
)/$(LIBNAME
)
996 ifdef EXTRAINSTALLFILES
997 @
$(ECHO
) -e
$(addprefix "\n"$(DATAINSTALLDIR
)/,$(EXTRAINSTALLFILES
))
1000 fpc_install
: $(INSTALLTARGET
)
1001 # Create UnitInstallFiles
1002 ifdef INSTALLEXEFILES
1003 $(MKDIR
) $(BININSTALLDIR
)
1004 # Compress the exes if upx is defined
1006 -$(UPXPROG
) $(INSTALLEXEFILES
)
1008 $(INSTALLEXE
) $(INSTALLEXEFILES
) $(BININSTALLDIR
)
1010 ifdef INSTALLPPUFILES
1011 $(MKDIR
) $(UNITINSTALLDIR
)
1012 $(INSTALL
) $(INSTALLPPUFILES
) $(UNITINSTALLDIR
)
1013 ifneq ($(INSTALLPPULINKFILES
),)
1014 $(INSTALL
) $(INSTALLPPULINKFILES
) $(UNITINSTALLDIR
)
1016 ifneq ($(wildcard $(LIBFULLNAME
)),)
1017 $(MKDIR
) $(LIBINSTALLDIR
)
1018 $(INSTALL
) $(LIBFULLNAME
) $(LIBINSTALLDIR
)
1020 ln
-sf
$(LIBFULLNAME
) $(LIBINSTALLDIR
)/$(LIBNAME
)
1024 ifdef EXTRAINSTALLFILES
1025 $(MKDIR
) $(DATAINSTALLDIR
)
1026 $(INSTALL
) $(EXTRAINSTALLFILES
) $(DATAINSTALLDIR
)
1029 #####################################################################
1030 # SourceInstall rules
1031 #####################################################################
1033 .PHONY
: fpc_sourceinstall
1036 SOURCETOPDIR
=$(BASEDIR
)
1039 fpc_sourceinstall
: clean
1040 $(MKDIR
) $(SOURCEINSTALLDIR
)
1041 $(COPYTREE
) $(SOURCETOPDIR
) $(SOURCEINSTALLDIR
)
1043 #####################################################################
1044 # exampleinstall rules
1045 #####################################################################
1047 .PHONY
: fpc_exampleinstall
1049 fpc_exampleinstall
: $(addsuffix _clean
,$(EXAMPLEDIROBJECTS
))
1050 ifdef EXAMPLESOURCEFILES
1051 $(MKDIR
) $(EXAMPLEINSTALLDIR
)
1052 $(COPY
) $(EXAMPLESOURCEFILES
) $(EXAMPLEINSTALLDIR
)
1054 ifdef EXAMPLEDIROBJECTS
1055 ifndef EXAMPLESOURCEFILES
1056 $(MKDIR
) $(EXAMPLEINSTALLDIR
)
1058 $(COPYTREE
) $(addsuffix /*,$(EXAMPLEDIROBJECTS
)) $(EXAMPLEINSTALLDIR
)
1061 #####################################################################
1063 #####################################################################
1065 .PHONY
: fpc_zipinstall
1067 # Create suffix to add
1068 ifndef PACKAGESUFFIX
1069 PACKAGESUFFIX
=$(OS_TARGET
)
1070 ifeq ($(OS_TARGET
),go32v2
)
1073 ifeq ($(OS_TARGET
),win32
)
1076 ifeq ($(OS_TARGET
),os2
)
1081 # Temporary path to pack a file
1084 PACKDIR
=$(BASEDIR
)/pack_tmp
1086 PACKDIR
=/tmp
/fpc-pack
1090 # Maybe create default zipname from packagename
1093 ZIPNAME
=$(PACKAGEPREFIX
)$(PACKAGENAME
)$(PACKAGESUFFIX
)
1097 # Use tar by default under linux
1106 @
$(ECHO
) "Please specify ZIPNAME!"
1109 $(MAKE
) $(ZIPTARGET
) PREFIXINSTALLDIR
=$(PACKDIR
)
1111 $(DEL
) $(DESTZIPDIR
)/$(ZIPNAME
)$(TAREXT
)
1112 cd
$(PACKDIR
) ; $(TARPROG
) cf
$(TAROPT
) $(DESTZIPDIR
)/$(ZIPNAME
)$(TAREXT
) * ; cd
$(BASEDIR
)
1114 $(DEL
) $(DESTZIPDIR
)/$(ZIPNAME
)$(ZIPEXT
)
1115 cd
$(PACKDIR
) ; $(ZIPPROG
) -Dr
$(ZIPOPT
) $(DESTZIPDIR
)/$(ZIPNAME
)$(ZIPEXT
) * ; cd
$(BASEDIR
)
1117 $(DELTREE
) $(PACKDIR
)
1120 .PHONY
: fpc_zipsourceinstall
1122 fpc_zipsourceinstall
:
1123 $(MAKE
) fpc_zipinstall ZIPTARGET
=sourceinstall PACKAGESUFFIX
=src
1125 .PHONY
: fpc_zipexampleinstall
1127 fpc_zipexampleinstall
:
1128 $(MAKE
) fpc_zipinstall ZIPTARGET
=exampleinstall PACKAGESUFFIX
=exm
1130 #####################################################################
1132 #####################################################################
1134 .PHONY
: fpc_clean fpc_cleanall fpc_distclean
1137 override CLEANEXEFILES
:=$(addprefix $(TARGETDIRPREFIX
),$(CLEANEXEFILES
))
1140 ifdef EXTRACLEANUNITS
1141 override CLEANPPUFILES
+=$(addsuffix $(PPUEXT
),$(EXTRACLEANUNITS
))
1145 override CLEANPPUFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(CLEANPPUFILES
))
1146 # Get the .o and .a files created for the units
1148 CLEANPPULINKFILES
:=$(shell $(PPUFILES
) $(CLEANPPUFILES
))
1150 CLEANPPULINKFILES
:=$(wildcard $(subst $(PPUEXT
),$(OEXT
),$(CLEANPPUFILES
)) $(addprefix $(LIBPREFIX
),$(subst $(PPUEXT
),$(STATICLIBEXT
),$(CLEANPPUFILES
))))
1152 override CLEANPPULINKFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(CLEANPPULINKFILES
))
1155 fpc_clean
: $(CLEANTARGET
)
1157 -$(DEL
) $(CLEANEXEFILES
)
1160 -$(DEL
) $(CLEANPPUFILES
)
1162 ifneq ($(CLEANPPULINKFILES
),)
1163 -$(DEL
) $(CLEANPPULINKFILES
)
1166 -$(DEL
) $(addprefix $(UNITTARGETDIRPREFIX
),$(CLEANRSTFILES
))
1168 ifdef EXTRACLEANFILES
1169 -$(DEL
) $(EXTRACLEANFILES
)
1172 -$(DEL
) $(LIBNAME
) $(LIBFULLNAME
)
1174 -$(DEL
) $(FPCMADE
) $(PPAS
) link.res
$(FPCEXTFILE
) $(REDIRFILE
)
1176 fpc_distclean
: fpc_clean
1178 # Also run clean first if targetdir is set. Unittargetdir is always
1179 # set if targetdir or unittargetdir is specified
1181 TARGETDIRCLEAN
=fpc_clean
1184 fpc_cleanall
: $(CLEANTARGET
) $(TARGETDIRCLEAN
)
1186 -$(DEL
) $(CLEANEXEFILES
)
1188 -$(DEL
) *$(OEXT
) *$(PPUEXT
) *$(RSTEXT
) *$(ASMEXT
) *$(STATICLIBEXT
) *$(SHAREDLIBEXT
) *$(PPLEXT
)
1189 -$(DELTREE
) *$(SMARTEXT
)
1190 -$(DEL
) $(FPCMADE
) $(PPAS
) link.res
$(FPCEXTFILE
) $(REDIRFILE
)
1192 #####################################################################
1194 #####################################################################
1196 .PHONY
: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
1199 fpc_info
: $(INFOTARGET
)
1203 @
$(ECHO
) == Configuration
info ==
1205 @
$(ECHO
) FPC.......
$(FPC
)
1206 @
$(ECHO
) Version...
$(FPC_VERSION
)
1207 @
$(ECHO
) CPU.......
$(CPU_TARGET
)
1208 @
$(ECHO
) Source....
$(OS_SOURCE
)
1209 @
$(ECHO
) Target....
$(OS_TARGET
)
1214 @
$(ECHO
) == Object
info ==
1216 @
$(ECHO
) LoaderObjects.....
$(LOADEROBJECTS
)
1217 @
$(ECHO
) UnitObjects.......
$(UNITOBJECTS
)
1218 @
$(ECHO
) ExeObjects........
$(EXEOBJECTS
)
1220 @
$(ECHO
) ExtraCleanUnits...
$(EXTRACLEANUNITS
)
1221 @
$(ECHO
) ExtraCleanFiles...
$(EXTRACLEANFILES
)
1223 @
$(ECHO
) ExtraInstallUnits.
$(EXTRAINSTALLUNITS
)
1224 @
$(ECHO
) ExtraInstallFiles.
$(EXTRAINSTALLFILES
)
1229 @
$(ECHO
) == Install
info ==
1232 @
$(ECHO
) DateStr..............
$(DATESTR
)
1235 @
$(ECHO
) PackagePrefix........
$(PACKAGEPREFIX
)
1238 @
$(ECHO
) PackageName..........
$(PACKAGENAME
)
1240 @
$(ECHO
) PackageSuffix........
$(PACKAGESUFFIX
)
1242 @
$(ECHO
) BaseInstallDir.......
$(BASEINSTALLDIR
)
1243 @
$(ECHO
) BinInstallDir........
$(BININSTALLDIR
)
1244 @
$(ECHO
) LibInstallDir........
$(LIBINSTALLDIR
)
1245 @
$(ECHO
) UnitInstallDir.......
$(UNITINSTALLDIR
)
1246 @
$(ECHO
) SourceInstallDir.....
$(SOURCEINSTALLDIR
)
1247 @
$(ECHO
) DocInstallDir........
$(DOCINSTALLDIR
)
1248 @
$(ECHO
) DataInstallDir.......
$(DATAINSTALLDIR
)
1250 @
$(ECHO
) DestZipDir...........
$(DESTZIPDIR
)
1251 @
$(ECHO
) ZipName..............
$(ZIPNAME
)
1254 #####################################################################
1256 #####################################################################
1258 ifneq ($(wildcard fpcmake.loc
),)
1262 #####################################################################
1264 #####################################################################
1266 vpath
%.pas
$(INC
) $(PROCINC
)
1267 vpath
%.pp
$(INC
) $(PROCINC
)
1274 $(AS
) -o
$*$(OEXT
) $*.
as
1278 # Base Units (System, strings, os-dependent-base-unit)
1281 $(SYSTEMPPU
) : sysos2.pas
$(SYSDEPS
)
1282 $(COMPILER
) -Us
-Sg sysos2.pas
$(REDIR
)
1284 objpas
$(PPUEXT
): $(OBJPASDIR
)/objpas.pp
$(INC
)/except.inc
$(SYSTEMPPU
)
1285 $(COMPILER
) -I
$(OBJPASDIR
) $(OBJPASDIR
)/objpas.pp
$(REDIR
)
1287 strings
$(PPUEXT
) : $(INC
)/strings.pp
$(INC
)/stringsi.inc \
1288 $(PROCINC
)/strings.inc
$(PROCINC
)/stringss.inc \
1292 # System Dependent Units
1295 ports
$(PPUEXT
) : ports.pas objpas
$(PPUEXT
) $(SYSTEMPPU
)
1297 doscalls
$(PPUEXT
) : doscalls.pas strings
$(PPUEXT
) objects
$(PPUEXT
) $(SYSTEMPPU
)
1299 kbdcalls
$(PPUEXT
) : kbdcalls.pas
$(SYSTEMPPU
)
1301 moucalls
$(PPUEXT
) : moucalls.pas
$(SYSTEMPPU
)
1303 moncalls
$(PPUEXT
) : moncalls.pas strings
$(PPUEXT
) $(SYSTEMPPU
)
1305 os2def
$(PPUEXT
) : os2def.pas
$(SYSTEMPPU
)
1307 pmwin
$(PPUEXT
) : pmwin.pas os2def
$(PPUEXT
) $(SYSTEMPPU
)
1309 pmbitmap
$(PPUEXT
) : pmbitmap.pas
$(SYSTEMPPU
)
1311 pmgpi
$(PPUEXT
) : pmgpi.pas pmbitmap
$(PPUEXT
) $(SYSTEMPPU
)
1313 dive
$(PPUEXT
) : dive.pas os2def
$(PPUEXT
) pmwin
$(PPUEXT
) $(SYSTEMPPU
)
1316 # TP7 Compatible RTL Units
1319 dos
$(PPUEXT
) : dos.pas
$(INC
)/filerec.inc
$(INC
)/textrec.inc strings
$(PPUEXT
) \
1320 doscalls
$(PPUEXT
) $(SYSTEMPPU
)
1322 crt
$(PPUEXT
) : crt.pas
$(INC
)/textrec.inc
$(SYSTEMPPU
)
1324 objects
$(PPUEXT
) : $(INC
)/objects.pp objinc.inc
$(SYSTEMPPU
)
1326 printer
$(PPUEXT
) : printer.pas
$(INC
)/textrec.inc
$(SYSTEMPPU
)
1328 #graph$(PPUEXT) : graph.pp
1331 # Delphi Compatible Units
1334 sysutils
$(PPUEXT
) : sysutils.pp
$(wildcard $(OBJPASDIR
)/*.inc
) \
1335 objpas
$(PPUEXT
) dos
$(PPUEXT
) doscalls
$(PPUEXT
)
1336 $(COMPILER
) -I
$(OBJPASDIR
) sysutils.pp
$(REDIR
)
1338 typinfo
$(PPUEXT
): $(OBJPASDIR
)/typinfo.pp objpas
$(PPUEXT
)
1339 $(COMPILER
) -Sg
$(OBJPASDIR
)/typinfo.pp
$(REDIR
)
1341 math
$(PPUEXT
): $(OBJPASDIR
)/math.pp objpas
$(PPUEXT
) sysutils
$(PPUEXT
)
1342 $(COMPILER
) $(OBJPASDIR
)/math.pp
$(REDIR
)
1345 # Other system-independent RTL Units
1348 ucomplex
$(PPUEXT
): $(INC
)/ucomplex.pp math
$(PPUEXT
) $(SYSTEMPPU
)
1350 cpu
$(PPUEXT
) : $(PROCINC
)/cpu.pp
$(SYSTEMPPU
)
1352 mmx
$(PPUEXT
) : $(PROCINC
)/mmx.pp cpu
$(PPUEXT
) $(SYSTEMPPU
)
1354 getopts
$(PPUEXT
) : $(INC
)/getopts.pp
$(SYSTEMPPU
)
1356 heaptrc
$(PPUEXT
) : $(INC
)/heaptrc.pp
$(SYSTEMPPU
)
1357 $(COMPILER
) -Sg
$(INC
)/heaptrc.pp
$(REDIR
)
1359 lineinfo
$(PPUEXT
) : $(INC
)/lineinfo.pp
$(SYSTEMPPU
)
1362 # Other system-dependent RTL Units