fpc/packages/ide/Makefile.fpc.fpcmake
marco 74aff88586 --- Merging r49045 into '.':
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 -
2021-05-20 20:03:52 +00:00

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