summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2011-03-03 21:43:24 +0000
committerrubidium <rubidium@openttd.org>2011-03-03 21:43:24 +0000
commit59e42ea17823d5ab1a46808965d74a2b27a04ea4 (patch)
treed9a7c204fb555f5b39020f5e1a37bd34d75f12be
parent25c7bdde662fc757be58d7dec52112439db67469 (diff)
downloadopenttd-59e42ea17823d5ab1a46808965d74a2b27a04ea4.tar.xz
(svn r22177) -Fix: make sure the right endianness is chosen with cross-compiling, and strndup is available in the binary for more exotic platforms
-rw-r--r--Makefile.setting.in6
-rw-r--r--src/core/endian_type.hpp2
-rw-r--r--src/os/macosx/osx_stdafx.h2
-rw-r--r--src/string.cpp6
4 files changed, 10 insertions, 6 deletions
diff --git a/Makefile.setting.in b/Makefile.setting.in
index 607baccb6..7f70bb37a 100644
--- a/Makefile.setting.in
+++ b/Makefile.setting.in
@@ -39,11 +39,15 @@ getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h
$(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 $@
diff --git a/src/core/endian_type.hpp b/src/core/endian_type.hpp
index 7c00d91fa..ad0b814c6 100644
--- 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"
diff --git a/src/os/macosx/osx_stdafx.h b/src/os/macosx/osx_stdafx.h
index 403269dbd..9c1b5b31d 100644
--- 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
diff --git a/src/string.cpp b/src/string.cpp
index 46ed9e9d7..1ba6f15fb 100644
--- a/src/string.cpp
+++ b/src/string.cpp
@@ -151,11 +151,11 @@ char *strecpy(char *dst, const char *src, const char *last)
*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;
}