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
:=freebsd
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
134 # Use new graph unit ?
142 #####################################################################
144 #####################################################################
146 # Test FPCDIR to look if the RTL dir exists
148 override FPCDIR
:=$(subst \
,/,$(FPCDIR
))
149 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
150 ifeq ($(wildcard $(FPCDIR
)/units
),)
151 override FPCDIR
=wrong
155 override FPCDIR
=wrong
159 ifeq ($(FPCDIR
),wrong
)
161 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
162 ifeq ($(wildcard $(FPCDIR
)/units
),)
163 override FPCDIR
=wrong
169 ifeq ($(FPCDIR
),wrong
)
171 override FPCDIR
=/usr
/local
/lib
/fpc
/$(FPC_VERSION
)
172 ifeq ($(wildcard $(FPCDIR
)/units
),)
173 override FPCDIR
=/usr
/lib
/fpc
/$(FPC_VERSION
)
176 override FPCDIR
:=$(subst /$(FPC
),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC
),$(SEARCHPATH
))))))
177 override FPCDIR
:=$(FPCDIR
)/..
178 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
179 ifeq ($(wildcard $(FPCDIR
)/units
),)
180 override FPCDIR
:=$(FPCDIR
)/..
181 ifeq ($(wildcard $(FPCDIR
)/rtl
),)
182 ifeq ($(wildcard $(FPCDIR
)/units
),)
183 override FPCDIR
=c
:/pp
191 #####################################################################
193 #####################################################################
198 override LOADEROBJECTS
+=prt0 cprt0
199 override UNITOBJECTS
+=$(SYSTEMUNIT
) objpas strings linux initc dos crt objects printer sysutils typinfo math cpu mmx getopts heaptrc lineinfo errors sockets gpm ipc
200 override RSTOBJECTS
+=math
215 override NEEDINCDIR
=$(INC
) $(PROCINC
) $(UNIXINC
)
227 SHAREDLIBUNITOBJECTS
=$(SYSTEMUNIT
) objpas strings linux dos crt objects printer sysutils typinfo math cpu mmx getopts heaptrc errors sockets ipc
231 INFOTARGET
=fpc_infocfg fpc_infoobjects fpc_infoinstall
233 #####################################################################
235 #####################################################################
237 SYSTEMPPU
=$(addsuffix $(PPUEXT
),$(SYSTEMUNIT
))
239 # Get the system independent include file names.
240 # This will set the following variables :
242 include $(INC
)/makefile.inc
243 SYSINCDEPS
=$(addprefix $(INC
)/,$(SYSINCNAMES
))
245 # Get the processor dependent include file names.
246 # This will set the following variables :
248 include $(PROCINC
)/makefile.cpu
249 SYSCPUDEPS
=$(addprefix $(PROCINC
)/,$(CPUINCNAMES
))
251 # Put system unit dependencies together.
252 SYSDEPS
=$(SYSINCDEPS
) $(SYSCPUDEPS
)
254 #####################################################################
256 #####################################################################
260 ECHO
:=$(strip $(wildcard $(addsuffix /gecho
$(EXEEXT
),$(SEARCHPATH
))))
262 ECHO
:=$(strip $(wildcard $(addsuffix /echo
$(SRCEXEEXT
),$(SEARCHPATH
))))
267 ECHO
:=$(firstword $(ECHO
))
271 ECHO
:=$(firstword $(ECHO
))
291 # Check delete program
296 # Check deltree program
304 INSTALL
:=install -c
-m
644
310 # To install programs
313 INSTALLEXE
:=install -c
-m
755
319 # To make a directory.
322 MKDIR
:=install -m
755 -d
324 MKDIR
:=ginstall
-m
755 -d
328 export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
330 #####################################################################
332 #####################################################################
334 # assembler, redefine it if cross compiling
339 # linker, but probably not used
355 # ldconfig to rebuild .so cache
364 PPUMOVE
:=$(strip $(wildcard $(addsuffix /ppumove
$(SRCEXEEXT
),$(SEARCHPATH
))))
368 PPUMOVE
:=$(firstword $(PPUMOVE
))
375 PPUFILES
:=$(strip $(wildcard $(addsuffix /ppufiles
$(SRCEXEEXT
),$(SEARCHPATH
))))
379 PPUFILES
:=$(firstword $(PPUFILES
))
384 # Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
385 # upx uses that one itself (PFV)
387 ifeq ($(OS_TARGET
),go32v2
)
390 ifeq ($(OS_TARGET
),win32
)
394 UPXPROG
:=$(strip $(wildcard $(addsuffix /upx
$(SRCEXEEXT
),$(SEARCHPATH
))))
398 UPXPROG
:=$(firstword $(UPXPROG
))
406 # ZipProg, you can't use Zip as the var name (PFV)
408 ZIPPROG
:=$(strip $(wildcard $(addsuffix /zip
$(SRCEXEEXT
),$(SEARCHPATH
))))
412 ZIPPROG
:=$(firstword $(ZIPPROG
))
422 TARPROG
:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT
),$(SEARCHPATH
))))
426 TARPROG
:=$(firstword $(TARPROG
))
439 #####################################################################
441 #####################################################################
443 # Default needed extensions (Go32v2,Linux)
457 ifeq ($(OS_TARGET
),go32v1
)
468 ifeq ($(OS_TARGET
),go32v2
)
473 ifeq ($(OS_TARGET
),linux
)
480 ifeq ($(OS_TARGET
),freebsd
)
483 FPCMADE
=fpcmade.freebsd
487 ifeq ($(OS_TARGET
),win32
)
498 ifeq ($(OS_TARGET
),os2
)
510 ifeq ($(OS_TARGET
),go32v2
)
513 ifeq ($(OS_TARGET
),go32v1
)
517 # determine which .pas extension is used
520 override TESTPAS
:=$(strip $(wildcard $(addsuffix .pas
,$(firstword $(EXEOBJECTS
)))))
522 override TESTPAS
:=$(strip $(wildcard $(addsuffix .pas
,$(firstword $(UNITOBJECTS
)))))
533 #####################################################################
534 # Default Directories
535 #####################################################################
537 # Linux and freebsd use unix dirs with /usr/bin, /usr/lib
538 # When zipping use the target as default, when normal install then
539 # use the source os as default
542 ifeq ($(OS_TARGET
),linux
)
545 ifeq ($(OS_TARGET
),freebsd
)
550 ifeq ($(OS_SOURCE
),linux
)
553 ifeq ($(OS_SOURCE
),freebsd
)
558 # set the prefix directory where to install everything
559 ifndef PREFIXINSTALLDIR
561 PREFIXINSTALLDIR
=/usr
566 export PREFIXINSTALLDIR
568 # Where to place the resulting zip files
570 DESTZIPDIR
:=$(BASEDIR
)
574 #####################################################################
575 # Install Directories
576 #####################################################################
578 # set the base directory where to install everything
579 ifndef BASEINSTALLDIR
581 BASEINSTALLDIR
=$(PREFIXINSTALLDIR
)/lib
/fpc
/$(FPC_VERSION
)
583 BASEINSTALLDIR
=$(PREFIXINSTALLDIR
)
587 # set the directory where to install the binaries
590 BININSTALLDIR
=$(PREFIXINSTALLDIR
)/bin
592 BININSTALLDIR
=$(BASEINSTALLDIR
)/bin
/$(OS_TARGET
)
596 # set the directory where to install the units.
597 ifndef UNITINSTALLDIR
598 UNITINSTALLDIR
=$(BASEINSTALLDIR
)/units
/$(OS_TARGET
)
600 UNITINSTALLDIR
:=$(UNITINSTALLDIR
)/$(UNITSUBDIR
)
604 # Where to install shared libraries
607 LIBINSTALLDIR
=$(PREFIXINSTALLDIR
)/lib
609 LIBINSTALLDIR
=$(UNITINSTALLDIR
)
613 # Where the source files will be stored
614 ifndef SOURCEINSTALLDIR
616 SOURCEINSTALLDIR
=$(PREFIXINSTALLDIR
)/src
/fpc-
$(FPC_VERSION
)
618 SOURCEINSTALLDIR
=$(BASEINSTALLDIR
)/source
621 SOURCEINSTALLDIR
:=$(SOURCEINSTALLDIR
)/$(SOURCESUBDIR
)
625 # Where the doc files will be stored
628 DOCINSTALLDIR
=$(PREFIXINSTALLDIR
)/doc
/fpc-
$(FPC_VERSION
)
630 DOCINSTALLDIR
=$(BASEINSTALLDIR
)/doc
634 # Where to install the examples, under linux we use the doc dir
635 # because the copytree command will create a subdir itself
636 ifndef EXAMPLEINSTALLDIR
638 EXAMPLEINSTALLDIR
=$(DOCINSTALLDIR
)/examples
640 EXAMPLEINSTALLDIR
=$(BASEINSTALLDIR
)/examples
643 EXAMPLEINSTALLDIR
:=$(EXAMPLEINSTALLDIR
)/$(EXAMPLESUBDIR
)
647 # Where the some extra (data)files will be stored
648 ifndef DATAINSTALLDIR
649 DATAINSTALLDIR
=$(BASEINSTALLDIR
)
652 #####################################################################
654 #####################################################################
662 override FPC
=redir
-eo
$(FPC
)
664 # set the verbosity to max
666 override REDIR
:= >> $(REDIRFILE
)
670 #####################################################################
671 # Compiler Command Line
672 #####################################################################
674 # Load commandline OPTDEF and add FPC_CPU define
675 override FPCOPTDEF
:=-d
$(CPU_TARGET
)
677 # Load commandline OPT and add target and unit dir to be sure
678 ifneq ($(OS_TARGET
),$(OS_SOURCE
))
679 override FPCOPT
+=-T
$(OS_TARGET
)
682 # User dirs should be first, so they are looked at first
684 override FPCOPT
+=$(addprefix -Fu
,$(UNITDIR
))
687 override FPCOPT
+=$(addprefix -Fl
,$(LIBDIR
))
690 override FPCOPT
+=$(addprefix -Fo
,$(OBJDIR
))
693 override FPCOPT
+=$(addprefix -Fi
,$(INCDIR
))
701 # Smartlinking creation
708 override FPCOPT
+=-gl
-dDEBUG
711 # Release mode (strip, optimize and don't load ppc386.cfg)
712 # 0.99.12b has a bug in the optimizer so don't use it by default
714 ifeq ($(FPC_VERSION
),0.99.12)
715 override FPCOPT
+=-Xs
-OGp3
-n
717 override FPCOPT
+=-Xs
-OG2p3
-n
728 override FPCOPT
+=-OG2p3
731 # Verbose settings (warning,note,info)
733 override FPCOPT
+=-vwni
737 override FPCOPT
+=-Fu
$(UNITSDIR
)
741 override FPCOPT
+=$(addprefix -Fi
,$(NEEDINCDIR
))
745 # Target dirs and the prefix to use for clean/install
747 override FPCOPT
+=-FE
$(TARGETDIR
)
748 ifeq ($(TARGETDIR
),.
)
749 override TARGETDIRPREFIX
=
751 override TARGETDIRPREFIX
=$(TARGETDIR
)/
755 override FPCOPT
+=-FU
$(UNITTARGETDIR
)
756 ifeq ($(UNITTARGETDIR
),.
)
757 override UNITTARGETDIRPREFIX
=
759 override UNITTARGETDIRPREFIX
=$(TARGETDIR
)/
763 override UNITTARGETDIR
=$(TARGETDIR
)
764 override UNITTARGETDIRPREFIX
=$(TARGETDIRPREFIX
)
768 # Add commandline options last so they can override
770 override FPCOPT
+=$(OPT
)
773 # Add defines from FPCOPTDEF to FPCOPT
775 override FPCOPT
+=$(FPCOPTDEF
)
780 override FPCOPT
+=-Fr
$(ERRORFILE
)
783 # Was a config file specified ?
785 override FPCOPT
+=@
$(CFGFILE
)
788 # For win32 the options are passed using the environment FPCEXTCMD
789 ifeq ($(OS_SOURCE
),win32
)
790 override FPCEXTCMD
:=$(FPCOPT
)
791 override FPCOPT
:=!FPCEXTCMD
795 # Compiler commandline
796 override COMPILER
:=$(FPC
) $(FPCOPT
)
798 # also call ppas if with command option -s
799 # but only if the OS_SOURCE and OS_TARGE are equal
800 ifeq (,$(findstring -s
,$(COMPILER
)))
803 ifeq ($(OS_SOURCE
),$(OS_TARGET
))
808 #####################################################################
810 #####################################################################
820 showinstall
: fpc_showinstall
824 sourceinstall
: fpc_sourceinstall
826 exampleinstall
: fpc_exampleinstall
828 zipinstall
: fpc_zipinstall
830 zipsourceinstall
: fpc_zipsourceinstall
832 zipexampleinstall
: fpc_zipexampleinstall
836 distclean: fpc_distclean
838 cleanall
: fpc_cleanall
842 .PHONY
: all debug smart shared showinstall
install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall
clean distclean cleanall
info
844 #####################################################################
846 #####################################################################
850 %$(OEXT
): %$(LOADEREXT
)
851 $(AS
) -o
$*$(OEXT
) $<
853 override ALLTARGET
+=fpc_loaders
854 override CLEANTARGET
+=fpc_loaders_clean
855 override SHOWINSTALLTARGET
+=fpc_loaders_showinstall
856 override INSTALLTARGET
+=fpc_loaders_install
858 override LOADEROFILES
:=$(addsuffix $(OEXT
),$(LOADEROBJECTS
))
860 fpc_loaders
: $(LOADEROFILES
)
863 -$(DEL
) $(LOADEROFILES
)
865 fpc_loaders_showinstall
:
866 @
$(ECHO
) -e
$(addprefix "\n"$(UNITINSTALLDIR
)/,$(LOADEROFILES
))
869 $(MKDIR
) $(UNITINSTALLDIR
)
870 $(INSTALL
) $(LOADEROFILES
) $(UNITINSTALLDIR
)
872 #####################################################################
874 #####################################################################
878 override ALLTARGET
+=fpc_units
880 override UNITPPUFILES
=$(addsuffix $(PPUEXT
),$(UNITOBJECTS
))
881 override INSTALLPPUFILES
+=$(UNITPPUFILES
)
882 override CLEANPPUFILES
+=$(UNITPPUFILES
)
884 fpc_units
: $(UNITPPUFILES
)
886 #####################################################################
888 #####################################################################
891 override RSTFILES
=$(addsuffix $(RSTEXT
),$(RSTOBJECTS
))
893 override CLEANRSTFILES
+=$(RSTFILES
)
896 #####################################################################
897 # General compile rules
898 #####################################################################
900 .PHONY
: fpc_packages fpc_all fpc_debug
902 $(FPCMADE
): $(ALLTARGET
)
903 @
$(ECHO
) Compiled
> $(FPCMADE
)
905 fpc_packages
: $(COMPILEPACKAGES
)
907 fpc_all
: fpc_packages
$(FPCMADE
)
912 # Search paths for .ppu if targetdir is set
914 vpath
%$(PPUEXT
) $(UNITTARGETDIR
)
917 # General compile rules, available for both possible PASEXT
919 .SUFFIXES
: $(EXEEXT
) $(PPUEXT
) $(OEXT
) .pas .pp
922 $(COMPILER
) $< $(REDIR
)
926 $(COMPILER
) $< $(REDIR
)
930 $(COMPILER
) $< $(REDIR
)
934 $(COMPILER
) $< $(REDIR
)
937 #####################################################################
939 #####################################################################
941 .PHONY
: fpc_smart fpc_shared
944 LIBFULLNAME
=$(LIBNAME
).
$(LIBVERSION
)
946 LIBFULLNAME
=$(LIBNAME
)
949 # Default sharedlib units are all unit objects
950 ifndef SHAREDLIBUNITOBJECTS
951 SHAREDLIBUNITOBJECTS
:=$(UNITOBJECTS
)
955 $(MAKE
) all LINKSMART
=1 CREATESMART
=1
960 @
$(ECHO
) "LIBNAME not set"
962 $(PPUMOVE
) $(SHAREDLIBUNITOBJECTS
) -o
$(LIBFULLNAME
)
965 @
$(ECHO
) "Shared Libraries not supported"
968 #####################################################################
970 #####################################################################
972 .PHONY
: fpc_showinstall fpc_install
974 ifdef EXTRAINSTALLUNITS
975 override INSTALLPPUFILES
+=$(addsuffix $(PPUEXT
),$(EXTRAINSTALLUNITS
))
978 ifdef INSTALLPPUFILES
979 override INSTALLPPUFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(INSTALLPPUFILES
))
981 INSTALLPPULINKFILES
:=$(shell $(PPUFILES
) -S
-O
$(INSTALLPPUFILES
))
983 INSTALLPPULINKFILES
:=$(wildcard $(subst $(PPUEXT
),$(OEXT
),$(INSTALLPPUFILES
)) $(addprefix $(LIBPREFIX
),$(subst $(PPUEXT
),$(STATICLIBEXT
),$(INSTALLPPUFILES
))))
985 override INSTALLPPULINKFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(INSTALLPPULINKFILES
))
988 ifdef INSTALLEXEFILES
989 override INSTALLEXEFILES
:=$(addprefix $(TARGETDIRPREFIX
),$(INSTALLEXEFILES
))
992 fpc_showinstall
: $(SHOWINSTALLTARGET
)
993 ifdef INSTALLEXEFILES
994 @
$(ECHO
) -e
$(addprefix "\n"$(BININSTALLDIR
)/,$(INSTALLEXEFILES
))
996 ifdef INSTALLPPUFILES
997 @
$(ECHO
) -e
$(addprefix "\n"$(UNITINSTALLDIR
)/,$(INSTALLPPUFILES
))
998 ifneq ($(INSTALLPPULINKFILES
),)
999 @
$(ECHO
) -e
$(addprefix "\n"$(UNITINSTALLDIR
)/,$(INSTALLPPULINKFILES
))
1001 ifneq ($(wildcard $(LIBFULLNAME
)),)
1002 @
$(ECHO
) $(LIBINSTALLDIR
)/$(LIBFULLNAME
)
1004 @
$(ECHO
) $(LIBINSTALLDIR
)/$(LIBNAME
)
1008 ifdef EXTRAINSTALLFILES
1009 @
$(ECHO
) -e
$(addprefix "\n"$(DATAINSTALLDIR
)/,$(EXTRAINSTALLFILES
))
1012 fpc_install
: $(INSTALLTARGET
)
1013 # Create UnitInstallFiles
1014 ifdef INSTALLEXEFILES
1015 $(MKDIR
) $(BININSTALLDIR
)
1016 # Compress the exes if upx is defined
1018 -$(UPXPROG
) $(INSTALLEXEFILES
)
1020 $(INSTALLEXE
) $(INSTALLEXEFILES
) $(BININSTALLDIR
)
1022 ifdef INSTALLPPUFILES
1023 $(MKDIR
) $(UNITINSTALLDIR
)
1024 $(INSTALL
) $(INSTALLPPUFILES
) $(UNITINSTALLDIR
)
1025 ifneq ($(INSTALLPPULINKFILES
),)
1026 $(INSTALL
) $(INSTALLPPULINKFILES
) $(UNITINSTALLDIR
)
1028 ifneq ($(wildcard $(LIBFULLNAME
)),)
1029 $(MKDIR
) $(LIBINSTALLDIR
)
1030 $(INSTALL
) $(LIBFULLNAME
) $(LIBINSTALLDIR
)
1032 ln
-sf
$(LIBFULLNAME
) $(LIBINSTALLDIR
)/$(LIBNAME
)
1036 ifdef EXTRAINSTALLFILES
1037 $(MKDIR
) $(DATAINSTALLDIR
)
1038 $(INSTALL
) $(EXTRAINSTALLFILES
) $(DATAINSTALLDIR
)
1041 #####################################################################
1042 # SourceInstall rules
1043 #####################################################################
1045 .PHONY
: fpc_sourceinstall
1048 SOURCETOPDIR
=$(BASEDIR
)
1051 fpc_sourceinstall
: clean
1052 $(MKDIR
) $(SOURCEINSTALLDIR
)
1053 $(COPYTREE
) $(SOURCETOPDIR
) $(SOURCEINSTALLDIR
)
1055 #####################################################################
1056 # exampleinstall rules
1057 #####################################################################
1059 .PHONY
: fpc_exampleinstall
1061 fpc_exampleinstall
: $(addsuffix _clean
,$(EXAMPLEDIROBJECTS
))
1062 ifdef EXAMPLESOURCEFILES
1063 $(MKDIR
) $(EXAMPLEINSTALLDIR
)
1064 $(COPY
) $(EXAMPLESOURCEFILES
) $(EXAMPLEINSTALLDIR
)
1066 ifdef EXAMPLEDIROBJECTS
1067 ifndef EXAMPLESOURCEFILES
1068 $(MKDIR
) $(EXAMPLEINSTALLDIR
)
1070 $(COPYTREE
) $(addsuffix /*,$(EXAMPLEDIROBJECTS
)) $(EXAMPLEINSTALLDIR
)
1073 #####################################################################
1075 #####################################################################
1077 .PHONY
: fpc_zipinstall
1079 # Create suffix to add
1080 ifndef PACKAGESUFFIX
1081 PACKAGESUFFIX
=$(OS_TARGET
)
1082 ifeq ($(OS_TARGET
),go32v2
)
1085 ifeq ($(OS_TARGET
),win32
)
1088 ifeq ($(OS_TARGET
),os2
)
1093 # Temporary path to pack a file
1096 PACKDIR
=$(BASEDIR
)/pack_tmp
1098 PACKDIR
=/tmp
/fpc-pack
1102 # Maybe create default zipname from packagename
1105 ZIPNAME
=$(PACKAGEPREFIX
)$(PACKAGENAME
)$(PACKAGESUFFIX
)
1109 # Use tar by default under linux
1118 @
$(ECHO
) "Please specify ZIPNAME!"
1121 $(MAKE
) $(ZIPTARGET
) PREFIXINSTALLDIR
=$(PACKDIR
)
1123 $(DEL
) $(DESTZIPDIR
)/$(ZIPNAME
)$(TAREXT
)
1124 cd
$(PACKDIR
) ; $(TARPROG
) cf
$(TAROPT
) $(DESTZIPDIR
)/$(ZIPNAME
)$(TAREXT
) * ; cd
$(BASEDIR
)
1126 $(DEL
) $(DESTZIPDIR
)/$(ZIPNAME
)$(ZIPEXT
)
1127 cd
$(PACKDIR
) ; $(ZIPPROG
) -Dr
$(ZIPOPT
) $(DESTZIPDIR
)/$(ZIPNAME
)$(ZIPEXT
) * ; cd
$(BASEDIR
)
1129 $(DELTREE
) $(PACKDIR
)
1132 .PHONY
: fpc_zipsourceinstall
1134 fpc_zipsourceinstall
:
1135 $(MAKE
) fpc_zipinstall ZIPTARGET
=sourceinstall PACKAGESUFFIX
=src
1137 .PHONY
: fpc_zipexampleinstall
1139 fpc_zipexampleinstall
:
1140 $(MAKE
) fpc_zipinstall ZIPTARGET
=exampleinstall PACKAGESUFFIX
=exm
1142 #####################################################################
1144 #####################################################################
1146 .PHONY
: fpc_clean fpc_cleanall fpc_distclean
1149 override CLEANEXEFILES
:=$(addprefix $(TARGETDIRPREFIX
),$(CLEANEXEFILES
))
1152 ifdef EXTRACLEANUNITS
1153 override CLEANPPUFILES
+=$(addsuffix $(PPUEXT
),$(EXTRACLEANUNITS
))
1157 override CLEANPPUFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(CLEANPPUFILES
))
1158 # Get the .o and .a files created for the units
1160 CLEANPPULINKFILES
:=$(shell $(PPUFILES
) $(CLEANPPUFILES
))
1162 CLEANPPULINKFILES
:=$(wildcard $(subst $(PPUEXT
),$(OEXT
),$(CLEANPPUFILES
)) $(addprefix $(LIBPREFIX
),$(subst $(PPUEXT
),$(STATICLIBEXT
),$(CLEANPPUFILES
))))
1164 override CLEANPPULINKFILES
:=$(addprefix $(UNITTARGETDIRPREFIX
),$(CLEANPPULINKFILES
))
1167 fpc_clean
: $(CLEANTARGET
)
1169 -$(DEL
) $(CLEANEXEFILES
)
1172 -$(DEL
) $(CLEANPPUFILES
)
1174 ifneq ($(CLEANPPULINKFILES
),)
1175 -$(DEL
) $(CLEANPPULINKFILES
)
1178 -$(DEL
) $(addprefix $(UNITTARGETDIRPREFIX
),$(CLEANRSTFILES
))
1180 ifdef EXTRACLEANFILES
1181 -$(DEL
) $(EXTRACLEANFILES
)
1184 -$(DEL
) $(LIBNAME
) $(LIBFULLNAME
)
1186 -$(DEL
) $(FPCMADE
) $(PPAS
) link.res
$(FPCEXTFILE
) $(REDIRFILE
)
1188 fpc_distclean
: fpc_clean
1190 # Also run clean first if targetdir is set. Unittargetdir is always
1191 # set if targetdir or unittargetdir is specified
1193 TARGETDIRCLEAN
=fpc_clean
1196 fpc_cleanall
: $(CLEANTARGET
) $(TARGETDIRCLEAN
)
1198 -$(DEL
) $(CLEANEXEFILES
)
1200 -$(DEL
) *$(OEXT
) *$(PPUEXT
) *$(RSTEXT
) *$(ASMEXT
) *$(STATICLIBEXT
) *$(SHAREDLIBEXT
) *$(PPLEXT
)
1201 -$(DELTREE
) *$(SMARTEXT
)
1202 -$(DEL
) $(FPCMADE
) $(PPAS
) link.res
$(FPCEXTFILE
) $(REDIRFILE
)
1204 #####################################################################
1206 #####################################################################
1208 .PHONY
: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
1211 fpc_info
: $(INFOTARGET
)
1215 @
$(ECHO
) == Configuration
info ==
1217 @
$(ECHO
) FPC.......
$(FPC
)
1218 @
$(ECHO
) Version...
$(FPC_VERSION
)
1219 @
$(ECHO
) CPU.......
$(CPU_TARGET
)
1220 @
$(ECHO
) Source....
$(OS_SOURCE
)
1221 @
$(ECHO
) Target....
$(OS_TARGET
)
1226 @
$(ECHO
) == Object
info ==
1228 @
$(ECHO
) LoaderObjects.....
$(LOADEROBJECTS
)
1229 @
$(ECHO
) UnitObjects.......
$(UNITOBJECTS
)
1230 @
$(ECHO
) ExeObjects........
$(EXEOBJECTS
)
1232 @
$(ECHO
) ExtraCleanUnits...
$(EXTRACLEANUNITS
)
1233 @
$(ECHO
) ExtraCleanFiles...
$(EXTRACLEANFILES
)
1235 @
$(ECHO
) ExtraInstallUnits.
$(EXTRAINSTALLUNITS
)
1236 @
$(ECHO
) ExtraInstallFiles.
$(EXTRAINSTALLFILES
)
1241 @
$(ECHO
) == Install
info ==
1244 @
$(ECHO
) DateStr..............
$(DATESTR
)
1247 @
$(ECHO
) PackagePrefix........
$(PACKAGEPREFIX
)
1250 @
$(ECHO
) PackageName..........
$(PACKAGENAME
)
1252 @
$(ECHO
) PackageSuffix........
$(PACKAGESUFFIX
)
1254 @
$(ECHO
) BaseInstallDir.......
$(BASEINSTALLDIR
)
1255 @
$(ECHO
) BinInstallDir........
$(BININSTALLDIR
)
1256 @
$(ECHO
) LibInstallDir........
$(LIBINSTALLDIR
)
1257 @
$(ECHO
) UnitInstallDir.......
$(UNITINSTALLDIR
)
1258 @
$(ECHO
) SourceInstallDir.....
$(SOURCEINSTALLDIR
)
1259 @
$(ECHO
) DocInstallDir........
$(DOCINSTALLDIR
)
1260 @
$(ECHO
) DataInstallDir.......
$(DATAINSTALLDIR
)
1262 @
$(ECHO
) DestZipDir...........
$(DESTZIPDIR
)
1263 @
$(ECHO
) ZipName..............
$(ZIPNAME
)
1266 #####################################################################
1268 #####################################################################
1270 ifneq ($(wildcard fpcmake.loc
),)
1274 #####################################################################
1276 #####################################################################
1278 vpath
%$(PASEXT
) $(INC
) $(PROCINC
) $(UNIXINC
)
1284 prt0
$(OEXT
) : $(CPU_TARGET
)/prt0.
as
1285 $(AS
) -o prt0
$(OEXT
) $(CPU_TARGET
)/prt0.
as
1287 cprt0
$(OEXT
) : $(CPU_TARGET
)/cprt0.
as
1288 $(AS
) -o cprt0
$(OEXT
) $(CPU_TARGET
)/cprt0.
as
1294 # System Units (System, Objpas, Strings)
1297 $(SYSTEMPPU
) : sysbsd.pp sysconst.inc systypes.inc syscalls.inc
$(SYSDEPS
)
1298 $(COMPILER
) -Us
-Sg sysbsd.pp
$(REDIR
)
1300 objpas
$(PPUEXT
): $(OBJPASDIR
)/objpas.pp
$(INC
)/except.inc
$(SYSTEMPPU
)
1301 $(COMPILER
) -I
$(OBJPASDIR
) $(OBJPASDIR
)/objpas.pp
$(REDIR
)
1303 strings
$(PPUEXT
) : $(INC
)/strings.pp
$(INC
)/stringsi.inc\
1304 $(PROCINC
)/strings.inc
$(PROCINC
)/stringss.inc\
1308 # System Dependent Units
1311 linux
$(PPUEXT
) : $(UNIXINC
)/linux.pp strings
$(PPUEXT
) $(INC
)/textrec.inc
$(INC
)/filerec.inc \
1312 syscalls.inc systypes.inc sysconst.inc
$(UNIXINC
)/timezone.inc
$(SYSTEMPPU
) \
1313 $(UNIXINC
)/linsysca.inc
1317 # TP7 Compatible RTL Units
1320 dos
$(PPUEXT
) : $(UNIXINC
)/dos.pp
$(INC
)/filerec.inc
$(INC
)/textrec.inc strings
$(PPUEXT
) \
1321 linux
$(PPUEXT
) $(SYSTEMPPU
)
1323 crt
$(PPUEXT
) : $(UNIXINC
)/crt.pp
$(INC
)/textrec.inc linux
$(PPUEXT
) $(SYSTEMPPU
)
1325 objects
$(PPUEXT
) : $(INC
)/objects.pp
$(UNIXINC
)/objinc.inc
$(SYSTEMPPU
)
1327 printer
$(PPUEXT
) : $(UNIXINC
)/printer.pp
$(INC
)/textrec.inc linux
$(PPUEXT
) $(SYSTEMPPU
)
1334 # Delphi Compatible Units
1337 sysutils
$(PPUEXT
) : $(UNIXINC
)/sysutils.pp
$(wildcard $(OBJPASDIR
)/*.inc
) \
1338 objpas
$(PPUEXT
) linux
$(PPUEXT
) errors
$(PPUEXT
)
1339 $(COMPILER
) -I
$(OBJPASDIR
) $(UNIXINC
)/sysutils.pp
$(REDIR
)
1341 typinfo
$(PPUEXT
): $(OBJPASDIR
)/typinfo.pp objpas
$(PPUEXT
)
1342 $(COMPILER
) -Sg
$(OBJPASDIR
)/typinfo.pp
$(REDIR
)
1344 math
$(PPUEXT
): $(OBJPASDIR
)/math.pp objpas
$(PPUEXT
) sysutils
$(PPUEXT
)
1345 $(COMPILER
) $(OBJPASDIR
)/math.pp
$(REDIR
)
1347 gettext
$(PPUEXT
): $(OBJPASDIR
)/gettext.pp objpas
$(PPUEXT
) sysutils
$(PPUEXT
)
1348 $(COMPILER
) $(OBJPASDIR
)/gettext.pp
$(REDIR
)
1351 # Other system-independent RTL Units
1354 cpu
$(PPUEXT
) : $(PROCINC
)/cpu.pp
$(SYSTEMPPU
)
1356 mmx
$(PPUEXT
) : $(PROCINC
)/mmx.pp cpu
$(PPUEXT
) $(SYSTEMPPU
)
1358 getopts
$(PPUEXT
) : $(INC
)/getopts.pp
$(SYSTEMPPU
)
1360 heaptrc
$(PPUEXT
) : $(INC
)/heaptrc.pp
$(SYSTEMPPU
)
1361 $(COMPILER
) -Sg
$(INC
)/heaptrc.pp
$(REDIR
)
1363 lineinfo
$(PPUEXT
) : $(INC
)/lineinfo.pp
$(SYSTEMPPU
)
1366 # Other system-dependent RTL Units
1369 sockets
$(PPUEXT
) : $(UNIXINC
)/sockets.pp
$(INC
)/textrec.inc
$(INC
)/filerec.inc \
1370 linux
$(PPUEXT
) $(SYSTEMPPU
)
1372 errors
$(PPUEXT
) : $(UNIXINC
)/errors.pp strings
$(PPUEXT
) $(SYSTEMPPU
)
1374 ipc
$(PPUEXT
) : $(UNIXINC
)/ipc.pp linux
$(PPUEXT
) $(SYSTEMPPU
)