summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2005-04-24 15:41:01 +0000
committertruelight <truelight@openttd.org>2005-04-24 15:41:01 +0000
commitfacd3d1af1e26c0bb25c109f0b0b2d9e65275535 (patch)
tree5246464713ebce7cbbd09cc0c5a270b2e4ce6ef3
parent176c155193f11788e473cb09ad5cc56313949fc4 (diff)
downloadopenttd-facd3d1af1e26c0bb25c109f0b0b2d9e65275535.tar.xz
(svn r2225) -Fix: split the endian-detection to target/host. Now cross-compiling
on i386-linux for MacOSX should also work for the language-files (strgen issues)
-rw-r--r--Makefile19
-rw-r--r--stdafx.h8
-rw-r--r--strgen/strgen.c2
3 files changed, 20 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index ac865d757..5997ef5d1 100644
--- a/Makefile
+++ b/Makefile
@@ -778,10 +778,14 @@ OSX_MIDI_PLAYER_FILE:=os/macosx/OpenTTDMidi.class
endif
-all: endian.h $(UPDATECONFIG) $(LANGS) $(TTD) $(OSX) $(endwarnings)
+all: endian_target.h endian_host.h $(UPDATECONFIG) $(LANGS) $(TTD) $(OSX) $(endwarnings)
-endian.h: $(ENDIAN_CHECK)
- @echo '===> Testing endianness'
+endian_host.h: $(ENDIAN_CHECK)
+ @echo '===> Testing endianness for host'
+ $(Q)./$(ENDIAN_CHECK) > $@
+
+endian_target.h: $(ENDIAN_CHECK)
+ @echo '===> Testing endianness for target'
$(Q)./$(ENDIAN_CHECK) $(ENDIAN_FORCE) > $@
$(ENDIAN_CHECK): endian_check.c
@@ -814,7 +818,7 @@ $(64_bit_warnings):
$(warning 64 bit CPUs will get some 64 bit specific bugs!)
$(warning If you see any bugs, include in your bug report that you use a 64 bit CPU)
-$(STRGEN): strgen/strgen.c endian.h
+$(STRGEN): strgen/strgen.c endian_host.h
$(call cmd,compile_link)
table/strings.h: lang/english.txt $(STRGEN)
@@ -919,7 +923,8 @@ FORCE:
clean:
@echo '===> Cleaning up'
- $(Q)rm -rf .deps *~ $(TTD) $(STRGEN) core table/strings.h $(LANGS) $(OBJS) $(OSX_MIDI_PLAYER_FILE) endian.h $(ENDIAN_CHECK)
+# endian.h is out-dated and no longer in use, so it can be removed soon
+ $(Q)rm -rf .deps *~ $(TTD) $(STRGEN) core table/strings.h $(LANGS) $(OBJS) $(OSX_MIDI_PLAYER_FILE) endian.h endian_host.h endian_target.h $(ENDIAN_CHECK)
mrproper: clean
$(Q)rm -rf $(MAKE_CONFIG)
@@ -999,11 +1004,11 @@ DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
# first compilation round as we just build everything at that time anyway,
# therefore we do not need to watch deps.
-%.o: %.c $(MAKE_CONFIG) endian.h table/strings.h
+%.o: %.c $(MAKE_CONFIG) endian_target.h table/strings.h
$(call cmd,c_compile)
@mv $(<:%.c=%.d) $(<:%.c=.deps/%.d)
-%.o: %.cpp $(MAKE_CONFIG) endian.h table/strings.h
+%.o: %.cpp $(MAKE_CONFIG) endian_target.h table/strings.h
$(call cmd,cxx_compile)
@mv $(<:%.cpp=%.d) $(<:%.cpp=.deps/%.d)
diff --git a/stdafx.h b/stdafx.h
index 982c71cf4..22c7024c1 100644
--- a/stdafx.h
+++ b/stdafx.h
@@ -116,8 +116,12 @@ int CDECL vsnprintf(char *str, size_t size, const char *format, va_list ap);
#if defined(WIN32) || defined(__OS2__)
#define TTD_LITTLE_ENDIAN
#else
-// Else include endian.h, which has the endian-type, autodetected by the Makefile
- #include "endian.h"
+// Else include endian[target/host].h, which has the endian-type, autodetected by the Makefile
+ #if defined(STRGEN)
+ #include "endian_host.h"
+ #else
+ #include "endian_target.h"
+ #endif
#endif
#if defined(UNIX)
diff --git a/strgen/strgen.c b/strgen/strgen.c
index 805da6755..52540110b 100644
--- a/strgen/strgen.c
+++ b/strgen/strgen.c
@@ -1,3 +1,5 @@
+#define STRGEN
+
#include "../stdafx.h"
#include <stdio.h>
#include <string.h>