--- a/Makefile Sun Jul 10 01:25:17 2005 +0000
+++ b/Makefile Sun Jul 10 14:57:43 2005 +0000
@@ -386,6 +386,15 @@
CFLAGS += $(BASECFLAGS)
+# See if we want to enable GPMI
+ifdef GPMI
+CFLAGS += -DGPMI
+GPMI_STATIC_PATH = `gpmi-config --static`
+LDFLAGS += -rdynamic `gpmi-config --libs`
+# Static link paths into the game
+LDFLAGS += $(GPMI_STATIC_PATH)/paths-static.o
+endif
+
ifdef UNIX
CDEFS += -DUNIX
endif
--- a/debug.c Sun Jul 10 01:25:17 2005 +0000
+++ b/debug.c Sun Jul 10 14:57:43 2005 +0000
@@ -15,6 +15,9 @@
int _debug_spritecache_level;
int _debug_oldloader_level;
int _debug_pbs_level;
+#ifdef GPMI
+int _debug_gpmi_level;
+#endif /* GPMI */
int _debug_npf_level;
@@ -46,6 +49,9 @@
DEBUG_LEVEL(spritecache),
DEBUG_LEVEL(oldloader),
DEBUG_LEVEL(pbs),
+#ifdef GPMI
+ DEBUG_LEVEL(gpmi),
+#endif
DEBUG_LEVEL(npf)
};
#undef DEBUG_LEVEL
@@ -120,3 +126,10 @@
return dbgstr;
}
+
+#ifdef GPMI
+void gpmi_debug_openttd(int level, char *s)
+{
+ DEBUG(gpmi, level)("[GPMI] %s", s);
+}
+#endif /* GPMI */
--- a/debug.h Sun Jul 10 01:25:17 2005 +0000
+++ b/debug.h Sun Jul 10 14:57:43 2005 +0000
@@ -15,6 +15,9 @@
extern int _debug_spritecache_level;
extern int _debug_oldloader_level;
extern int _debug_pbs_level;
+#ifdef GPMI
+ extern int _debug_gpmi_level;
+#endif /* GPMI */
extern int _debug_npf_level;
#endif
@@ -23,4 +26,8 @@
void SetDebugString(const char *s);
const char *GetDebugString(void);
+#ifdef GPMI
+void gpmi_debug_openttd(int level, char *s);
+#endif /* GPMI */
+
#endif
--- a/makefiledir/Makefile.config_writer Sun Jul 10 01:25:17 2005 +0000
+++ b/makefiledir/Makefile.config_writer Sun Jul 10 14:57:43 2005 +0000
@@ -29,6 +29,7 @@
$(call CONFIG_LINE,SUPRESS_LANG_ERRORS:=$(SUPRESS_LANG_ERRORS))
$(call CONFIG_LINE,WITH_NETWORK:=$(WITH_NETWORK))
$(call CONFIG_LINE,DEDICATED:=$(DEDICATED))
+ $(call CONFIG_LINE,GPMI:=$(GPMI))
$(call CONFIG_LINE,)
$(call CONFIG_LINE,\# Disable asserts. Leave them on for easier bug finding)
--- a/openttd.c Sun Jul 10 01:25:17 2005 +0000
+++ b/openttd.c Sun Jul 10 14:57:43 2005 +0000
@@ -37,6 +37,11 @@
#include <stdarg.h>
+#ifdef GPMI
+#include <gpmi.h>
+#include <gpmi/packages/paths.h>
+#endif /* GPMI */
+
void GenerateWorld(int mode, uint log_x, uint log_y);
void CallLandscapeTick(void);
void IncreaseDate(void);
@@ -593,6 +598,18 @@
DeterminePaths();
CheckExternalFiles();
+#ifdef GPMI
+ /* Set the debug proc */
+ gpmi_debug_proc = &gpmi_debug_openttd;
+
+ /* Initialize GPMI */
+ gpmi_init();
+
+ /* Add our paths so we can find our own packages */
+ gpmi_path_append(&gpmi_path_modules, "gpmi/modules");
+ gpmi_path_append(&gpmi_path_packages, "gpmi/packages");
+#endif /* GPMI */
+
#ifdef UNIX
// We must fork here, or we'll end up without some resources we need (like sockets)
if (_dedicated_forks)