mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 08:19:36 +01:00 
			
		
		
		
	Solves issues with systems that e.g. require special options for compilation of programs (e.g. libc programs to find libc startup code) or the actual build has been compiled with options that are incompatible with default ones. Tested changes by building an i386-linux local build and i386-linux->arm-linux cross-builds git-svn-id: trunk@22397 -
		
			
				
	
	
		
			77 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
#   Makefile.fpc for running fpmake
 | 
						|
#
 | 
						|
 | 
						|
[package]
 | 
						|
name=mysql
 | 
						|
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]
 | 
						|
.NOTPARALLEL:
 | 
						|
 | 
						|
fpmake: fpmake.pp
 | 
						|
	$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
 | 
						|
all:	fpmake
 | 
						|
	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu
 | 
						|
smart:	fpmake
 | 
						|
	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -XX -o -CX
 | 
						|
release:	fpmake
 | 
						|
	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -o -dRELEASE
 | 
						|
debug:	fpmake
 | 
						|
	$(LOCALFPMAKE) compile --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) -bu -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 --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
 | 
						|
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 --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC); 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 --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC)
 | 
						|
endif
 | 
						|
	-$(DEL) $(LOCALFPMAKE)
 | 
						|
endif
 | 
						|
install:	fpmake
 | 
						|
ifdef UNIXHier
 | 
						|
	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR)
 | 
						|
else
 | 
						|
	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
 | 
						|
endif
 | 
						|
# distinstall also installs the example-sources
 | 
						|
distinstall:	fpmake
 | 
						|
ifdef UNIXHier
 | 
						|
	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
 | 
						|
else
 | 
						|
	$(LOCALFPMAKE) install --localunitdir=../.. --globalunitdir=.. $(FPC_TARGETOPT) $(addprefix -o ,$(FPCOPT)) --compiler=$(FPC) --prefix=$(INSTALL_BASEDIR)  --unitinstalldir=$(INSTALL_UNITDIR) -ie
 | 
						|
endif
 | 
						|
 |