summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-11-24 22:32:10 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-11-24 22:34:39 -0800
commit042c77c0fc6969d2d969fb68f1db51d33364d034 (patch)
tree61e61ce37755029d5f370aadb2d4a7b2e05324a4
parent290ce56d0181c0c7e7d6e1af3eb27d3015cffca7 (diff)
downloadsubsurface-042c77c0fc6969d2d969fb68f1db51d33364d034.tar.gz
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 <dirk@hohndel.org>
-rw-r--r--Makefile14
-rw-r--r--windows.c7
2 files changed, 12 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 0b0dd2f5f..3f44cb68f 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 df04aa0f2..91323ebe8 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);
}