summaryrefslogtreecommitdiff
path: root/makefiledir
diff options
context:
space:
mode:
Diffstat (limited to 'makefiledir')
-rw-r--r--makefiledir/Makefile.config_writer2
-rw-r--r--makefiledir/Makefile.libdetection9
-rw-r--r--makefiledir/iconv_detector.c18
3 files changed, 29 insertions, 0 deletions
diff --git a/makefiledir/Makefile.config_writer b/makefiledir/Makefile.config_writer
index 581411c54..60c6727ba 100644
--- a/makefiledir/Makefile.config_writer
+++ b/makefiledir/Makefile.config_writer
@@ -64,9 +64,11 @@ $(MAKE_CONFIG):
$(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 --git a/makefiledir/Makefile.libdetection b/makefiledir/Makefile.libdetection
index 237c02f98..47d8edee1 100644
--- a/makefiledir/Makefile.libdetection
+++ b/makefiledir/Makefile.libdetection
@@ -121,3 +121,12 @@ WITH_PNG:=
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 --git a/makefiledir/iconv_detector.c b/makefiledir/iconv_detector.c
new file mode 100644
index 000000000..709656cb9
--- /dev/null
+++ b/makefiledir/iconv_detector.c
@@ -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;
+}