changeset 2033:11a31e2e25bb draft

(svn r2542) -Add: [GPMI] Added GPMI (http://sourceforge.net/projects/libgpmi/) support to OpenTTD in preperation of AIScripts (long term). It is OFF by default. Add GPMI:=1 to Makefile.config to enable.
author truelight <truelight@openttd.org>
date Sun, 10 Jul 2005 14:57:43 +0000
parents 7ba3fd3bf03a
children 601fea54c5ae
files Makefile debug.c debug.h makefiledir/Makefile.config_writer openttd.c
diffstat 5 files changed, 47 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile
+++ b/Makefile
@@ -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
+++ b/debug.c
@@ -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
+++ b/debug.h
@@ -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
+++ b/makefiledir/Makefile.config_writer
@@ -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
+++ b/openttd.c
@@ -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)