(svn r2542) -Add: [GPMI] Added GPMI (http://sourceforge.net/projects/libgpmi/)
authortruelight
Sun, 10 Jul 2005 14:57:43 +0000
changeset 2033 1eb15b79b6f3
parent 2032 64481deacfb1
child 2034 9da3d8931818
(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.
Makefile
debug.c
debug.h
makefiledir/Makefile.config_writer
openttd.c
--- 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)