mirror of https://github.com/OpenTTD/OpenTTD
(svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
if detected, WITH_ICONV will be defined in the C code WITH_ICONV is also added to Makefile.config OSX do not use this flag setting in Makefile.config, as it is set at compile time based on target OS version the actual C code is not changed as the current iconv code is hardcoded for OSX and would break if any other OS got iconv This detection system is by request of Darkvaterrelease/0.5
parent
541703a2f6
commit
10936e7034
7
Makefile
7
Makefile
|
@ -130,7 +130,7 @@
|
||||||
|
|
||||||
# Makefile version tag
|
# Makefile version tag
|
||||||
# it checks if the version tag in Makefile.config is the same and force update outdated config files
|
# it checks if the version tag in Makefile.config is the same and force update outdated config files
|
||||||
MAKEFILE_VERSION:=9
|
MAKEFILE_VERSION:=10
|
||||||
|
|
||||||
# CONFIG_WRITER has to be found even for manual configuration
|
# CONFIG_WRITER has to be found even for manual configuration
|
||||||
CONFIG_WRITER=makefiledir/Makefile.config_writer
|
CONFIG_WRITER=makefiledir/Makefile.config_writer
|
||||||
|
@ -485,10 +485,9 @@ LIBS += $(shell $(LIBPNG-CONFIG) --L_opts $(PNGCONFIG_FLAGS))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef OSX
|
ifdef WITH_ICONV
|
||||||
ifndef JAGUAR
|
|
||||||
LIBS += -liconv
|
LIBS += -liconv
|
||||||
endif
|
CFLAGS += -DWITH_ICONV
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# enables/disables assert()
|
# enables/disables assert()
|
||||||
|
|
|
@ -64,9 +64,11 @@ $(MAKE_CONFIG):
|
||||||
$(call CONFIG_LINE,)
|
$(call CONFIG_LINE,)
|
||||||
|
|
||||||
$(call CONFIG_LINE,\# Libs)
|
$(call CONFIG_LINE,\# Libs)
|
||||||
|
$(call CONFIG_LINE,\# WITH_ICONV is not used on OSX since the flag is overwritten. It is always used unless the target OS is 10.2.8)
|
||||||
$(call CONFIG_LINE,WITH_ZLIB:=$(WITH_ZLIB))
|
$(call CONFIG_LINE,WITH_ZLIB:=$(WITH_ZLIB))
|
||||||
$(call CONFIG_LINE,WITH_SDL:=$(WITH_SDL))
|
$(call CONFIG_LINE,WITH_SDL:=$(WITH_SDL))
|
||||||
$(call CONFIG_LINE,WITH_PNG:=$(WITH_PNG))
|
$(call CONFIG_LINE,WITH_PNG:=$(WITH_PNG))
|
||||||
|
$(call CONFIG_LINE,WITH_ICONV:=$(WITH_ICONV))
|
||||||
$(call CONFIG_LINE,STATIC_ZLIB_PATH:=$(STATIC_ZLIB_PATH))
|
$(call CONFIG_LINE,STATIC_ZLIB_PATH:=$(STATIC_ZLIB_PATH))
|
||||||
$(call CONFIG_LINE,WITH_COCOA:=$(WITH_COCOA))
|
$(call CONFIG_LINE,WITH_COCOA:=$(WITH_COCOA))
|
||||||
$(call CONFIG_LINE,)
|
$(call CONFIG_LINE,)
|
||||||
|
|
|
@ -121,3 +121,12 @@ WITH_PNG:=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(shell expr $(CONFIG_VERSION) \< 10), 1)
|
||||||
|
# we need to test if iconv is present on the current system
|
||||||
|
# even though we test on OSX, the read data is actually not used since it relies on target OS and this flag will be overwritten later
|
||||||
|
|
||||||
|
$(shell $(CC) -liconv -o makefiledir/iconv_detector makefiledir/iconv_detector.c 2>/dev/null)
|
||||||
|
WITH_ICONV:=$(shell makefiledir/iconv_detector 2>/dev/null)
|
||||||
|
$(shell rm makefiledir/iconv_detector 2>/dev/null)
|
||||||
|
endif
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <iconv.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* this is a pretty simple app, that will return 1 if it manages to compile and execute
|
||||||
|
* This means that it can be used by the makefile to detect if iconv is present on the current system
|
||||||
|
* no iconv means this file fails and will return nothing */
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
iconv_t cd = iconv_open("","");
|
||||||
|
iconv(cd,NULL,NULL,NULL,NULL);
|
||||||
|
iconv_close(cd);
|
||||||
|
printf("1\n");
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -84,3 +84,10 @@ $(shell $(CC) os/macosx/G5_detector.c -o os/macosx/G5_detector)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# the OSX port need Apple's modified iconv to use the charset UTF-8-MAC. This was added by default in 10.3, but is not present in earlier versions
|
||||||
|
ifdef JAGUAR
|
||||||
|
WITH_ICONV:=
|
||||||
|
else
|
||||||
|
WITH_ICONV:=1
|
||||||
|
endif
|
||||||
|
|
Loading…
Reference in New Issue