fpc/ide/Makefile.fpc
2004-01-05 23:29:35 +00:00

240 lines
4.4 KiB
Makefile

#
# $Id$
#
# Makefile.fpc for FP IDE
#
[package]
name=ide
version=1.9.2
[target]
dirs=compiler fakegdb
programs=fp
rst=fpstrings
[install]
datadir=$(INSTALL_BASEDIR)/ide
fpcpackage=y
[compiler]
options=-Sg
targetdir=.
unitdir=compiler
[require]
packages=fv gdbint regexpr
[default]
fpcdir=..
[prerules]
#
# Linux->Unix transistion fix
#
ifeq ($(OS_TARGET),linux)
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
override FPCOPT+=-dUNIX
endif
endif
ifeq ($(OS_TARGET),freebsd)
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
override FPCOPT+=-dUNIX
endif
endif
#
# Automatic detection of the compiler version
#
# compilers 1.0.x need to define COMPILER_1_0.
#
# To detect 1.0.x compilers we look for finput.ppu. If this unit
# is not found then we include 1.0.x compiler
#
ifeq ($(wildcard compiler/finput.*),)
override FPCOPT+=-dCOMPILER_1_0
endif
#
# Automatic detection if libgdb.a is present
#
# when including debugger include the gdbinterface
ifndef GDBINT
GDBINT=gdbint
endif
# Try to find GDB library
ifeq ($(GDB),1)
ifeq ($(DEBUG),1)
# First test if a debug version exists in a specific dir
ifneq ($(strip $(wildcard $(addsuffix /$(GDBINT)/libgdb/d$(OS_TARGET)/libgdb.a,$(PACKAGESDIR)))),)
OSGDBDIR=d$(OS_TARGET)
else
OSGDBDIR=$(OS_TARGET)
endif
else
OSGDBDIR=$(OS_TARGET)
endif
GDBLIBDIR+=$(wildcard $(addsuffix /$(GDBINT)/libgdb/$(OSGDBDIR),$(PACKAGESDIR)))
GDBOBJDIR+=$(wildcard $(addsuffix /$(GDBINT)/libgdb/$(OSGDBDIR),$(PACKAGESDIR)))
ifeq ($(OS_TARGET),go32v2)
ifneq ($(DJDIR),)
GDBLIBDIR+=$(DJDIR)/lib
endif
endif
ifeq ($(strip $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR)))),)
override GDB=0
GDBFOUND=0
else
override LIBGDB=$(firstword $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR))))
GDBFOUND=1
endif
endif
ifeq ($(GDB),1)
# The gdbint is already included due the gdbint package dependency
override LIBDIR+=$(GDBLIBDIR)
else
override UNITDIR+=fakegdb
endif
[rules]
.PHONY: compilerunits compilerclean \
nogdb gdb all \
clean_compiler clean testgdb postgdbinfo
clean: fpc_cleanall
distclean: clean compilerclean
#
# FVision or old FV detection
#
ifneq ($(wildcard $(UNITDIR_FV)/fvconsts$(PPUEXT)),)
override COMPILER+=-dFVISION
endif
ifeq ($(GDB),1)
ifneq ($(GDBFOUND),0)
override COMPILER+=-dWITH_GDB
endif
endif
fp$(EXEEXT): $(wildcard *.pas) $(wildcard *.inc)
testgdb:
ifneq ($(GDBFOUND),0)
@$(ECHO) LibGDB found in $(LIBGDB)
else
@$(ECHO) LibGDB not found
@$(ECHO) LIBGDB=$(LIBGDB)
@$(ECHO) GDBLIBDIR=$(GDBLIBDIR)
@$(ECHO) $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR)))
endif
postgdbinfo:
ifeq ($(GDBFOUND),0)
@$(ECHO) LibGDB was not found, IDE has no Debugger support
endif
#
# Compiler
#
compilerunits : compiler/$(FPCMADE)
compiler/$(FPCMADE):
$(MAKE) -C compiler all
compilerclean :
$(MAKE) -C compiler clean
#
# Fake GDB
#
fakegdbunits : fakegdb/$(FPCMADE)
fakegdb/$(FPCMADE):
$(MAKE) -C fakegdb all
fakegdbclean :
$(MAKE) -C fakegdb clean
fakegdbinfo:
@$(ECHO) Using FakeGDB, IDE has no Debugger support
#
# Build targets
#
# building happends in 2 steps, first the packages, compiler and fakegdb
# dirs are build. In the second step the IDE is build. This is
# required because it needs to detect which compiler version
# to use.
#
builddirs: compilerunits fakegdbunits
buildfp: fpc_all
gdb:
$(MAKE) builddirs
$(MAKE) testgdb buildfp postgdbinfo GDB=1
nogdb:
$(MAKE) builddirs
$(MAKE) buildfp fakegdbinfo
#
# Default targets
#
# By default we try to create the ide with full debugging support,
# if gdbint and libgdb is not available it will fallback to use
# fakegdb
all: gdb
# This is necessary because we don't have all units separate in the
# units targets
clean: cleanall
#
# Installation
#
ifndef UNIXINSTALLDIR
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
#
# $Log$
# Revision 1.19 2004-01-05 23:29:35 marco
# * fixed a few makefiles version numbers
#
# Revision 1.18 2003/11/01 22:45:29 marco
# * updated package version
#
# Revision 1.17 2003/10/03 17:29:13 florian
# + id and log added
#
#