From: Dirk Hohndel Date: Fri, 25 Nov 2011 06:32:10 +0000 (-0800) Subject: Improve cross compile support and fix windows.c X-Git-Url: http://git.tdb.fi/?p=ext%2Fsubsurface.git;a=commitdiff_plain;h=042c77c0fc6969d2d969fb68f1db51d33364d034 Improve cross compile support and fix windows.c This should make the Makefile much more robust when cross compiling. The windows.c code is now compile tested but not functionally tested. Signed-off-by: Dirk Hohndel --- diff --git a/Makefile b/Makefile index 0b0dd2f..3f44cb6 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,7 @@ endif # about it if it doesn't. LIBUSB = $(shell $(PKGCONFIG) --libs libusb-1.0 2> /dev/null) -LIBGTK = $(shell $(PKGCONFIG) --libs gtk+-2.0 glib-2.0 gconf-2.0) +LIBGTK = $(shell $(PKGCONFIG) --libs gtk+-2.0 glib-2.0) LIBDIVECOMPUTERCFLAGS = $(LIBDIVECOMPUTERINCLUDES) LIBDIVECOMPUTER = $(LIBDIVECOMPUTERARCHIVE) $(LIBUSB) @@ -84,16 +84,18 @@ LIBXML2 = $(shell $(XML2CONFIG) --libs) LIBXSLT = $(shell $(XSLCONFIG) --libs) XML2CFLAGS = $(shell $(XML2CONFIG) --cflags) GLIB2CFLAGS = $(shell $(PKGCONFIG) --cflags glib-2.0) -GCONF2CFLAGS = $(shell $(PKGCONFIG) --cflags gconf-2.0) GTK2CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-2.0) CFLAGS += $(shell $(XSLCONFIG) --cflags) -UNAME := $(shell uname) +UNAME := $(shell $(CC) -v 2>&1 | grep Target | grep -E -o "linux|darwin|win") -ifeq ($(UNAME), Linux) + +ifeq ($(UNAME), linux) + LIBGCONF2 = $(shell $(PKGCONFIG) --libs gconf-2.0) + GCONF2CFLAGS = $(shell $(PKGCONFIG) --cflags gconf-2.0) OSSUPPORT = linux OSSUPPORT_CFLAGS = $(GTK2CFLAGS) $(GCONF2CFLAGS) -else ifeq ($(UNAME), Darwin) +else ifeq ($(UNAME), darwin) OSSUPPORT = macos OSSUPPORT_CFLAGS = $(GTK2CFLAGS) else @@ -108,7 +110,7 @@ ifneq ($(strip $(LIBXSLT)),) endif endif -LIBS = $(LIBXML2) $(LIBXSLT) $(LIBGTK) $(LIBDIVECOMPUTER) -lpthread +LIBS = $(LIBXML2) $(LIBXSLT) $(LIBGTK) $(LIBGCONF2) $(LIBDIVECOMPUTER) -lpthread OBJS = main.o dive.o profile.o info.o equipment.o divelist.o \ parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o \ diff --git a/windows.c b/windows.c index df04aa0..91323eb 100644 --- a/windows.c +++ b/windows.c @@ -38,7 +38,7 @@ void subsurface_set_conf(char *name, pref_type_t type, const void *value) switch (type) { case PREF_BOOL: /* we simply store the value as DWORD */ - RegSetValueEx(hkey, TEXT(name), 0, REG_DWORD, (DWORD)value, 4); + RegSetValueEx(hkey, TEXT(name), 0, REG_DWORD, value, 4); break; case PREF_STRING: RegSetValueEx(hkey, TEXT(name), 0, REG_SZ, value, strlen(value)); @@ -47,6 +47,7 @@ void subsurface_set_conf(char *name, pref_type_t type, const void *value) const void *subsurface_get_conf(char *name, pref_type_t type) { + LONG success; char *string; int len; @@ -57,7 +58,7 @@ const void *subsurface_get_conf(char *name, pref_type_t type) string = malloc(80); len = 80; success = RegQueryValueEx(hkey, TEXT(name), NULL, NULL, - (LPBYTE) string, &len ); + (LPBYTE) string, (LPDWORD)&len ); if (success != ERROR_SUCCESS) { /* that's what happens the first time we start - just return NULL */ free(string); @@ -72,6 +73,6 @@ const void *subsurface_get_conf(char *name, pref_type_t type) void subsurface_close_conf(void) { if (RegFlushKey(hkey) != ERROR_SUCCESS) - printf("RegFlushKey failed %ld\n"); + printf("RegFlushKey failed \n"); RegCloseKey(hkey); }