Browse Source

* check for libgdb.a
* slightly better gdbver.exe generation

peter 24 years ago
parent
commit
02af030262
2 changed files with 78 additions and 21 deletions
  1. 35 9
      packages/gdbint/Makefile
  2. 43 12
      packages/gdbint/Makefile.fpc

+ 35 - 9
packages/gdbint/Makefile

@@ -121,6 +121,8 @@ override PACKAGE_NAME=gdbint
 override PACKAGE_VERSION=1.0.5
 override PACKAGE_VERSION=1.0.5
 override TARGET_UNITS+=gdbint gdbcon
 override TARGET_UNITS+=gdbint gdbcon
 override TARGET_EXAMPLES+=testgdb symify
 override TARGET_EXAMPLES+=testgdb symify
+override COMPILER_OBJECTDIR+=libgdb/$(OS_TARGET)
+override COMPILER_LIBRARYDIR+=libgdb/$(OS_TARGET)
 ifndef ECHO
 ifndef ECHO
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
@@ -882,20 +884,44 @@ info: fpc_info
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
-.PHONY: localgdbverexe
-localgdbverexe : ./getver$(EXEEXT)
-./getver$(EXEEXT) : ./gdbver.pp
-	$(COMPILER) -o./getver$(EXEEXT) gdbver.pp
-ifdef GDBVER
+ifdef inUnix
+CURRDIR=./
+else
+CURRDIR=
+endif
+GDBLIBDIR+=libgdb/$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+ifneq ($(DJDIR),)
+GDBLIBDIR+=$(DJDIR)/lib
+endif
+endif
+override LIBGDB:=$(firstword $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR))))
+ifeq ($(LIBGDB),)
+GDBFOUND=0
+else
+GDBFOUND=1
+endif
+ifeq ($(GDBFOUND),1)
+$(CURRDIR)getver$(EXEEXT) : gdbver.pp
+	$(COMPILER) -o$(CURRDIR)getver$(EXEEXT) gdbver.pp
+ifndef GOTGDBVER
+gdbint$(PPUEXT): $(CURRDIR)gdbver$(EXEEXT)
+	$(MAKE) gdbint$(PPUEXT) GOTGDBVER=1
+else
+GDBVER:=GDB_V$(strip $(shell $(CURRDIR)gdbver$(EXEEXT) -n))
 gdbint$(PPUEXT): gdbint.pp
 gdbint$(PPUEXT): gdbint.pp
-	$(ECHO) Using GDB $(GDBVER)
+	@$(ECHO) Using GDB $(GDBVER)
 	$(COMPILER) -d$(GDBVER) gdbint.pp
 	$(COMPILER) -d$(GDBVER) gdbint.pp
+	$(DEL) gdbver$(EXEEXT) gdbver$(OEXT)
+endif
 else
 else
-gdbint$(PPUEXT): localgdbverexe gdbver$(EXEEXT)
-	$(MAKE) gdbint$(PPUEXT) GDBVER=GDB_V$(strip $(shell ./gdbver$(EXEEXT) -n))
+GDBVER=GDB_V5
+gdbint$(PPUEXT): gdbint.pp
+	@$(ECHO) Warning: libgdb.a not found !
+	@$(ECHO) Using GDB $(GDBVER)
+	$(COMPILER) -d$(GDBVER) gdbint.pp
 endif
 endif
 gdbcon$(PPUEXT): gdbcon.pp gdbint$(PPUEXT)
 gdbcon$(PPUEXT): gdbcon.pp gdbint$(PPUEXT)
-gdbver$(EXEEXT): gdbver.pp
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 DBGCOM=dbgcom$(OEXT)
 DBGCOM=dbgcom$(OEXT)
 else
 else

+ 43 - 12
packages/gdbint/Makefile.fpc

@@ -11,8 +11,8 @@ units=gdbint gdbcon
 examples=testgdb symify
 examples=testgdb symify
 
 
 [compiler]
 [compiler]
-objdir=libgdb/$(OS_TARGET)
-libdir=libgdb/$(OS_TARGET)
+objectdir=libgdb/$(OS_TARGET)
+librarydir=libgdb/$(OS_TARGET)
 
 
 [require]
 [require]
 libc=y
 libc=y
@@ -22,26 +22,57 @@ fpcdir=../..
 
 
 
 
 [rules]
 [rules]
-.PHONY: localgdbverexe
+# For unix be sure to use the locally created gdbver
+ifdef inUnix
+CURRDIR=./
+else
+CURRDIR=
+endif
+
+GDBLIBDIR+=libgdb/$(OS_TARGET)
+ifeq ($(OS_TARGET),go32v2)
+ifneq ($(DJDIR),)
+GDBLIBDIR+=$(DJDIR)/lib
+endif
+endif
+# Detect if libgdb.a is available
+override LIBGDB:=$(firstword $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR))))
+ifeq ($(LIBGDB),)
+GDBFOUND=0
+else
+GDBFOUND=1
+endif
 
 
-localgdbverexe : ./getver$(EXEEXT)
+ifeq ($(GDBFOUND),1)
+# libgdb.a found
 
 
-./getver$(EXEEXT) : ./gdbver.pp
-        $(COMPILER) -o./getver$(EXEEXT) gdbver.pp
+$(CURRDIR)getver$(EXEEXT) : gdbver.pp
+        $(COMPILER) -o$(CURRDIR)getver$(EXEEXT) gdbver.pp
 
 
-ifdef GDBVER
+ifndef GOTGDBVER
+# gdbver doesn't exists, build it first
+gdbint$(PPUEXT): $(CURRDIR)gdbver$(EXEEXT)
+        $(MAKE) gdbint$(PPUEXT) GOTGDBVER=1
+else
+# gdbver exists
+GDBVER:=GDB_V$(strip $(shell $(CURRDIR)gdbver$(EXEEXT) -n))
 gdbint$(PPUEXT): gdbint.pp
 gdbint$(PPUEXT): gdbint.pp
-        $(ECHO) Using GDB $(GDBVER)
+        @$(ECHO) Using GDB $(GDBVER)
         $(COMPILER) -d$(GDBVER) gdbint.pp
         $(COMPILER) -d$(GDBVER) gdbint.pp
+        $(DEL) gdbver$(EXEEXT) gdbver$(OEXT)
+endif
+
 else
 else
-gdbint$(PPUEXT): localgdbverexe gdbver$(EXEEXT)
-        $(MAKE) gdbint$(PPUEXT) GDBVER=GDB_V$(strip $(shell ./gdbver$(EXEEXT) -n))
+# libgdb.a not found, default to libgdb v5
+GDBVER=GDB_V5
+gdbint$(PPUEXT): gdbint.pp
+        @$(ECHO) Warning: libgdb.a not found !
+        @$(ECHO) Using GDB $(GDBVER)
+        $(COMPILER) -d$(GDBVER) gdbint.pp
 endif
 endif
 
 
 gdbcon$(PPUEXT): gdbcon.pp gdbint$(PPUEXT)
 gdbcon$(PPUEXT): gdbcon.pp gdbint$(PPUEXT)
 
 
-gdbver$(EXEEXT): gdbver.pp
-
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 DBGCOM=dbgcom$(OEXT)
 DBGCOM=dbgcom$(OEXT)
 else
 else