123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #
- # Makefile.fpc for Free Pascal GDB Interface
- #
- [package]
- name=gdbint
- version=2.5.1
- [target]
- units=gdbint gdbcon
- examples=examples/testgdb examples/symify
- [compiler]
- objectdir=$(GDBLIBDIR)
- librarydir=$(GDBLIBDIR)
- includedir=src
- sourcedir=src tests
- [require]
- libc=y
- [install]
- fpcpackage=y
- [default]
- fpcdir=../..
- [prerules]
- # For unix be sure to use the locally created gdbver
- ifdef inUnix
- CURRDIR=./
- else
- CURRDIR=
- endif
- # 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
- # Set GDBFOUND variable
- ifeq ($(LIBGDBFILE),)
- GDBFOUND=0
- else
- GDBFOUND=1
- endif
- [rules]
- ifeq ($(FULL_SOURCE),$(FULL_TARGET))
- CAN_RUN_GDBVER=1
- endif
- ifeq ($(FULL_SOURCE),i386-win32)
- ifeq ($(FULL_TARGET),i386-go32v2)
- CAN_RUN_GDBVER=1
- endif
- endif
- ifdef CAN_RUN_GDBVER
- ifeq ($(GDBFOUND),1)
- # libgdb.a found
- $(CURRDIR)getver$(EXEEXT) : gdbver.pp
- $(COMPILER) -o$(CURRDIR)getver$(EXEEXT) gdbver.pp
- ifndef GOTGDBVER
- # gdbver doesn't exists, build it first
- gdbint$(PPUEXT): $(CURRDIR)gdbver$(EXEEXT) gdbint.pp
- $(MAKE) gdbint$(PPUEXT) GOTGDBVER=1
- else
- # gdbver exists
- GDBVER:=GDB_V$(strip $(shell $(CURRDIR)gdbver$(EXEEXT) -n))
- gdbver.inc: gdbver$(EXEEXT)
- ./gdbver$(EXEEXT) -o gdbver.inc
- gdbint$(PPUEXT): gdbint.pp gdbver.inc
- # MingW?
- ifeq ($(wildcard $(GDBLIBDIR)/libmingw32.a),)
- @$(ECHO) Using GDB $(GDBVER)
- $(COMPILER) -d$(GDBVER) -Fisrc -Fusrc src/gdbint.pp
- else
- @$(ECHO) Using GDB $(GDBVER) (MingW)
- $(COMPILER) -d$(GDBVER) -dUSE_MINGW_GDB -Fisrc -Fusrc src/gdbint.pp
- endif
- $(DEL) gdbver$(EXEEXT) gdbver$(OEXT)
- endif
- else
- # libgdb.a not found, default to libgdb v6
- GDBVER=GDB_V606
- gdbver.inc:
- $(CPPROG) src/gdbver_nogdb.inc src/gdbver.inc
- gdbint$(PPUEXT): gdbint.pp gdbver.inc
- @$(ECHO) libgdb.a not found, using default GDB $(GDBVER)
- $(COMPILER) -d$(GDBVER) -Fisrc -Fusrc src/gdbint.pp
- endif
- else
- # Different OS_TARGET, default to libgdb v6
- GDBVER=GDB_V606
- gdbver.inc:
- $(CPPROG) src/gdbver_nogdb.inc src/gdbver.inc
- gdbint$(PPUEXT): gdbint.pp gdbver.inc
- @$(ECHO) Different target os or cpu, using default GDB $(GDBVER)
- $(COMPILER) -d$(GDBVER) -Fisrc -Fusrc src/gdbint.pp
- endif
- gdbcon$(PPUEXT): gdbcon.pp gdbint$(PPUEXT)
- ifeq ($(OS_TARGET),go32v2)
- DBGCOM=dbgcom$(OEXT)
- else
- DBGCOM=
- endif
- ifdef $(COMPILEDBGCOM)
- # FPC conditionnal remove the file watching mecanism introduced
- # in v2.02 of dbgcom.c because it relies
- # on the fact that all files are opened via C lib calls
- # which is wrong for FPC !!
- $(DBGCOM): ../v4.16/dbgcom.c
- gcc -c -DFPC -Dother_sel -gstabs -o dbgcom.o -I../v4.16 ../v4.16/dbgcom.c
- else
- $(DBGCOM):
- endif
- simple: $(DBGCOM)
- -rm gdbint.ppu
- ppc386 -dUSE_LIBGDB -fisrc -fusrc gdbint
- ppc386 testgdb
- testgdb$(EXEEXT): testgdb.pp gdbint$(PPUEXT) gdbcon$(PPUEXT) $(DBGCOM)
- # Allow test for example
- .PHONY: test
- test: examples
- clean: fpc_clean
- $(DEL) src/gdbver$(EXEEXT) src/gdbver$(OEXT)
- distclean: fpc_distclean
- $(DEL) src/gdbver.inc
- .NOTPARALLEL:
|