Changeset - r10239:d676e472d079
[Not reviewed]
master
0 7 0
smatz - 16 years ago 2008-10-14 19:47:28
smatz@openttd.org
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
7 files changed with 90 insertions and 90 deletions:
0 comments (0 inline, 0 general)
Makefile.in
Show inline comments
 
@@ -82,25 +82,25 @@ config.pwd: $(CONFIG_CACHE_PWD)
 
	$(MAKE) reconfigure
 

	
 
config.cache: $(CONFIG_CACHE_SOURCE_LIST) $(CONFIGURE_FILES)
 
	$(MAKE) reconfigure
 

	
 
reconfigure:
 
ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
 
	@echo "----------------"
 
	@echo "The system detected that source.list or any configure file is altered."
 
	@echo " Going to reconfigure with last known settings..."
 
	@echo "----------------"
 
# Make sure we don't lock config.cache
 
	@$(shell cat config.cache | sed 's#\\ #\\\\ #g') || exit 1
 
	@$(shell cat config.cache | sed 's~\\ ~\\\\ ~g') || exit 1
 
	@echo "----------------"
 
	@echo "Reconfig done. Please re-execute make."
 
	@echo "----------------"
 
else
 
	@echo "----------------"
 
	@echo "Have not found a configuration, please run configure first."
 
	@echo "----------------"
 
	@exit 1
 
endif
 

	
 
clean:
 
	@for dir in $(DIRS); do \
Makefile.msvc
Show inline comments
 
@@ -11,18 +11,18 @@ ifdef VERBOSE
 
	Q =
 
else
 
	Q = @
 
endif
 

	
 
AWK = "awk"
 
ROOT_DIR := $(shell pwd)
 
BIN_DIR = "$(ROOT_DIR)/bin"
 
SRC_DIR = "$(ROOT_DIR)/src"
 
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
 
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
 
TTD = "openttd.exe"
 
TARGET := $(shell echo $(PLATFORM) | sed "s/win64/x64/;s/win32/Win32/")
 
TARGET := $(shell echo $(PLATFORM) | sed "s~win64~x64~;s~win32~Win32~")
 

	
 
all:
 
	$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)
 

	
 
include Makefile.bundle.in
Makefile.src.in
Show inline comments
 
@@ -46,33 +46,33 @@ FILE_DEP := $(CONFIG_CACHE_COMPILER) $(L
 
# Create all dirs and subdirs
 
RES      := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS))))
 

	
 
# Make sure endian_target.h is reasable as if it was in the src/ dir
 
CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR)
 

	
 
ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
 

	
 
# This 'sed' basicly just removes 'const' from the line if it is a 2+D array
 
# For more information, please check:
 
#  http://maillist.openttd.org/pipermail/devs/2007-April/000284.html
 
#  http://maillist.openttd.org/pipermail/devs/2007-February/000248.html
 
GCC295_FIX=sed -r 's/^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$/\1\2 \4\6\8\9/g'
 
GCC295_FIX=sed -r 's~^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$~\1\2 \4\6\8\9~g'
 
# This 'sed' removes the 3rd '4' in the # lines of the -E output of
 
#  gcc 2.95.3 and lower, as it should indicate that it is a C-linkage, but the
 
#  compiler can't handle that information (just don't ask). So we remove it
 
#  and then it compiles happily and without bitching :)
 
# Furthermore gcc 2.95 has some trouble with protected and private when
 
#  accessing the protected/private stuff of the enclosing class (or the
 
#  super class of the enclosing class).
 
GCC295_FIX_2=sed -e 's|\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$|\1|g;s|private:|public:|g;s|protected:|public:|g'
 
GCC295_FIX_2=sed -e 's~\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$~\1~g;s~private:~public:~g;s~protected:~public:~g'
 

	
 
# Check if we want to show what we are doing
 
ifdef VERBOSE
 
	Q =
 
	E = @true
 
else
 
	Q = @
 
	E = @echo
 
endif
 

	
 
# Our default target
 
all: $(BIN_DIR)/$(TTD)
 
@@ -87,25 +87,25 @@ all: $(BIN_DIR)/$(TTD)
 

	
 
$(LANG_OBJS_DIR)/table/strings.h: $(LANG_DIR)/english.txt $(LANG_OBJS_DIR)/$(STRGEN)
 
	$(MAKE) -C $(LANG_OBJS_DIR) table/strings.h
 

	
 
# Always run version detection, so we always have an accurate modified
 
# flag
 
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
 
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d'	')
 

	
 
ifdef REVISION
 
# Use specified revision (which should be of the form "r000").
 
REV := $(REVISION)
 
REV_NR := $(shell echo $(REVISION) | sed "s#[^0-9]##g")
 
REV_NR := $(shell echo $(REVISION) | sed "s~[^0-9]~~g")
 
else
 
# Use autodetected revisions
 
REV      := $(shell echo "$(VERSIONS)" | cut -f 1 -d'	')
 
REV_NR   := $(shell echo "$(VERSIONS)" | cut -f 2 -d'	')
 
endif
 

	
 
# Make sure we have something in REV and REV_NR
 
ifeq ($(REV),)
 
REV := norev000
 
endif
 
ifeq ($(REV_NR),)
 
REV_NR := 0
 
@@ -132,33 +132,33 @@ ifeq ($(filter $(ENDIAN_TARGETS) %.o cle
 
else
 
# In case we want to compile a single target, include the .d file for it
 
ifneq ($(filter %.o, $(MAKECMDGOALS)),)
 
SINGLE_DEP := $(filter %.o, $(MAKECMDGOALS))
 
-include $(SINGLE_DEP:%.o=%.d)
 
endif
 
endif
 

	
 
# Find the deps via GCC. Rarely wrong, but a bit slow
 

	
 
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
 
	$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
 
	$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
 
	$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@
 

	
 
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
 
	$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
 
	$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
 
	$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@
 

	
 
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
 
	$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
 
	$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
 
	$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@
 

	
 
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
 
	$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
 
	$(Q)touch $@
 

	
 
else
 
# The much faster, but can be wrong, dep-check
 
DEP_MASK :=
 
DEPS     := Makefile.dep
 

	
 
# Only include the deps if we are not cleaning
 
ifeq ($(filter $(ENDIAN_TARGETS) depend clean mrproper, $(MAKECMDGOALS)),)
 
@@ -171,25 +171,25 @@ Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC
 
else
 
Makefile.dep: FORCE
 
endif
 
	$(E) '$(STAGE) DEP CHECK (all files)'
 
	$(Q)rm -f Makefile.dep.tmp
 
	$(Q)touch Makefile.dep.tmp
 

	
 
# Calculate the deps via makedepend
 
	$(Q)$(MAKEDEPEND) -f$(SRC_OBJS_DIR)/Makefile.dep.tmp -o.o -Y -v -- $(CFLAGS_MAKEDEP) -- $(SRCS:%=$(SRC_DIR)/%) 2>/dev/null
 

	
 
# Convert x:/... paths to /x/... for mingw
 
ifeq ($(OS), MINGW)
 
	@cat Makefile.dep.tmp | sed 's#\([a-zA-Z]\):\/#\/\1\/#g' > Makefile.dep.tmp.mingw
 
	@cat Makefile.dep.tmp | sed 's~\([a-zA-Z]\):\/~\/\1\/~g' > Makefile.dep.tmp.mingw
 
	@cp Makefile.dep.tmp.mingw Makefile.dep.tmp
 
	@rm -f Makefile.dep.tmp.mingw
 
endif
 

	
 
# Remove all comments and includes that don't start with $(SRC_DIR)
 
# Remove $(SRC_DIR) from object-file-name
 
	@$(AWK) '                           \
 
	/^# DO NOT/ { print $$0 ; next}     \
 
	/^#/ {next}                         \
 
	/:/ {                               \
 
		left = NF - 1;                    \
 
		for (n = 2; n <= NF; n++) {       \
 
@@ -200,25 +200,25 @@ endif
 
		}                                 \
 
		gsub("$(SRC_DIR)/", "", $$1);     \
 
		if (left > 0) {                   \
 
			print $$0;                      \
 
			$$1 = "Makefile.dep:";          \
 
			print $$0;                      \
 
		}                                 \
 
		next                              \
 
	}                                   \
 
	{                                   \
 
		print $$0                         \
 
	}                                   \
 
	' < Makefile.dep.tmp | sed 's#  *# #g;s# $$##' | $(SORT) > Makefile.dep
 
	' < Makefile.dep.tmp | sed 's~  *~ ~g;s~ $$~~' | $(SORT) > Makefile.dep
 

	
 
	$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak
 

	
 
endif
 

	
 
# Avoid problems with deps if a .h/.hpp file is deleted without the deps
 
#  being updated. Now the Makefile continues, the deps are recreated
 
#  and all will be fine.
 
%.h %.hpp:
 
	@true
 

	
 

	
 
@@ -265,28 +265,28 @@ endif
 

	
 
endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
 
	$(E) '$(STAGE) Testing endianness for target'
 
	$(Q)./$(ENDIAN_CHECK) $(ENDIAN_FORCE) > $@
 

	
 
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
 
	$(E) '$(STAGE) Compiling and Linking $@'
 
	$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@
 

	
 
# Revision files
 

	
 
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
 
	$(Q)cat $(SRC_DIR)/rev.cpp.in      | sed "s#@@REVISION@@#$(REV_NR)#g;s#@@VERSION@@#$(REV)#g;s#@@MODIFIED@@#$(MODIFIED)#g;s#@@DATE@@#`date +%d.%m.%y`#g" > $(SRC_DIR)/rev.cpp
 
	$(Q)cat $(SRC_DIR)/rev.cpp.in      | sed "s~@@REVISION@@~$(REV_NR)~g;s~@@VERSION@@~$(REV)~g;s~@@MODIFIED@@~$(MODIFIED)~g;s~@@DATE@@~`date +%d.%m.%y`~g" > $(SRC_DIR)/rev.cpp
 

	
 
$(SRC_DIR)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in
 
	$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s#@@REVISION@@#$(REV_NR)#g;s#@@VERSION@@#$(REV)#g;s#@@DATE@@#`date +%d.%m.%y`#g" > $(SRC_DIR)/ottdres.rc
 
	$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s~@@REVISION@@~$(REV_NR)~g;s~@@VERSION@@~$(REV)~g;s~@@DATE@@~`date +%d.%m.%y`~g" > $(SRC_DIR)/ottdres.rc
 

	
 
FORCE:
 

	
 
depend: $(DEPS)
 

	
 
clean:
 
	$(E) '$(STAGE) Cleaning up object files'
 
	$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
 

	
 
mrproper: clean
 
	$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/ottdres.rc
 

	
config.lib
Show inline comments
 
@@ -381,25 +381,25 @@ detect_params() {
 
}
 

	
 
save_params() {
 
	# Here we save all params, so we can later on do an exact redo of this
 
	#  configuration, without having the user to re-input stuff
 

	
 
	echo "Running configure with following options:" >> $config_log
 
	echo "" >> $config_log
 

	
 
	configure="$CONFIGURE_EXECUTABLE --ignore-extra-parameters"
 
	for p in $save_params_array; do
 
		eval "v=\"\$$p\""
 
		p=`echo "$p" | sed 's#_#-#g;s#\n##g;s# #\\ #g'`
 
		p=`echo "$p" | sed 's~_~-~g;s~\n~~g;s~ ~\\ ~g'`
 
		# Only save those params that aren't empty
 
		configure="$configure --$p=\"$v\""
 
	done
 

	
 
	echo "$configure" >> $config_log
 
	echo "$configure" > config.cache
 
	echo "" >> $config_log
 
}
 

	
 
check_params() {
 
	# Some params want to be in full uppercase, else they might not work as
 
	# expected.. fix that here
 
@@ -837,80 +837,80 @@ check_params() {
 

	
 
			sleep 5
 
		fi
 
	fi
 

	
 
	if [ "$doc_dir" = "1" ]; then
 
		if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
 
			doc_dir="share/doc/openttd"
 
		else
 
			doc_dir="$data_dir/docs"
 
		fi
 
	else
 
		doc_dir="`echo $doc_dir | sed 's#\([^\]\)\\\\ #\1\\\\\\\\ #g;s#\([^\]\) #\1\\\\\\\\ #g'`"
 
		doc_dir="`echo $doc_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
 
	fi
 

	
 
	if [ "$icon_theme_dir" = "1" ]; then
 
		if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
 
			icon_theme_dir="share/icons/hicolor"
 
		else
 
			icon_theme_dir=""
 
		fi
 
	else
 
		icon_theme_dir="`echo $icon_theme_dir | sed 's#\([^\]\)\\\\ #\1\\\\\\\\ #g;s#\([^\]\) #\1\\\\\\\\ #g'`"
 
		icon_theme_dir="`echo $icon_theme_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
 
	fi
 

	
 
	if [ "$personal_dir" = "1" ]; then
 
		if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then
 
			personal_dir="OpenTTD"
 
		elif [ "$os" = "OSX" ]; then
 
			personal_dir="Documents/OpenTTD"
 
		else
 
			personal_dir=".openttd"
 
		fi
 
	else
 
		personal_dir="`echo $personal_dir | sed 's#\([^\]\)\\\\ #\1\\\\\\\\ #g;s#\([^\]\) #\1\\\\\\\\ #g'`"
 
		personal_dir="`echo $personal_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
 
	fi
 

	
 
	if [ "$shared_dir" = "1" ]; then
 
		# we are using default values
 
		if [ "$os" = "OSX" ]; then
 
			shared_dir="/Library/Application\\\\ Support/OpenTTD"
 
		else
 
			shared_dir=""
 
		fi
 
	else
 
		shared_dir="`echo $shared_dir | sed 's#\([^\]\)\\\\ #\1\\\\\\\\ #g;s#\([^\]\) #\1\\\\\\\\ #g'`"
 
		shared_dir="`echo $shared_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
 
	fi
 

	
 
	if [ "$man_dir" = "1" ]; then
 
		# add manpage on UNIX systems
 
		if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OSX" ]; then
 
			man_dir="share/man/man6"
 
		else
 
			man_dir=""
 
		fi
 
	else
 
		man_dir="`echo $man_dir | sed 's#\([^\]\)\\\\ #\1\\\\\\\\ #g;s#\([^\]\) #\1\\\\\\\\ #g'`"
 
		man_dir="`echo $man_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
 
	fi
 

	
 
	if [ "$menu_dir" = "1" ]; then
 
		# add a freedesktop menu item only for some UNIX systems
 
		if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
 
			menu_dir="share/applications"
 
		else
 
			menu_dir=""
 
		fi
 
	else
 
		menu_dir="`echo $menu_dir | sed 's#\([^\]\)\\\\ #\1\\\\\\\\ #g;s#\([^\]\) #\1\\\\\\\\ #g'`"
 
		menu_dir="`echo $menu_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
 
	fi
 

	
 
	# "set_universal_binary_flags" needs to be before "detect_iconv"
 
	set_universal_binary_flags
 
	detect_iconv
 

	
 
	if [ -n "$personal_dir" ]
 
	then
 
		log 1 "personal home directory... $personal_dir"
 
	else
 
		log 1 "personal home directory... none"
 
	fi
 
@@ -1183,25 +1183,25 @@ make_cflags_and_ldflags() {
 
			LIBS="$LIBS `$png_config --ldflags | tr '\n\r' '  '`"
 
		fi
 
	fi
 

	
 
	if [ -n "$fontconfig_config" ]; then
 
		CFLAGS="$CFLAGS -DWITH_FONTCONFIG"
 
		CFLAGS="$CFLAGS `$fontconfig_config --cflags | tr '\n\r' '  '`"
 

	
 
		if [ "$enable_static" != "0" ]; then
 
			if [ "$os" = "OSX" ]; then
 
				# fontconfig_config goes via pkg-config on all systems, which doesn't know --prefix
 
				# Also, despite the reason we link to the .a file ourself (because we can't use -static), we do need to ask pkg-config about possible other deps
 
				LIBS="$LIBS `$fontconfig_config --variable=prefix`/lib/libfontconfig.a `$fontconfig_config --libs --static | sed s#-lfontconfig##`"
 
				LIBS="$LIBS `$fontconfig_config --variable=prefix`/lib/libfontconfig.a `$fontconfig_config --libs --static | sed s~-lfontconfig~~`"
 
			else
 
				LIBS="$LIBS `$fontconfig_config --libs --static | tr '\n\r' '  '`"
 
			fi
 
		else
 
			LIBS="$LIBS `$fontconfig_config --libs | tr '\n\r' '  '`"
 
		fi
 
	fi
 

	
 
	if [ -n "$freetype_config" ]; then
 
		CFLAGS="$CFLAGS -DWITH_FREETYPE"
 
		CFLAGS="$CFLAGS `$freetype_config --cflags | tr '\n\r' '  '`"
 

	
 
@@ -1309,25 +1309,25 @@ make_cflags_and_ldflags() {
 
	CFLAGS="$CFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\""
 

	
 
	log 1 "using CFLAGS... $CFLAGS $CC_CFLAGS"
 
	log 1 "using LDFLAGS... $LIBS $LDFLAGS"
 

	
 
	# Makedepend doesn't like something like: -isysroot /OSX/blabla
 
	#  so convert it to: -isysroot -OSX/blabla. makedepend just ignores
 
	#  any - command it doesn't know, so we are pretty save.
 
	# Lovely hackish, not?
 
	# Btw, this almost always comes from outside the configure, so it is
 
	#  not something we can control.
 
	if [ "$with_makedepend" != "0" ]; then
 
		cflags_makedep="` echo "$CFLAGS" | sed 's# /# -#g'`"
 
		cflags_makedep="` echo "$CFLAGS" | sed 's~ /~ -~g'`"
 
	else
 
		makedepend=""
 
	fi
 

	
 
	if [ "$with_distcc" != "0" ]; then
 
		cc_host="$distcc $cc_host"
 
		cxx_host="$distcc $cxx_host"
 
		log 1 ""
 
		log 1 " NOTICE: remind yourself to use 'make -jN' to make use of distcc"
 
		log 1 ""
 
	fi
 

	
 
@@ -2270,82 +2270,82 @@ make_sed() {
 
	ppc=`$cc_host -dumpmachine | egrep "powerpc|ppc"`
 
	if [ -n "$ppc" ]; then
 
		T_CFLAGS="$T_CFLAGS -DFOUR_BYTE_BOOL"
 
	fi
 

	
 
	SRC_OBJS_DIR="$BASE_SRC_OBJS_DIR/$OBJS_SUBDIR"
 

	
 
	# All the data needed to compile a single target
 
	#  Make sure if you compile multiple targets to
 
	#  use multiple OBJS_DIR, because all in-between
 
	#  binaries are stored in there, and nowhere else.
 
	SRC_REPLACE="
 
		s#!!CC_HOST!!#$cc_host#g;
 
		s#!!CXX_HOST!!#$cxx_host#g;
 
		s#!!CC_BUILD!!#$cc_build#g;
 
		s#!!CXX_BUILD!!#$cxx_build#g;
 
		s#!!WINDRES!!#$windres#g;
 
		s#!!STRIP!!#$strip $strip_arg#g;
 
		s#!!LIPO!!#$lipo#g;
 
		s#!!CC_CFLAGS!!#$CC_CFLAGS#g;
 
		s#!!CFLAGS!!#$T_CFLAGS#g;
 
		s#!!CFLAGS_BUILD!!#$CFLAGS_BUILD#g;
 
		s#!!STRGEN_FLAGS!!#$strgen_flags#g;
 
		s#!!LIBS!!#$LIBS#g;
 
		s#!!LDFLAGS!!#$T_LDFLAGS#g;
 
		s#!!BIN_DIR!!#$BIN_DIR#g;
 
		s#!!ROOT_DIR!!#$ROOT_DIR#g;
 
		s#!!MEDIA_DIR!!#$MEDIA_DIR#g;
 
		s#!!SOURCE_LIST!!#$SOURCE_LIST#g;
 
		s#!!SRC_OBJS_DIR!!#$SRC_OBJS_DIR#g;
 
		s#!!LANG_OBJS_DIR!!#$LANG_OBJS_DIR#g;
 
		s#!!SRC_DIR!!#$SRC_DIR#g;
 
		s#!!OSXAPP!!#$OSXAPP#g;
 
		s#!!LANG_DIR!!#$LANG_DIR#g;
 
		s#!!TTD!!#$TTD#g;
 
		s#!!BINARY_DIR!!#$prefix_dir/$binary_dir#g;
 
		s#!!DATA_DIR!!#$prefix_dir/$data_dir#g;
 
		s#!!DOC_DIR!!#$prefix_dir/$doc_dir#g;
 
		s#!!MAN_DIR!!#$prefix_dir/$man_dir#g;
 
		s#!!ICON_DIR!!#$prefix_dir/$icon_dir#g;
 
		s#!!ICON_THEME_DIR!!#$prefix_dir/$icon_theme_dir#g;
 
		s#!!PERSONAL_DIR!!#$personal_dir#g;
 
		s#!!SHARED_DIR!!#$shared_dir#g;
 
		s#!!INSTALL_DIR!!#$install_dir#g;
 
		s#!!STRGEN!!#$STRGEN#g;
 
		s#!!ENDIAN_CHECK!!#$ENDIAN_CHECK#g;
 
		s#!!ENDIAN_FORCE!!#$endian#g;
 
		s#!!STAGE!!#$STAGE#g;
 
		s#!!MAKEDEPEND!!#$makedepend#g;
 
		s#!!CFLAGS_MAKEDEP!!#$cflags_makedep#g;
 
		s#!!SORT!!#$sort#g;
 
		s#!!CONFIG_CACHE_COMPILER!!#config.cache.compiler#g;
 
		s#!!CONFIG_CACHE_LINKER!!#config.cache.linker#g;
 
		s#!!CONFIG_CACHE_ENDIAN!!#config.cache.endian#g;
 
		s#!!CONFIG_CACHE_SOURCE!!#config.cache.source#g;
 
		s#!!CONFIG_CACHE_VERSION!!#config.cache.version#g;
 
		s#!!CONFIG_CACHE_SOURCE_LIST!!#config.cache.source.list#g;
 
		s#!!CONFIG_CACHE_PWD!!#config.cache.pwd#g;
 
		s#!!LANG_SUPPRESS!!#$lang_suppress#g;
 
		s#!!OBJS_C!!#$OBJS_C#g;
 
		s#!!OBJS_CPP!!#$OBJS_CPP#g;
 
		s#!!OBJS_MM!!#$OBJS_MM#g;
 
		s#!!OBJS_RC!!#$OBJS_RC#g;
 
		s#!!SRCS!!#$SRCS#g;
 
		s#!!OS!!#$os#g;
 
		s#!!CONFIGURE_FILES!!#$CONFIGURE_FILES#g;
 
		s#!!REVISION!!#$revision#g;
 
		s#!!AWK!!#$awk#g;
 
		s#!!GCC295!!#$gcc295#g;
 
		s#!!DISTCC!!#$distcc#g;
 
		s~!!CC_HOST!!~$cc_host~g;
 
		s~!!CXX_HOST!!~$cxx_host~g;
 
		s~!!CC_BUILD!!~$cc_build~g;
 
		s~!!CXX_BUILD!!~$cxx_build~g;
 
		s~!!WINDRES!!~$windres~g;
 
		s~!!STRIP!!~$strip $strip_arg~g;
 
		s~!!LIPO!!~$lipo~g;
 
		s~!!CC_CFLAGS!!~$CC_CFLAGS~g;
 
		s~!!CFLAGS!!~$T_CFLAGS~g;
 
		s~!!CFLAGS_BUILD!!~$CFLAGS_BUILD~g;
 
		s~!!STRGEN_FLAGS!!~$strgen_flags~g;
 
		s~!!LIBS!!~$LIBS~g;
 
		s~!!LDFLAGS!!~$T_LDFLAGS~g;
 
		s~!!BIN_DIR!!~$BIN_DIR~g;
 
		s~!!ROOT_DIR!!~$ROOT_DIR~g;
 
		s~!!MEDIA_DIR!!~$MEDIA_DIR~g;
 
		s~!!SOURCE_LIST!!~$SOURCE_LIST~g;
 
		s~!!SRC_OBJS_DIR!!~$SRC_OBJS_DIR~g;
 
		s~!!LANG_OBJS_DIR!!~$LANG_OBJS_DIR~g;
 
		s~!!SRC_DIR!!~$SRC_DIR~g;
 
		s~!!OSXAPP!!~$OSXAPP~g;
 
		s~!!LANG_DIR!!~$LANG_DIR~g;
 
		s~!!TTD!!~$TTD~g;
 
		s~!!BINARY_DIR!!~$prefix_dir/$binary_dir~g;
 
		s~!!DATA_DIR!!~$prefix_dir/$data_dir~g;
 
		s~!!DOC_DIR!!~$prefix_dir/$doc_dir~g;
 
		s~!!MAN_DIR!!~$prefix_dir/$man_dir~g;
 
		s~!!ICON_DIR!!~$prefix_dir/$icon_dir~g;
 
		s~!!ICON_THEME_DIR!!~$prefix_dir/$icon_theme_dir~g;
 
		s~!!PERSONAL_DIR!!~$personal_dir~g;
 
		s~!!SHARED_DIR!!~$shared_dir~g;
 
		s~!!INSTALL_DIR!!~$install_dir~g;
 
		s~!!STRGEN!!~$STRGEN~g;
 
		s~!!ENDIAN_CHECK!!~$ENDIAN_CHECK~g;
 
		s~!!ENDIAN_FORCE!!~$endian~g;
 
		s~!!STAGE!!~$STAGE~g;
 
		s~!!MAKEDEPEND!!~$makedepend~g;
 
		s~!!CFLAGS_MAKEDEP!!~$cflags_makedep~g;
 
		s~!!SORT!!~$sort~g;
 
		s~!!CONFIG_CACHE_COMPILER!!~config.cache.compiler~g;
 
		s~!!CONFIG_CACHE_LINKER!!~config.cache.linker~g;
 
		s~!!CONFIG_CACHE_ENDIAN!!~config.cache.endian~g;
 
		s~!!CONFIG_CACHE_SOURCE!!~config.cache.source~g;
 
		s~!!CONFIG_CACHE_VERSION!!~config.cache.version~g;
 
		s~!!CONFIG_CACHE_SOURCE_LIST!!~config.cache.source.list~g;
 
		s~!!CONFIG_CACHE_PWD!!~config.cache.pwd~g;
 
		s~!!LANG_SUPPRESS!!~$lang_suppress~g;
 
		s~!!OBJS_C!!~$OBJS_C~g;
 
		s~!!OBJS_CPP!!~$OBJS_CPP~g;
 
		s~!!OBJS_MM!!~$OBJS_MM~g;
 
		s~!!OBJS_RC!!~$OBJS_RC~g;
 
		s~!!SRCS!!~$SRCS~g;
 
		s~!!OS!!~$os~g;
 
		s~!!CONFIGURE_FILES!!~$CONFIGURE_FILES~g;
 
		s~!!REVISION!!~$revision~g;
 
		s~!!AWK!!~$awk~g;
 
		s~!!GCC295!!~$gcc295~g;
 
		s~!!DISTCC!!~$distcc~g;
 
	"
 

	
 
	if [ "$icon_theme_dir" != "" ]; then
 
		SRC_REPLACE="$SRC_REPLACE
 
			s#!!ICON_THEME_DIR!!#$prefix_dir/$icon_theme_dir#g;
 
		"
 
	else
 
		SRC_REPLACE="$SRC_REPLACE
 
			s#!!ICON_THEME_DIR!!##g;
 
		"
 
	fi
 

	
 
@@ -2363,26 +2363,26 @@ make_sed() {
 
		SRC_REPLACE="$SRC_REPLACE
 
			s#!!MENU_DIR!!#$prefix_dir/$menu_dir#g;
 
		"
 
	else
 
		SRC_REPLACE="$SRC_REPLACE
 
			s#!!MENU_DIR!!##g;
 
		"
 
	fi
 
}
 

	
 
generate_menu_item() {
 
	MENU_REPLACE="
 
		s#!!TTD!!#$TTD#g;
 
		s#!!MENU_GROUP!!#$menu_group#g
 
		s~!!TTD!!~$TTD~g;
 
		s~!!MENU_GROUP!!~$menu_group~g
 
	"
 
	echo "Generating menu item..."
 
	mkdir -p media
 
	< $ROOT_DIR/media/openttd.desktop.in sed "$MENU_REPLACE" > media/openttd.desktop
 
}
 

	
 
generate_main() {
 
	STAGE="[MAIN]"
 

	
 
	make_sed
 

	
 
	# Create the main Makefile
configure
Show inline comments
 
@@ -28,47 +28,47 @@ LANG_OBJS_DIR="$OBJS_DIR/lang"
 
BIN_DIR="$PREFIX"
 
SRC_DIR="$ROOT_DIR/src"
 
LANG_DIR="$SRC_DIR/lang"
 
MEDIA_DIR="$ROOT_DIR/media"
 
SOURCE_LIST="$ROOT_DIR/source.list"
 

	
 
if [ "$1" = "--reconfig" ] || [ "$1" = "--reconfigure" ]; then
 
	if [ ! -f "config.cache" ]; then
 
		echo "can't reconfigure, because never configured before"
 
		exit 1
 
	fi
 
	# Make sure we don't lock config.cache
 
	cat config.cache | sed 's#\\ #\\\\ #g' > cache.tmp
 
	cat config.cache | sed 's~\\ ~\\\\ ~g' > cache.tmp
 
	sh cache.tmp
 
	rm -f cache.tmp
 
	exit $?
 
fi
 

	
 
set_default
 
detect_params "$@"
 
check_params
 
save_params
 
make_cflags_and_ldflags
 

	
 
EXE=""
 
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "WINCE" ]; then
 
	EXE=".exe"
 
fi
 

	
 
TTD="openttd$EXE"
 
STRGEN="strgen$EXE"
 
ENDIAN_CHECK="endian_check$EXE"
 

	
 
if [ -z "$sort" ]; then
 
	PIPE_SORT="sed s/a/a/"
 
	PIPE_SORT="sed s~a~a~"
 
else
 
	PIPE_SORT="$sort"
 
fi
 

	
 
if [ ! -f "$LANG_DIR/english.txt" ]; then
 
	echo "Languages not found in $LANG_DIR. Can't continue without it."
 
	echo "Please make sure the dir exists and contains at least english.txt"
 
fi
 

	
 
# Read the source.list and process it
 
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk '
 
	{  }
 
@@ -114,22 +114,22 @@ SRCS="`< $ROOT_DIR/source.list tr '\r' '
 
		}
 
	}
 
' | $PIPE_SORT`"
 

	
 
OBJS_C="`  echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/   { gsub(".c$",   ".o", $0); print $0; }'`"
 
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`"
 
OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.mm$/  { gsub(".mm$",  ".o", $0); print $0; }'`"
 
OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.rc$/  { gsub(".rc$",  ".o", $0); print $0; }'`"
 
SRCS="`    echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`"
 

	
 
# In makefiles, we always use -u for sort
 
if [ -z "$sort" ]; then
 
	sort="sed s/a/a/"
 
	sort="sed s~a~a~"
 
else
 
	sort="$sort -u"
 
fi
 

	
 
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in"
 

	
 
generate_main
 
generate_lang
 
generate_src
findversion.sh
Show inline comments
 
@@ -75,35 +75,35 @@ if [ -d "$ROOT_DIR/.svn" ]; then
 
	if [ -n "$TAG" ]; then
 
		REV=$TAG
 
	else
 
		REV="r$REV_NR"
 
	fi
 
elif [ -d "$ROOT_DIR/.git" ]; then
 
	# We are a git checkout
 
	if [ -n "`git diff-index HEAD \"$SRC_DIR\"`" ]; then
 
		MODIFIED="2"
 
	fi
 
	HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null | cut -c1-8`
 
	REV="g$HASH"
 
	BRANCH=`git branch|grep '[*]' | sed 's#\* ##;s#^master$##'`
 
	REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s#.*(svn r\([0-9]*\)).*#\1#"`
 
	BRANCH=`git branch|grep '[*]' | sed 's~\* ~~;s~^master$~~'`
 
	REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s~.*(svn r\([0-9]*\)).*~\1~"`
 
elif [ -d "$ROOT_DIR/.hg" ]; then
 
	# We are a hg checkout
 
	if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
 
		MODIFIED="2"
 
	fi
 
	HASH=`LC_ALL=C hg parents 2>/dev/null | head -n 1 | cut -d: -f3 | cut -c1-8`
 
	REV="h$HASH"
 
	BRANCH=`hg branch | sed 's#^default$##'`
 
	REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s#.*(svn r\([0-9]*\)).*#\1#"`
 
	BRANCH=`hg branch | sed 's~^default$~~'`
 
	REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s~.*(svn r\([0-9]*\)).*~\1~"`
 
else
 
	# We don't know
 
	MODIFIED="1"
 
	BRANCH=""
 
	REV=""
 
	REV_NR=""
 
fi
 

	
 
if [ "$MODIFIED" -eq "2" ]; then
 
	REV="${REV}M"
 
fi
 

	
projects/generate
Show inline comments
 
@@ -47,25 +47,25 @@ safety_check() {
 
			echo "Because MSVC uses one single directory for all object files, it"
 
			echo "cannot handle filenames with the same name inside the same project."
 
			echo "Please rename either one of the file and try generating again."
 
			echo ""
 
			echo " !! ERROR !!"
 
			exit 1
 
		fi
 
		li="$i"
 
	done
 
}
 

	
 
grep '\.h' "$ROOT_DIR/source.list" | grep -v '../objs/langs/table/strings.h' | sort > tmp.headers.source.list
 
find "$ROOT_DIR/src" \( -iname "*.h" -or -iname "*.hpp" \) -and -not -ipath "*/.svn/*" | sed "s@$ROOT_DIR/src/@@" | sort > tmp.headers.src
 
find "$ROOT_DIR/src" \( -iname "*.h" -or -iname "*.hpp" \) -and -not -ipath "*/.svn/*" | sed "s~$ROOT_DIR/src/~~" | sort > tmp.headers.src
 
if [ -n "`diff tmp.headers.source.list tmp.headers.src`" ]; then
 
	echo "The following headers are missing in source.list and not in /src/ or vice versa."
 
	diff tmp.headers.source.list tmp.headers.src | grep '[<>]' | sort
 
	echo ""
 
fi
 
rm tmp.headers.*
 

	
 
load_main_data() {
 
	# Read the source.list and process it
 
	RES="`cat $1 | tr '\r' '\n' | awk '
 
		/^(	*)#end/  { if (deep == skip) { skip -= 1; } deep -= 1; next; }
 
		/^(	*)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
 
@@ -129,25 +129,25 @@ load_main_data() {
 
			}
 
		}
 
		END { print "		</Filter>"; }
 
	'`"
 

	
 
	eval "$2=\"\$RES\""
 
}
 

	
 
load_lang_data() {
 
	RES=""
 
	for i in `ls $1`
 
	do
 
		i=`basename $i | sed s/.txt$//g`
 
		i=`basename $i | sed s~.txt$~~g`
 
		RES="$RES
 
		<File
 
			RelativePath=\"..\\src\\lang\\"$i".txt\"
 
			>
 
			<FileConfiguration
 
				Name=\"Debug|Win32\"
 
				>
 
				<Tool
 
					Name=\"VCCustomBuildTool\"
 
					Description=\"Generating "$i" language file\"
 
					CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang &quot;\$(InputPath)&quot;&#x0D;&#x0A;\"
 
					AdditionalDependencies=\"\"
0 comments (0 inline, 0 general)