]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Improve cross compile support and fix windows.c
authorDirk Hohndel <dirk@hohndel.org>
Fri, 25 Nov 2011 06:32:10 +0000 (22:32 -0800)
committerDirk Hohndel <dirk@hohndel.org>
Fri, 25 Nov 2011 06:34:39 +0000 (22:34 -0800)
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 <dirk@hohndel.org>
Makefile
windows.c

index 0b0dd2f5f81b8ca9dcf33154af96ffc15221a79e..3f44cb68fc23cc8d70be09471a6720c29c55ecdb 100644 (file)
--- 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 \
index df04aa0f2a198ffaa88731dac85a3b72b5d4b415..91323ebe8cd801759b10bd0fbb2eab5b0465dd10 100644 (file)
--- 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);
 }