# # $Id: Makefile.fpc,v 1.32 2005/05/05 12:59:59 peter Exp $ # # Makefile.fpc for FP IDE # [package] name=ide version=2.6.4 [target] dirs=compiler programs=fp rst=fpstrings [install] datadir=$(INSTALL_BASEDIR)/ide fpcpackage=y [compiler] options=-Sg [require] packages=fv gdbint regexpr chm 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 endif ifeq ($(OS_TARGET),netbsd) neednostdlib=1 endif ifdef needlinkparam override SPECIALLINK=-Xe -k--allow-multiple-definition endif ifdef needusrlocallib override SPECIALLINK+=-Fl/usr/local/lib endif ifdef neednostdlib override SPECIALLINK+=-Xd 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 / (linux) or (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