123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- #
- # $Id: Makefile.fpc,v 1.32 2005/05/05 12:59:59 peter Exp $
- #
- # Makefile.fpc for FP IDE
- #
- [package]
- name=ide
- version=3.1.1
- [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
|