changeset 17427:344da84a2203 draft

(svn r22177) -Fix: make sure the right endianness is chosen with cross-compiling, and strndup is available in the binary for more exotic platforms
author rubidium <rubidium@openttd.org>
date Thu, 03 Mar 2011 21:43:24 +0000
parents a453c01574b5
children 524458e6cbc2
files Makefile.setting.in src/core/endian_type.hpp src/os/macosx/osx_stdafx.h src/string.cpp
diffstat 4 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.setting.in
+++ b/Makefile.setting.in
@@ -39,11 +39,15 @@
 	$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
 	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
 
+string.o: $(SRC_DIR)/string.cpp endian_host.h
+	$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
+	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
+
 ini_load.o: $(SRC_DIR)/ini_load.cpp $(SRC_DIR)/core/alloc_func.hpp $(SRC_DIR)/core/mem_func.hpp $(SRC_DIR)/ini_type.h $(SRC_DIR)/string_func.h
 	$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
 	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
 
-$(SETTINGSGEN): alloc_func.o ini_load.o settingsgen.o getoptdata.o
+$(SETTINGSGEN): alloc_func.o ini_load.o settingsgen.o getoptdata.o string.o
 	$(E) '$(STAGE) Compiling and Linking $@'
 	$(Q)$(CXX_BUILD) $(LDFLAGS_BUILD) $^ -o $@
 
--- a/src/core/endian_type.hpp
+++ b/src/core/endian_type.hpp
@@ -26,7 +26,7 @@
 	#define TTD_ENDIAN TTD_LITTLE_ENDIAN
 #elif !defined(TESTING)
 	/* Else include endian[target/host].h, which has the endian-type, autodetected by the Makefile */
-	#if defined(STRGEN)
+	#if defined(STRGEN) || defined(SETTINGSGEN)
 		#include "endian_host.h"
 	#else
 		#include "endian_target.h"
--- a/src/os/macosx/osx_stdafx.h
+++ b/src/os/macosx/osx_stdafx.h
@@ -32,7 +32,7 @@
 #endif
 
 /* Check for mismatching 'architectures' */
-#if !defined(STRGEN) && ((__LP64__ && !defined(_SQ64)) || (!__LP64__ && defined(_SQ64)))
+#if !defined(STRGEN) && !defined(SETTINGSGEN) && ((__LP64__ && !defined(_SQ64)) || (!__LP64__ && defined(_SQ64)))
 #	error "Compiling 64 bits without _SQ64 set! (or vice versa)"
 #endif
 
--- a/src/string.cpp
+++ b/src/string.cpp
@@ -151,11 +151,11 @@
 	*dst = '\0';
 
 	if (dst == last && *src != '\0') {
-#ifdef STRGEN
+#if defined(STRGEN) || defined(SETTINGSGEN)
 		error("String too long for destination buffer");
-#else /* STRGEN */
+#else /* STRGEN || SETTINGSGEN */
 		DEBUG(misc, 0, "String too long for destination buffer");
-#endif /* STRGEN */
+#endif /* STRGEN || SETTINGSGEN */
 	}
 	return dst;
 }