mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 23:38:06 +02:00

C Makefile C Makefile.fpc --- Recording mergeinfo for merge of r49045 into '.': U . Summary of conflicts: Text conflicts: 2 # revisions: 49045 r49045 | jonas | 2021-03-24 15:33:09 +0100 (Wed, 24 Mar 2021) | 1 line Changed paths: M /trunk/Makefile M /trunk/Makefile.fpc * support building with FPC 3.2.2 git-svn-id: branches/fixes_3_2@49384 -
262 lines
4.9 KiB
Makefile
262 lines
4.9 KiB
Makefile
#
|
|
# $Id: Makefile.fpc,v 1.32 2005/05/05 12:59:59 peter Exp $
|
|
#
|
|
# Makefile.fpc for FP IDE
|
|
#
|
|
|
|
[package]
|
|
name=ide
|
|
version=3.2.3
|
|
|
|
[target]
|
|
dirs=compiler
|
|
programs=fp
|
|
rst=fpstrings
|
|
|
|
[install]
|
|
datadir=$(INSTALL_BASEDIR)/ide
|
|
fpcpackage=y
|
|
|
|
[compiler]
|
|
options=-Sg
|
|
|
|
[require]
|
|
packages=fv gdbint regexpr chm fcl-base fcl-xml
|
|
packages_go32v2=graph
|
|
libc=y
|
|
|
|
[default]
|
|
fpcdir=..
|
|
|
|
[prerules]
|
|
#
|
|
# Automatic detection if libgdb.a is present
|
|
#
|
|
|
|
# set default value for PPC_TARGET
|
|
ifndef PPC_TARGET
|
|
PPC_TARGET=$(CPU_TARGET)
|
|
endif
|
|
|
|
# do not add -d$(CPU_TARGET)
|
|
override NOCPUDEF=1
|
|
# Use PPC_TARGET instead
|
|
override FPCOPT+= -d$(PPC_TARGET)
|
|
|
|
ifndef NOGDB
|
|
|
|
ifeq ($(FULL_TARGET),i386-win32)
|
|
needlinkparam=1
|
|
endif
|
|
|
|
|
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
|
needlinkparam=1
|
|
endif
|
|
|
|
ifeq ($(OS_TARGET),freebsd)
|
|
needusrlocallib=1
|
|
neednostdlib=1
|
|
endif
|
|
ifeq ($(OS_TARGET),openbsd)
|
|
needusrlocallib=1
|
|
needusrlib=1
|
|
neednostdlib=1
|
|
endif
|
|
ifeq ($(OS_TARGET),netbsd)
|
|
neednostdlib=1
|
|
endif
|
|
ifeq ($(OS_TARGET),aix)
|
|
neednostdlib=1
|
|
endif
|
|
|
|
ifdef needlinkparam
|
|
override SPECIALLINK=-Xe -k--allow-multiple-definition
|
|
endif
|
|
|
|
ifdef needusrlib
|
|
override SPECIALLINK+=-Fl/usr/lib
|
|
endif
|
|
ifdef needusrlocallib
|
|
override SPECIALLINK+=-Fl/usr/local/lib
|
|
endif
|
|
ifdef neednostdlib
|
|
override SPECIALLINK+=-Xd
|
|
endif
|
|
|
|
ifeq ($(OS_TARGET),aix)
|
|
override SPECIALLINK+=6fl/opt/freeware/lib -k-bbigtoc
|
|
endif
|
|
|
|
# Try to find GDB library
|
|
# Look for a valid GDBLIBDIR environment variable
|
|
ifdef GDBLIBDIR
|
|
override LIBGDBFILE:=$(firstword $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR))))
|
|
endif
|
|
|
|
# Use default dirs if not available
|
|
ifeq ($(LIBGDBFILE),)
|
|
# Default locations <target>/<cpu> (linux) or <target> (win32,go32v2) only
|
|
override GDBLIBDIR=$(wildcard $(FPCDIR)/libgdb/$(OS_TARGET)/$(CPU_TARGET))
|
|
ifeq ($(GDBLIBDIR),)
|
|
override GDBLIBDIR=$(FPCDIR)/libgdb/$(OS_TARGET)
|
|
endif
|
|
# Detect if libgdb.a is available
|
|
override LIBGDBFILE:=$(firstword $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR))))
|
|
endif
|
|
|
|
# No custom libgdb.a found, try using system default library if available
|
|
ifeq ($(LIBGDBFILE),)
|
|
SYSLIBDIR=/lib /usr/lib /usr/local/lib
|
|
# Detect if libgdb.a is available
|
|
override LIBGDBFILE=$(firstword $(wildcard $(addsuffix /libgdb.a,$(SYSLIBDIR))))
|
|
ifneq (${LIBGDBFILE},)
|
|
$(warning Using system default libgdb file located in ${LIBGDBFILE})
|
|
GDBLIBDIR=$(dir ${LIBGDBFILE})
|
|
endif
|
|
endif
|
|
|
|
# Disable GDB when no libgdb.a found
|
|
ifeq ($(LIBGDBFILE),)
|
|
GDB=
|
|
else
|
|
GDB=1
|
|
# Detect if gdblib.inc is available
|
|
override LIBGDBINC:=$(firstword $(wildcard $(addsuffix /gdblib.inc,$(GDBLIBDIR))))
|
|
ifeq ($(LIBGDBINC),)
|
|
GDBLIBINCFOUND=0
|
|
GDBLIBINCCOND=
|
|
else
|
|
GDBLIBINCFOUND=1
|
|
GDBLIBINCCOND=-dUSE_GDBLIBINC -I$(GDBLIBDIR)
|
|
endif
|
|
endif
|
|
|
|
ifdef GDB
|
|
# The gdbint is already included due the gdbint package dependency
|
|
override LIBDIR+=$(GDBLIBDIR)
|
|
endif
|
|
|
|
else
|
|
|
|
# Disable
|
|
GDB=
|
|
|
|
endif #NOGDB
|
|
|
|
|
|
[rules]
|
|
.NOTPARALLEL:
|
|
|
|
.PHONY: compilerunits compilerclean \
|
|
nogdb gdb all \
|
|
clean_compiler clean testgdb postgdbinfo
|
|
|
|
clean: fpc_cleanall
|
|
|
|
distclean: clean compilerclean
|
|
|
|
#
|
|
# GDB detection
|
|
#
|
|
ifndef NOGDB
|
|
|
|
ifdef GDB
|
|
testgdb:
|
|
@$(ECHO) LibGDB found in $(LIBGDBFILE)
|
|
|
|
postgdbinfo:
|
|
@$(ECHO) LibGDB was found, IDE has Debugger support
|
|
|
|
else
|
|
override COMPILER+=-dNODEBUG
|
|
testgdb:
|
|
@$(ECHO) LibGDB not found
|
|
@$(ECHO) LIBGDBFILE=$(LIBGDBFILE)
|
|
@$(ECHO) GDBLIBDIR=$(GDBLIBDIR)
|
|
@$(ECHO) $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR)))
|
|
|
|
postgdbinfo:
|
|
@$(ECHO) LibGDB was not found, IDE has no Debugger support
|
|
endif
|
|
|
|
else
|
|
testgdb:
|
|
@$(ECHO) Building without Debugger
|
|
postgdbinfo:
|
|
@$(ECHO) Debugger disabled, IDE has no Debugger support
|
|
override COMPILER+=-dNODEBUG
|
|
endif # NOGDB
|
|
|
|
|
|
#
|
|
# Compiler
|
|
#
|
|
|
|
compilerunits : compiler/$(FPCMADE)
|
|
compiler/$(FPCMADE):
|
|
$(MAKE) -C compiler all
|
|
|
|
compilerclean :
|
|
$(MAKE) -C compiler clean
|
|
|
|
#
|
|
# Build targets
|
|
#
|
|
# building happends in 2 steps, first the packages, compiler
|
|
# dirs are build. In the second step the IDE is build. This is
|
|
# required because it needs to detect which compiler version
|
|
# to use.
|
|
#
|
|
fp$(EXEEXT): $(wildcard *.pas) $(wildcard *.inc)
|
|
$(COMPILER) $(GDBLIBINCCOND) $(SPECIALLINK) fp.pas
|
|
|
|
buildfp:
|
|
$(MAKE) compilerunits
|
|
$(MAKE) testgdb
|
|
$(MAKE) fpc_all
|
|
$(MAKE) postgdbinfo
|
|
|
|
gdb:
|
|
# $(MAKE) -C ../packages/base/gdbint
|
|
$(MAKE) buildfp
|
|
|
|
nogdb:
|
|
$(MAKE) buildfp NOGDB=1
|
|
|
|
#
|
|
# Default targets
|
|
#
|
|
|
|
# By default we try to create the ide with full debugging support,
|
|
all: gdb
|
|
|
|
# This is necessary because we don't have all units separate in the
|
|
# units targets
|
|
clean: cleanall
|
|
|
|
#
|
|
# Installation
|
|
#
|
|
|
|
ifndef UNIXHier
|
|
override INSTALL_DATADIR=$(INSTALL_BINDIR)
|
|
endif
|
|
|
|
install: fpc_install
|
|
$(MKDIR) $(INSTALL_DATADIR)
|
|
$(MKDIR) $(INSTALL_DOCDIR)
|
|
$(INSTALL) fp.ans $(wildcard *.pt) $(wildcard *.tdf) $(INSTALL_DATADIR)
|
|
ifeq ($(OS_TARGET),win32)
|
|
$(INSTALL) fp32.ico $(INSTALL_DATADIR)
|
|
endif
|
|
$(INSTALL) readme.ide $(INSTALL_DOCDIR)
|
|
|
|
|
|
#
|
|
# Misc
|
|
#
|
|
clean_compiler:
|
|
$(MAKE) -C compiler clean
|
|
$(MAKE) -C ../compiler ppuclean
|