diff --git a/install/demo/os2/Makefile b/install/demo/os2/Makefile index ec2463cc53..0f264d78c7 100644 --- a/install/demo/os2/Makefile +++ b/install/demo/os2/Makefile @@ -1,30 +1,38 @@ # -# Don't edit, this file is generated by fpcmake v1.99.0 [2001/02/24] +# Makefile generated by fpcmake v1.00 [2001/02/26] # -default: all + +defaultrule: all + +##################################################################### +# Autodetect OS (Linux or Dos or Windows NT or OS/2) +# define inUnix when running under Unix (Linux,FreeBSD) +# define inWinNT when running under WinNT +# define inOS2 when running under OS/2 +##################################################################### + +# We need only / in the path override PATH:=$(subst \,/,$(PATH)) -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH=$(subst :, ,$(PATH)) -else -SEARCHPATH=$(subst ;, ,$(PATH)) -endif -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) + +# Search for PWD and determine also if we are under linux +PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH))))) ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) +PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH))))) ifeq ($(PWD),) nopwd: @echo You need the GNU utils package to use this Makefile! @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip @exit else +inUnix=1 PWD:=$(firstword $(PWD)) -SRCEXEEXT= endif else PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe endif + +# Detect NT - NT sets OS to Windows_NT +# Detect OS/2 - OS/2 has OS2_SHELL defined ifndef inUnix ifeq ($(OS),Windows_NT) inWinNT=1 @@ -33,11 +41,16 @@ ifdef OS2_SHELL inOS2=1 endif endif +endif + +# The extension of executables +ifdef inUnix +SRCEXEEXT= else -ifneq ($(findstring cygwin,$(MACH_TYPE)),) -inCygWin=1 -endif +SRCEXEEXT=.exe endif + +# The extension of batch files / scripts ifdef inUnix BATCHEXT=.sh else @@ -47,17 +60,36 @@ else BATCHEXT=.bat endif endif + +# Path Separator, the subst trick is necessary for the \ that can't exists +# at the end of a line ifdef inUnix PATHSEP=/ else PATHSEP=$(subst /,\,/) endif + +# The path which is searched separated by spaces +ifdef inUnix +SEARCHPATH=$(subst :, ,$(PATH)) +else +SEARCHPATH=$(subst ;, ,$(PATH)) +endif + +# Base dir ifdef PWD BASEDIR:=$(shell $(PWD)) else BASEDIR=. endif + +##################################################################### +# FPC version/target Detection +##################################################################### + +# What compiler to use ? ifndef FPC +# Compatibility with old makefiles ifdef PP FPC=$(PP) else @@ -66,30 +98,61 @@ endif endif override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) + +# Target OS ifndef OS_TARGET OS_TARGET:=$(shell $(FPC) -iTO) endif + +# Source OS ifndef OS_SOURCE OS_SOURCE:=$(shell $(FPC) -iSO) endif + +# Target CPU ifndef CPU_TARGET CPU_TARGET:=$(shell $(FPC) -iTP) endif + +# Source CPU ifndef CPU_SOURCE CPU_SOURCE:=$(shell $(FPC) -iSP) endif + +# FPC version ifndef FPC_VERSION FPC_VERSION:=$(shell $(FPC) -iV) endif + export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION + +##################################################################### +# FPCDIR Setting +##################################################################### + +# Test FPCDIR to look if the RTL dir exists ifdef FPCDIR override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) +ifeq ($(wildcard $(FPCDIR)/rtl),) +ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR=wrong endif +endif else override FPCDIR=wrong endif + +# Default FPCDIR +ifeq ($(FPCDIR),wrong) +override FPCDIR=../.. +ifeq ($(wildcard $(FPCDIR)/rtl),) +ifeq ($(wildcard $(FPCDIR)/units),) +override FPCDIR=wrong +endif +endif +endif + +# Detect FPCDIR ifeq ($(FPCDIR),wrong) ifdef inUnix override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) @@ -99,47 +162,120 @@ endif else override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) +ifeq ($(wildcard $(FPCDIR)/rtl),) +ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) +ifeq ($(wildcard $(FPCDIR)/rtl),) +ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR=c:/pp endif endif endif endif -UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages) -ifeq ($(OS_TARGET),os2) -override TARGET_PROGRAMS+=basicpm pmdemo1 getctry endif +endif + +ifndef PACKAGESDIR +PACKAGESDIR=$(FPCDIR)/packages +endif +ifndef TOOLKITSDIR +TOOLKITSDIR= +endif +ifndef COMPONENTSDIR +COMPONENTSDIR= +endif + +# Create units dir +ifneq ($(FPCDIR),.) +UNITSDIR=$(FPCDIR)/units/$(OS_TARGET) +endif + +##################################################################### +# User Settings +##################################################################### + + +# Targets + +ifeq ($(OS_TARGET),os2) +override EXEOBJECTS+=basicpm pmdemo1 getctry +endif + +# Clean + + +# Install + +ZIPTARGET=install + +# Defaults + + +# Directories + +ifndef TARGETDIR +TARGETDIR=. +endif + +# Packages + +override PACKAGES+=rtl + +# Libraries + + +# Info + +INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall + +##################################################################### +# Shell tools +##################################################################### + +# echo ifndef ECHO ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH)))) ifeq ($(ECHO),) ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) ifeq ($(ECHO),) ECHO:=echo +ECHOE:=echo else ECHO:=$(firstword $(ECHO)) +ECHOE=$(ECHO) -E endif else ECHO:=$(firstword $(ECHO)) +ECHOE=$(ECHO) -E endif endif + +# To copy pograms ifndef COPY COPY:=cp -fp endif + +# Copy a whole tree ifndef COPYTREE COPYTREE:=cp -rfp endif + +# To move pograms ifndef MOVE MOVE:=mv -f endif + +# Check delete program ifndef DEL DEL:=rm -f endif + +# Check deltree program ifndef DELTREE DELTREE:=rm -rf endif + +# To install files ifndef INSTALL ifdef inUnix INSTALL:=install -c -m 644 @@ -147,6 +283,8 @@ else INSTALL:=$(COPY) endif endif + +# To install programs ifndef INSTALLEXE ifdef inUnix INSTALLEXE:=install -c -m 755 @@ -154,6 +292,8 @@ else INSTALLEXE:=$(COPY) endif endif + +# To make a directory. ifndef MKDIR ifdef inUnix MKDIR:=install -m 755 -d @@ -161,19 +301,39 @@ else MKDIR:=ginstall -m 755 -d endif endif -export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR + +export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR + +##################################################################### +# Default Tools +##################################################################### + +# assembler, redefine it if cross compiling ifndef AS AS=as endif + +# linker, but probably not used ifndef LD LD=ld endif + +# Resource compiler +ifndef RC +RC=rc +endif + +# ppas.bat / ppas.sh PPAS=ppas$(BATCHEXT) + +# ldconfig to rebuild .so cache ifdef inUnix LDCONFIG=ldconfig else LDCONFIG= endif + +# ppumove ifndef PPUMOVE PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) ifeq ($(PPUMOVE),) @@ -183,6 +343,8 @@ PPUMOVE:=$(firstword $(PPUMOVE)) endif endif export PPUMOVE + +# ppufiles ifndef PPUFILES PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH)))) ifeq ($(PPUFILES),) @@ -192,25 +354,9 @@ PPUFILES:=$(firstword $(PPUFILES)) endif endif export PPUFILES -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH)))) -ifeq ($(DATE),) -DATE= -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif + +# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase +# upx uses that one itself (PFV) ifndef UPXPROG ifeq ($(OS_TARGET),go32v2) UPXPROG:=1 @@ -230,6 +376,8 @@ UPXPROG= endif endif export UPXPROG + +# ZipProg, you can't use Zip as the var name (PFV) ifndef ZIPPROG ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) ifeq ($(ZIPPROG),) @@ -239,8 +387,11 @@ ZIPPROG:=$(firstword $(ZIPPROG)) endif endif export ZIPPROG + ZIPOPT=-9 ZIPEXT=.zip + +# Tar ifndef TARPROG TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) ifeq ($(TARPROG),) @@ -250,6 +401,7 @@ TARPROG:=$(firstword $(TARPROG)) endif endif export TARPROG + ifeq ($(USETAR),bz2) TAROPT=vI TAREXT=.tar.bz2 @@ -257,6 +409,12 @@ else TAROPT=vz TAREXT=.tar.gz endif + +##################################################################### +# Default extensions +##################################################################### + +# Default needed extensions (Go32v2,Linux) LOADEREXT=.as EXEEXT=.exe PPLEXT=.ppl @@ -266,9 +424,10 @@ ASMEXT=.s SMARTEXT=.sl STATICLIBEXT=.a SHAREDLIBEXT=.so -LIBPREFIX=lib RSTEXT=.rst FPCMADE=fpcmade + +# Go32v1 ifeq ($(OS_TARGET),go32v1) PPUEXT=.pp1 OEXT=.o1 @@ -276,27 +435,29 @@ ASMEXT=.s1 SMARTEXT=.sl1 STATICLIBEXT=.a1 SHAREDLIBEXT=.so1 -LIBPREFIX= FPCMADE=fpcmade.v1 -PACKAGESUFFIX=v1 endif + +# Go32v2 ifeq ($(OS_TARGET),go32v2) -LIBPREFIX= FPCMADE=fpcmade.dos -ZIPSUFFIX=go32 endif + +# Linux ifeq ($(OS_TARGET),linux) EXEEXT= HASSHAREDLIB=1 FPCMADE=fpcmade.lnx -ZIPSUFFIX=linux endif + +# Linux ifeq ($(OS_TARGET),freebsd) EXEEXT= HASSHAREDLIB=1 FPCMADE=fpcmade.freebsd -ZIPSUFFIX=freebsd endif + +# Win32 ifeq ($(OS_TARGET),win32) PPUEXT=.ppw OEXT=.ow @@ -305,26 +466,102 @@ SMARTEXT=.slw STATICLIBEXT=.aw SHAREDLIBEXT=.dll FPCMADE=fpcmade.w32 -ZIPSUFFIX=w32 endif + +# OS/2 ifeq ($(OS_TARGET),os2) PPUEXT=.ppo ASMEXT=.so2 OEXT=.oo2 -AOUTEXT=.out SMARTEXT=.so STATICLIBEXT=.ao2 SHAREDLIBEXT=.dll FPCMADE=fpcmade.os2 -ZIPSUFFIX=emx endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) + +# library prefix +LIBPREFIX=lib +ifeq ($(OS_TARGET),go32v2) +LIBPREFIX= endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) +ifeq ($(OS_TARGET),go32v1) +LIBPREFIX= endif -ifdef ZIPINSTALL + +# determine which .pas extension is used +ifndef PASEXT +ifdef EXEOBJECTS +override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS))))) +else +override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS))))) +endif +ifeq ($(TESTPAS),) +PASEXT=.pp +else +PASEXT=.pas +endif +endif + + +# Check if the dirs really exists, else turn it off +ifeq ($(wildcard $(UNITSDIR)),) +UNITSDIR= +endif +ifeq ($(wildcard $(TOOLKITSDIR)),) +TOOLKITSDIR= +endif +ifeq ($(wildcard $(PACKAGESDIR)),) +PACKAGESDIR= +endif +ifeq ($(wildcard $(COMPONENTSDIR)),) +COMPONENTSDIR= +endif + + +# PACKAGESDIR packages + +PACKAGERTL=1 + +ifdef PACKAGERTL +ifneq ($(wildcard $(FPCDIR)/rtl),) +ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),) +PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET) +else +PACKAGEDIR_RTL=$(FPCDIR)/rtl +endif +ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),) +override COMPILEPACKAGES+=package_rtl +package_rtl: + $(MAKE) -C $(PACKAGEDIR_RTL) all +endif +UNITDIR_RTL=$(PACKAGEDIR_RTL) +else +PACKAGEDIR_RTL= +ifneq ($(wildcard $(UNITSDIR)/rtl),) +ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),) +UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET) +else +UNITDIR_RTL=$(UNITSDIR)/rtl +endif +else +UNITDIR_RTL= +endif +endif +ifdef UNITDIR_RTL +override NEEDUNITDIR+=$(UNITDIR_RTL) +endif +endif + + +##################################################################### +# Default Directories +##################################################################### + +# Linux and freebsd use unix dirs with /usr/bin, /usr/lib +# When zipping use the target as default, when normal install then +# use the source os as default +ifdef ZIPNAME +# Zipinstall ifeq ($(OS_TARGET),linux) UNIXINSTALLDIR=1 endif @@ -332,6 +569,7 @@ ifeq ($(OS_TARGET),freebsd) UNIXINSTALLDIR=1 endif else +# Normal install ifeq ($(OS_SOURCE),linux) UNIXINSTALLDIR=1 endif @@ -339,122 +577,132 @@ ifeq ($(OS_SOURCE),freebsd) UNIXINSTALLDIR=1 endif endif -ifndef INSTALL_PREFIX + +# set the prefix directory where to install everything +ifndef PREFIXINSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_PREFIX=/usr/local +PREFIXINSTALLDIR=/usr else -INSTALL_PREFIX=/pp +PREFIXINSTALLDIR=/pp endif endif -export INSTALL_PREFIX -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) +export PREFIXINSTALLDIR + +# Where to place the resulting zip files +ifndef DESTZIPDIR +DESTZIPDIR:=$(BASEDIR) endif -export DIST_DESTDIR -ifndef INSTALL_BASEDIR +export DESTZIPDIR + +##################################################################### +# Install Directories +##################################################################### + +# set the base directory where to install everything +ifndef BASEINSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) +BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION) else -INSTALL_BASEDIR=$(INSTALL_PREFIX) +BASEINSTALLDIR=$(PREFIXINSTALLDIR) endif endif -ifndef INSTALL_BINDIR + +# set the directory where to install the binaries +ifndef BININSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_BINDIR=$(INSTALL_PREFIX)/bin +BININSTALLDIR=$(PREFIXINSTALLDIR)/bin else -INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET) +BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET) endif endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET) -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) + +# set the directory where to install the units. +ifndef UNITINSTALLDIR +UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET) +ifdef UNITSUBDIR +UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR) endif endif -ifndef INSTALL_LIBDIR + +# Where to install shared libraries +ifndef LIBINSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib +LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib else -INSTALL_LIBDIR=$(INSTALL_UNITDIR) +LIBINSTALLDIR=$(UNITINSTALLDIR) endif endif -ifndef INSTALL_SOURCEDIR + +# Where the source files will be stored +ifndef SOURCEINSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION) +SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION) else -INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source +SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source endif -ifdef PACKAGE_NAME -INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME) +ifdef SOURCESUBDIR +SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR) endif endif -ifndef INSTALL_DOCDIR + +# Where the doc files will be stored +ifndef DOCINSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION) +DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION) else -INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc +DOCINSTALLDIR=$(BASEINSTALLDIR)/doc endif endif -ifndef INSTALL_EXAMPLEDIR + +# Where to install the examples, under linux we use the doc dir +# because the copytree command will create a subdir itself +ifndef EXAMPLEINSTALLDIR ifdef UNIXINSTALLDIR -INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples +EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples else -INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples +EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples endif ifdef EXAMPLESUBDIR -INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR) +EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR) endif endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) + +# Where the some extra (data)files will be stored +ifndef DATAINSTALLDIR +DATAINSTALLDIR=$(BASEINSTALLDIR) endif -ifeq ($(OS_TARGET),linux) -REQUIRE_PACKAGES_RTL=1 + +##################################################################### +# Redirection +##################################################################### + +ifndef REDIRFILE +REDIRFILE=log endif -ifeq ($(OS_TARGET),go32v2) -REQUIRE_PACKAGES_RTL=1 + +ifdef REDIR +ifndef inUnix +override FPC=redir -eo $(FPC) endif -ifeq ($(OS_TARGET),win32) -REQUIRE_PACKAGES_RTL=1 +# set the verbosity to max +override FPCOPT+=-va +override REDIR:= >> $(REDIRFILE) endif -ifeq ($(OS_TARGET),os2) -REQUIRE_PACKAGES_RTL=1 -endif -ifeq ($(OS_TARGET),freebsd) -REQUIRE_PACKAGES_RTL=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))) -ifneq ($(PACKAGEDIR_RTL),) -PACKAGEDIR_RTL:=$(firstword $(PACKAGEDIR_RTL)) -ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),) -override COMPILEPACKAGES+=package_rtl -package_rtl: - $(MAKE) -C $(PACKAGEDIR_RTL) all -endif -ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -endif -.PHONY: package_rtl -override FPCOPTDEF=$(CPU_TARGET) + + +##################################################################### +# Compiler Command Line +##################################################################### + +# Load commandline OPTDEF and add FPC_CPU define +override FPCOPTDEF:=-d$(CPU_TARGET) + +# Load commandline OPT and add target and unit dir to be sure ifneq ($(OS_TARGET),$(OS_SOURCE)) override FPCOPT+=-T$(OS_TARGET) endif + +# User dirs should be first, so they are looked at first ifdef UNITDIR override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) endif @@ -467,80 +715,110 @@ endif ifdef INCDIR override FPCOPT+=$(addprefix -Fi,$(INCDIR)) endif + +# Smartlinking ifdef LINKSMART override FPCOPT+=-XX endif + +# Smartlinking creation ifdef CREATESMART override FPCOPT+=-CX endif + +# Debug ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG +override FPCOPT+=-gl -dDEBUG endif + +# Release mode (strip, optimize and don't load ppc386.cfg) +# 0.99.12b has a bug in the optimizer so don't use it by default ifdef RELEASE +ifeq ($(FPC_VERSION),0.99.12) +override FPCOPT+=-Xs -OGp3 -n +else override FPCOPT+=-Xs -OG2p3 -n -override FPCOPTDEF+=RELEASE endif +endif + +# Strip ifdef STRIP override FPCOPT+=-Xs endif + +# Optimizer ifdef OPTIMIZE override FPCOPT+=-OG2p3 endif + +# Verbose settings (warning,note,info) ifdef VERBOSE override FPCOPT+=-vwni endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) + +ifdef NEEDUNITDIR +override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR)) endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) + +ifdef UNITSDIR +override FPCOPT+=-Fu$(UNITSDIR) endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) + +# Target dirs and the prefix to use for clean/install +ifdef TARGETDIR +override FPCOPT+=-FE$(TARGETDIR) +ifeq ($(TARGETDIR),.) override TARGETDIRPREFIX= else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ +override TARGETDIRPREFIX=$(TARGETDIR)/ endif endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) +ifdef UNITTARGETDIR +override FPCOPT+=-FU$(UNITTARGETDIR) +ifeq ($(UNITTARGETDIR),.) override UNITTARGETDIRPREFIX= else -override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ +override UNITTARGETDIRPREFIX=$(TARGETDIR)/ endif else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) +ifdef TARGETDIR +override UNITTARGETDIR=$(TARGETDIR) override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) endif endif + +# Add commandline options last so they can override ifdef OPT override FPCOPT+=$(OPT) endif + +# Add defines from FPCOPTDEF to FPCOPT ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) +override FPCOPT+=$(FPCOPTDEF) endif + +# Error file ? +ifdef ERRORFILE +override FPCOPT+=-Fr$(ERRORFILE) +endif + +# Was a config file specified ? ifdef CFGFILE override FPCOPT+=@$(CFGFILE) endif + +# For win32 the options are passed using the environment FPCEXTCMD ifeq ($(OS_SOURCE),win32) override FPCEXTCMD:=$(FPCOPT) override FPCOPT:=!FPCEXTCMD export FPCEXTCMD endif + +# Compiler commandline override COMPILER:=$(FPC) $(FPCOPT) + +# also call ppas if with command option -s +# but only if the OS_SOURCE and OS_TARGE are equal ifeq (,$(findstring -s ,$(COMPILER))) EXECPPAS= else @@ -548,47 +826,143 @@ ifeq ($(OS_SOURCE),$(OS_TARGET)) EXECPPAS:=@$(PPAS) endif endif + +##################################################################### +# Standard rules +##################################################################### + +all: fpc_all + +debug: fpc_debug + +smart: fpc_smart + +shared: fpc_shared + +showinstall: fpc_showinstall + +install: fpc_install + +sourceinstall: fpc_sourceinstall + +exampleinstall: fpc_exampleinstall + +zipinstall: fpc_zipinstall + +zipsourceinstall: fpc_zipsourceinstall + +zipexampleinstall: fpc_zipexampleinstall + +clean: fpc_clean + +distclean: fpc_distclean + +cleanall: fpc_cleanall + +info: fpc_info + +.PHONY: all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall info + +##################################################################### +# Exes +##################################################################### + .PHONY: fpc_exes -ifdef TARGET_PROGRAMS -override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS)) -override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(LIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) + +ifdef EXEOBJECTS +override EXEFILES=$(addsuffix $(EXEEXT),$(EXEOBJECTS)) +override EXEOFILES:=$(addsuffix $(OEXT),$(EXEOBJECTS)) $(addprefix $(LIBPREFIX),$(addsuffix $(STATICLIBEXT),$(EXEOBJECTS))) + override ALLTARGET+=fpc_exes override INSTALLEXEFILES+=$(EXEFILES) override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES) -ifeq ($(OS_TARGET),os2) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS)) -endif + endif + fpc_exes: $(EXEFILES) -.PHONY: fpc_packages fpc_all fpc_smart fpc_debug + +##################################################################### +# General compile rules +##################################################################### + +.PHONY: fpc_packages fpc_all fpc_debug + $(FPCMADE): $(ALLTARGET) @$(ECHO) Compiled > $(FPCMADE) + fpc_packages: $(COMPILEPACKAGES) + fpc_all: fpc_packages $(FPCMADE) -fpc_smart: - $(MAKE) all LINKSMART=1 CREATESMART=1 + fpc_debug: $(MAKE) all DEBUG=1 -.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp -%$(PPUEXT): %.pp - $(COMPILER) $< - $(EXECPPAS) -%$(PPUEXT): %.pas - $(COMPILER) $< - $(EXECPPAS) -%$(EXEEXT): %.pp - $(COMPILER) $< - $(EXECPPAS) -%$(EXEEXT): %.pas - $(COMPILER) $< - $(EXECPPAS) -vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) -vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) -vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR) -.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall -ifdef INSTALL_UNITS -override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS)) + +# Search paths for .ppu if targetdir is set +ifdef UNITTARGETDIR +vpath %$(PPUEXT) $(UNITTARGETDIR) endif + +# General compile rules, available for both possible PASEXT + +.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp + +%$(PPUEXT): %.pp + $(COMPILER) $< $(REDIR) + $(EXECPPAS) + +%$(PPUEXT): %.pas + $(COMPILER) $< $(REDIR) + $(EXECPPAS) + +%$(EXEEXT): %.pp + $(COMPILER) $< $(REDIR) + $(EXECPPAS) + +%$(EXEEXT): %.pas + $(COMPILER) $< $(REDIR) + $(EXECPPAS) + +##################################################################### +# Library +##################################################################### + +.PHONY: fpc_smart fpc_shared + +ifdef LIBVERSION +LIBFULLNAME=$(LIBNAME).$(LIBVERSION) +else +LIBFULLNAME=$(LIBNAME) +endif + +# Default sharedlib units are all unit objects +ifndef SHAREDLIBUNITOBJECTS +SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS) +endif + +fpc_smart: + $(MAKE) all LINKSMART=1 CREATESMART=1 + +fpc_shared: all +ifdef HASSHAREDLIB +ifndef LIBNAME + @$(ECHO) "LIBNAME not set" +else + $(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME) +endif +else + @$(ECHO) "Shared Libraries not supported" +endif + +##################################################################### +# Install rules +##################################################################### + +.PHONY: fpc_showinstall fpc_install + +ifdef EXTRAINSTALLUNITS +override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS)) +endif + ifdef INSTALLPPUFILES ifdef PPUFILES override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES)) @@ -599,59 +973,208 @@ override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES)) override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))) endif endif + ifdef INSTALLEXEFILES override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES)) endif -fpc_install: $(INSTALLTARGET) + +fpc_showinstall: $(SHOWINSTALLTARGET) ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) + @$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES)) +endif +ifdef INSTALLPPUFILES + @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES)) +ifneq ($(INSTALLPPULINKFILES),) + @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES)) +endif +ifneq ($(wildcard $(LIBFULLNAME)),) + @$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME) +ifdef HASSHAREDLIB + @$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME) +endif +endif +endif +ifdef EXTRAINSTALLFILES + @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES)) +endif + +fpc_install: $(INSTALLTARGET) +# Create UnitInstallFiles +ifdef INSTALLEXEFILES + $(MKDIR) $(BININSTALLDIR) +# Compress the exes if upx is defined ifdef UPXPROG -$(UPXPROG) $(INSTALLEXEFILES) endif - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) + $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR) endif ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) + $(MKDIR) $(UNITINSTALLDIR) + $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR) ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) + $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR) endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) +ifneq ($(wildcard $(LIBFULLNAME)),) + $(MKDIR) $(LIBINSTALLDIR) + $(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR) ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) + ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME) endif endif endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) +ifdef EXTRAINSTALLFILES + $(MKDIR) $(DATAINSTALLDIR) + $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR) endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) + +##################################################################### +# SourceInstall rules +##################################################################### + +.PHONY: fpc_sourceinstall + +ifndef SOURCETOPDIR +SOURCETOPDIR=$(BASEDIR) +endif + +fpc_sourceinstall: clean + $(MKDIR) $(SOURCEINSTALLDIR) + $(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR) + +##################################################################### +# exampleinstall rules +##################################################################### + +.PHONY: fpc_exampleinstall + +fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS)) ifdef EXAMPLESOURCEFILES - $(MKDIR) $(INSTALL_EXAMPLEDIR) - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) + $(MKDIR) $(EXAMPLEINSTALLDIR) + $(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR) endif -ifdef TARGET_EXAMPLEDIRS +ifdef EXAMPLEDIROBJECTS ifndef EXAMPLESOURCEFILES - $(MKDIR) $(INSTALL_EXAMPLEDIR) + $(MKDIR) $(EXAMPLEINSTALLDIR) endif - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) + $(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR) endif -fpc_distinstall: fpc_install fpc_exampleinstall + +##################################################################### +# Zip +##################################################################### + +.PHONY: fpc_zipinstall + +# Create suffix to add +ifndef PACKAGESUFFIX +PACKAGESUFFIX=$(OS_TARGET) +ifeq ($(OS_TARGET),go32v2) +PACKAGESUFFIX=go32 +endif +ifeq ($(OS_TARGET),win32) +PACKAGESUFFIX=w32 +endif +ifeq ($(OS_TARGET),os2) +PACKAGESUFFIX=emx +endif +endif + +# Temporary path to pack a file +ifndef PACKDIR +ifndef inUnix +PACKDIR=$(BASEDIR)/../pack_tmp +else +PACKDIR=/tmp/fpc-pack +endif +endif + +# Maybe create default zipname from packagename +ifndef ZIPNAME +ifdef PACKAGENAME +ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX) +endif +endif + +# Use tar by default under linux +ifndef USEZIP +ifdef inUnix +USETAR=1 +endif +endif + +# Use a wrapper script by default for OS/2 +ifdef inOS2 +USEZIPWRAPPER=1 +endif + +# Create commands to create the zip/tar file +ZIPWRAPPER=$(DESTZIPDIR)/fpczip$(BATCHEXT) +ZIPCMD_CDPACK:=cd $(subst /,$(PATHSEP),$(PACKDIR)) +ZIPCMD_CDBASE:=cd $(subst /,$(PATHSEP),$(BASEDIR)) +ifdef USETAR +ZIPDESTFILE:=$(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) +ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) * +else +ZIPDESTFILE:=$(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) +ZIPCMD_ZIP:=$(subst /,$(PATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) * +endif + +fpc_zipinstall: +ifndef ZIPNAME + @$(ECHO) "Please specify ZIPNAME!" + @exit 1 +else + $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR) + $(DEL) $(ZIPDESTFILE) +ifdef USEZIPWRAPPER +ifneq ($(ECHO),echo) + $(ECHO) "$(ZIPCMD_CDPACK)" > $(ZIPWRAPPER) + $(ECHO) "$(ZIPCMD_ZIP)" >> $(ZIPWRAPPER) + $(ECHO) "$(ZIPCMD_CDBASE)" >> $(ZIPWRAPPER) +else + $(ECHO) $(ZIPCMD_CDPACK) > $(ZIPWRAPPER) + $(ECHO) $(ZIPCMD_ZIP) >> $(ZIPWRAPPER) + $(ECHO) $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER) +endif +ifdef inUnix + /bin/sh $(ZIPWRAPPER) +else + $(ZIPWRAPPER) +endif + $(DEL) $(ZIPWRAPPER) +else + $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE) +endif + $(DELTREE) $(PACKDIR) +endif + +.PHONY: fpc_zipsourceinstall + +fpc_zipsourceinstall: + $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src + +.PHONY: fpc_zipexampleinstall + +fpc_zipexampleinstall: + $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm + +##################################################################### +# Clean rules +##################################################################### + .PHONY: fpc_clean fpc_cleanall fpc_distclean + ifdef EXEFILES override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) + +ifdef EXTRACLEANUNITS +override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS)) endif + ifdef CLEANPPUFILES override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) +# Get the .o and .a files created for the units ifdef PPUFILES CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES)) else @@ -659,6 +1182,7 @@ CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addp endif override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)) endif + fpc_clean: $(CLEANTARGET) ifdef CLEANEXEFILES -$(DEL) $(CLEANEXEFILES) @@ -672,17 +1196,22 @@ endif ifdef CLEANRSTFILES -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) +ifdef EXTRACLEANFILES + -$(DEL) $(EXTRACLEANFILES) endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) +ifdef LIBNAME + -$(DEL) $(LIBNAME) $(LIBFULLNAME) endif -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE) + fpc_distclean: fpc_clean -ifdef COMPILER_UNITTARGETDIR + +# Also run clean first if targetdir is set. Unittargetdir is always +# set if targetdir or unittargetdir is specified +ifdef UNITTARGETDIR TARGETDIRCLEAN=fpc_clean endif + fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN) ifdef CLEANEXEFILES -$(DEL) $(CLEANEXEFILES) @@ -690,110 +1219,86 @@ endif -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -$(DELTREE) *$(SMARTEXT) -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -.PHONY: fpc_info -fpc_info: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) + +##################################################################### +# Info rules +##################################################################### + +.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \ + fpc_dirinfo + +fpc_info: $(INFOTARGET) + +fpc_infocfg: @$(ECHO) @$(ECHO) == Configuration info == @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) + @$(ECHO) FPC....... $(FPC) + @$(ECHO) Version... $(FPC_VERSION) + @$(ECHO) CPU....... $(CPU_TARGET) + @$(ECHO) Source.... $(OS_SOURCE) + @$(ECHO) Target.... $(OS_TARGET) @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) Pwd....... $(PWD) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) PPUFiles.. $(PPUFILES) - @$(ECHO) Date...... $(DATE) - @$(ECHO) Upx....... $(UPXPROG) - @$(ECHO) Zip....... $(ZIPPROG) + +fpc_infoobjects: @$(ECHO) @$(ECHO) == Object info == @$(ECHO) - @$(ECHO) Target Loaders...... $(TARGET_LOADERS) - @$(ECHO) Target Units........ $(TARGET_UNITS) - @$(ECHO) Target Programs..... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs......... $(TARGET_DIRS) - @$(ECHO) Target Examples..... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.. $(TARGET_EXAMPLEDIRS) + @$(ECHO) LoaderObjects..... $(LOADEROBJECTS) + @$(ECHO) UnitObjects....... $(UNITOBJECTS) + @$(ECHO) ExeObjects........ $(EXEOBJECTS) @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) + @$(ECHO) ExtraCleanUnits... $(EXTRACLEANUNITS) + @$(ECHO) ExtraCleanFiles... $(EXTRACLEANFILES) @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) + @$(ECHO) ExtraInstallUnits. $(EXTRAINSTALLUNITS) + @$(ECHO) ExtraInstallFiles. $(EXTRAINSTALLFILES) + @$(ECHO) + +fpc_infoinstall: @$(ECHO) @$(ECHO) == Install info == @$(ECHO) +ifdef DATE @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) - @$(ECHO) INSTALL_BASEDIR...... $(INSTALL_BASEDIR) - @$(ECHO) INSTALL_BINDIR....... $(INSTALL_BINDIR) - @$(ECHO) INSTALL_LIBDIR....... $(INSTALL_LIBDIR) - @$(ECHO) INSTALL_UNITDIR...... $(INSTALL_UNITDIR) - @$(ECHO) INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR) - @$(ECHO) INSTALL_DOCDIR....... $(INSTALL_DOCDIR) - @$(ECHO) INSTALL_DATADIR...... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) DIST_DESTDIR......... $(DIST_DESTDIR) - @$(ECHO) DIST_ZIPNAME......... $(DIST_ZIPNAME) - @$(ECHO) -ifndef RC -RC:=$(strip $(wildcard $(addsuffix /rc$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RC),) -RC= -else -RC:=$(firstword $(RC)) endif +ifdef PACKAGEPREFIX + @$(ECHO) PackagePrefix........ $(PACKAGEPREFIX) endif -export RC -all: fpc_all -debug: fpc_debug -examples: fpc_examples -smart: fpc_smart -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: fpc_distinstall -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -clean: fpc_clean -distclean: fpc_distclean -cleanall: fpc_cleanall -info: fpc_info -.PHONY: all debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info +ifdef PACKAGENAME + @$(ECHO) PackageName.......... $(PACKAGENAME) +endif + @$(ECHO) PackageSuffix........ $(PACKAGESUFFIX) + @$(ECHO) + @$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR) + @$(ECHO) BinInstallDir........ $(BININSTALLDIR) + @$(ECHO) LibInstallDir........ $(LIBINSTALLDIR) + @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR) + @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR) + @$(ECHO) DocInstallDir........ $(DOCINSTALLDIR) + @$(ECHO) DataInstallDir....... $(DATAINSTALLDIR) + @$(ECHO) + @$(ECHO) DestZipDir........... $(DESTZIPDIR) + @$(ECHO) ZipName.............. $(ZIPNAME) + @$(ECHO) + +##################################################################### +# Local Makefile +##################################################################### + ifneq ($(wildcard fpcmake.loc),) include fpcmake.loc endif -basicpm: basicpm.pas - $(COMPILER) -Dw -Ch8096 -Cs8096 basicpm.pas -pmdemo1: pmdemo1.pp pmdemo1.res - $(COMPILER) -Dw -Ch8096 -Cs8096 pmdemo1.pp + +##################################################################### +# Users rules +##################################################################### + +basicpm.exe: basicpm.pas + $(COMPILER) -Dw -Ch8096 -Cs32728 basicpm.pas + +pmdemo1.exe: pmdemo1.pp pmdemo1.res + $(COMPILER) -Dw -Ch8096 -Cs32728 pmdemo1.pp + pmdemo1.res: pmdemo1.rc pmdemo1.h $(RC) -r pmdemo1 diff --git a/install/demo/os2/basicpm.pas b/install/demo/os2/basicpm.pas index d2790b3226..3c2c177736 100644 --- a/install/demo/os2/basicpm.pas +++ b/install/demo/os2/basicpm.pas @@ -15,6 +15,8 @@ **********************************************************************} program BasicPM; +{$APPTYPE GUI} + uses Os2Def, PMWin; @@ -78,7 +80,10 @@ end. { $Log$ - Revision 1.1 2001-01-14 19:02:14 hajny + Revision 1.2 2001-04-22 10:13:14 hajny + * APPTYPE specified within the source files, RC called from makefiles + + Revision 1.1 2001/01/14 19:02:14 hajny + OS/2 demos added } diff --git a/install/demo/os2/pmdemo1.pp b/install/demo/os2/pmdemo1.pp index a891c50dc6..ef01e514f2 100644 --- a/install/demo/os2/pmdemo1.pp +++ b/install/demo/os2/pmdemo1.pp @@ -9,6 +9,8 @@ { Sample program for FPC under OS/2 } { Classic Hello world in PM version } +{$APPTYPE GUI} + {$R pmdemo1.res} (* PMDEMO1.RES has to be compiled from PMDEMO1.RC using "rc -r PMDEMO1.RC". *) @@ -75,7 +77,10 @@ program pmdemo1; end. { $Log$ - Revision 1.1 2001-01-14 19:02:14 hajny + Revision 1.2 2001-04-22 10:13:14 hajny + * APPTYPE specified within the source files, RC called from makefiles + + Revision 1.1 2001/01/14 19:02:14 hajny + OS/2 demos added Revision 1.1 2000/07/13 06:31:08 michael