diff options
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | debug.c | 13 | ||||
-rw-r--r-- | debug.h | 7 | ||||
-rw-r--r-- | makefiledir/Makefile.config_writer | 1 | ||||
-rw-r--r-- | openttd.c | 17 |
5 files changed, 47 insertions, 0 deletions
@@ -386,6 +386,15 @@ endif 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 @@ -15,6 +15,9 @@ int _debug_net_level; 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 @@ typedef struct DebugLevel { 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 @@ const char *GetDebugString(void) return dbgstr; } + +#ifdef GPMI +void gpmi_debug_openttd(int level, char *s) +{ + DEBUG(gpmi, level)("[GPMI] %s", s); +} +#endif /* GPMI */ @@ -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 CDECL debug(const char *s, ...); void SetDebugString(const char *s); const char *GetDebugString(void); +#ifdef GPMI +void gpmi_debug_openttd(int level, char *s); +#endif /* GPMI */ + #endif diff --git a/makefiledir/Makefile.config_writer b/makefiledir/Makefile.config_writer index 615517f98..caadb188b 100644 --- a/makefiledir/Makefile.config_writer +++ b/makefiledir/Makefile.config_writer @@ -29,6 +29,7 @@ $(MAKE_CONFIG): $(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) @@ -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 @@ int ttd_main(int argc, char* argv[]) 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) |