# HG changeset patch # User bjarni # Date 1143158083 0 # Node ID 138e38fa6fda82dc7ce314beb87cc2668f942d46 # Parent a19f247b75b61efc8fbca23a881516380c9faa0a (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 Darkvater diff -r a19f247b75b6 -r 138e38fa6fda Makefile --- a/Makefile Thu Mar 23 20:47:56 2006 +0000 +++ b/Makefile Thu Mar 23 23:54:43 2006 +0000 @@ -130,7 +130,7 @@ # Makefile version tag # 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=makefiledir/Makefile.config_writer @@ -485,10 +485,9 @@ endif endif -ifdef OSX -ifndef JAGUAR +ifdef WITH_ICONV LIBS += -liconv -endif +CFLAGS += -DWITH_ICONV endif # enables/disables assert() diff -r a19f247b75b6 -r 138e38fa6fda makefiledir/Makefile.config_writer --- a/makefiledir/Makefile.config_writer Thu Mar 23 20:47:56 2006 +0000 +++ b/makefiledir/Makefile.config_writer Thu Mar 23 23:54:43 2006 +0000 @@ -64,9 +64,11 @@ $(call CONFIG_LINE,) $(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_SDL:=$(WITH_SDL)) $(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,WITH_COCOA:=$(WITH_COCOA)) $(call CONFIG_LINE,) diff -r a19f247b75b6 -r 138e38fa6fda makefiledir/Makefile.libdetection --- a/makefiledir/Makefile.libdetection Thu Mar 23 20:47:56 2006 +0000 +++ b/makefiledir/Makefile.libdetection Thu Mar 23 23:54:43 2006 +0000 @@ -121,3 +121,12 @@ 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 diff -r a19f247b75b6 -r 138e38fa6fda makefiledir/iconv_detector.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/makefiledir/iconv_detector.c Thu Mar 23 23:54:43 2006 +0000 @@ -0,0 +1,18 @@ +/* $Id$ */ + +#include +#include +#include + +/* 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; +} diff -r a19f247b75b6 -r 138e38fa6fda os/macosx/Makefile.setup --- a/os/macosx/Makefile.setup Thu Mar 23 20:47:56 2006 +0000 +++ b/os/macosx/Makefile.setup Thu Mar 23 23:54:43 2006 +0000 @@ -84,3 +84,10 @@ 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