(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)
This commit is contained in:
truelight 2005-04-24 15:41:01 +00:00
parent 176c155193
commit facd3d1af1
3 changed files with 20 additions and 9 deletions

View File

@ -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)

View File

@ -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)

View File

@ -1,3 +1,5 @@
#define STRGEN
#include "../stdafx.h"
#include <stdio.h>
#include <string.h>