mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-01 11:02:37 +02:00

is passed to utils as a 'make cleanall' which is an alias for 'distclean'. The Makefile.fpc did not recognize the 'cleanall' alias because in packages 'distclean' is being used. This means that nothing was cleaned at all. git-svn-id: trunk@22621 -
90 lines
2.8 KiB
Makefile
90 lines
2.8 KiB
Makefile
#
|
|
# Makefile.fpc for running fpmake
|
|
#
|
|
|
|
[package]
|
|
name=fppkg-util
|
|
version=2.7.1
|
|
|
|
[require]
|
|
packages=rtl fpmkunit
|
|
|
|
[install]
|
|
fpcpackage=y
|
|
|
|
[default]
|
|
fpcdir=../..
|
|
|
|
[prerules]
|
|
FPMAKE_BIN_CLEAN=$(wildcard .$(PATHSEP)fpmake$(SRCEXEEXT))
|
|
ifdef OS_TARGET
|
|
FPC_TARGETOPT+=--os=$(OS_TARGET)
|
|
endif
|
|
ifdef CPU_TARGET
|
|
FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
|
|
endif
|
|
LOCALFPMAKE=.$(PATHSEP)fpmake$(SRCEXEEXT)
|
|
|
|
[rules]
|
|
# Do not pass the Makefile's unit and binary target locations. fpmake uses it's own.
|
|
override FPCOPT:=$(filter-out -FU%,$(FPCOPT))
|
|
override FPCOPT:=$(filter-out -FE%,$(FPCOPT))
|
|
# Compose general fpmake-parameters
|
|
ifdef FPMAKEOPT
|
|
FPMAKE_OPT+=$(FPMAKEOPT)
|
|
endif
|
|
FPMAKE_OPT+=--localunitdir=../..
|
|
FPMAKE_OPT+=--globalunitdir=../../packages
|
|
FPMAKE_OPT+=$(FPC_TARGETOPT)
|
|
FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
|
|
FPMAKE_OPT+=--compiler=$(FPC)
|
|
FPMAKE_OPT+=-bu
|
|
.NOTPARALLEL:
|
|
|
|
fpmake: fpmake.pp
|
|
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
|
|
all: fpmake
|
|
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
|
|
smart: fpmake
|
|
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
|
|
release: fpmake
|
|
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
|
|
debug: fpmake
|
|
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
|
|
# If no fpmake exists and (dist)clean is called, do not try to build fpmake, it will
|
|
# most often fail because the dependencies are cleared.
|
|
# In case of a clean, simply do nothing
|
|
ifeq ($(FPMAKE_BIN_CLEAN),)
|
|
clean:
|
|
else
|
|
clean:
|
|
$(FPMAKE_BIN_CLEAN) clean $(FPMAKE_OPT)
|
|
endif
|
|
# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
|
|
# when the package is compiled using fpcmake prior to running this clean using fpmake
|
|
ifeq ($(FPMAKE_BIN_CLEAN),)
|
|
distclean: $(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
|
|
else
|
|
distclean:
|
|
ifdef inUnix
|
|
{ $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ]; then { echo Something wrong with fpmake exectable. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; fi; }
|
|
else
|
|
$(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT)
|
|
endif
|
|
-$(DEL) $(LOCALFPMAKE)
|
|
endif
|
|
cleanall: distclean
|
|
install: fpmake
|
|
ifdef UNIXHier
|
|
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
|
|
else
|
|
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
|
|
endif
|
|
# distinstall also installs the example-sources
|
|
distinstall: fpmake
|
|
ifdef UNIXHier
|
|
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
|
|
else
|
|
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
|
|
endif
|