summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorДилян Палаузов <dilyan.palauzov@aegee.org>2012-02-12 17:23:36 +0100
committerJunio C Hamano <gitster@pobox.com>2012-02-13 00:11:01 -0800
commitb5225286b226759262c0637058528af03226fba6 (patch)
tree527324aee510bb76384c1e7684951c8ba91e43c8
parent828ea97de486c1693d6e4f2c7347acb50235a85d (diff)
downloadgit-b5225286b226759262c0637058528af03226fba6.tar.gz
Makefile: introduce CHARSET_LIB to link with -lcharsetdp/i18n-libcharset
On some systems, the function locale_charset() may not be exported from libiconv but is available from libcharset, and we need -lcharset when linking. Introduce a make variable CHARSET_LIB that can be set to -lcharsetlib on such systems. Also autodetect this in the configure script by first looking for the symbol in libiconv, and then libcharset. Signed-off-by: Дилян Палаузов <dilyan.palauzov@aegee.org>
-rw-r--r--Makefile5
-rw-r--r--config.mak.in1
-rw-r--r--configure.ac10
3 files changed, 16 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a782409306..3b2b804fa3 100644
--- a/Makefile
+++ b/Makefile
@@ -53,6 +53,10 @@ all::
# FreeBSD can use either, but MinGW and some others need to use
# libcharset.h's locale_charset() instead.
#
+# Define CHARSET_LIB to you need to link with library other than -liconv to
+# use locale_charset() function. On some platforms this needs to set to
+# -lcharset
+#
# Define LIBC_CONTAINS_LIBINTL if your gettext implementation doesn't
# need -lintl when linking.
#
@@ -1692,6 +1696,7 @@ endif
ifdef HAVE_LIBCHARSET_H
BASIC_CFLAGS += -DHAVE_LIBCHARSET_H
+ EXTLIBS += $(CHARSET_LIB)
endif
ifdef HAVE_DEV_TTY
diff --git a/config.mak.in b/config.mak.in
index 10698c8292..b2ba7104eb 100644
--- a/config.mak.in
+++ b/config.mak.in
@@ -74,3 +74,4 @@ SNPRINTF_RETURNS_BOGUS=@SNPRINTF_RETURNS_BOGUS@
NO_PTHREADS=@NO_PTHREADS@
PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
PTHREAD_LIBS=@PTHREAD_LIBS@
+CHARSET_LIB=@CHARSET_LIB@
diff --git a/configure.ac b/configure.ac
index 630dbdd19d..24190de616 100644
--- a/configure.ac
+++ b/configure.ac
@@ -836,6 +836,16 @@ AC_CHECK_HEADER([libcharset.h],
[HAVE_LIBCHARSET_H=YesPlease],
[HAVE_LIBCHARSET_H=])
AC_SUBST(HAVE_LIBCHARSET_H)
+# Define CHARSET_LIB if libiconv does not export the locale_charset symbol
+# and libcharset does
+CHARSET_LIB=
+AC_CHECK_LIB([iconv], [locale_charset],
+ [],
+ [AC_CHECK_LIB([charset], [locale_charset],
+ [CHARSET_LIB=-lcharset])
+ ]
+)
+AC_SUBST(CHARSET_LIB)
#
# Define NO_STRCASESTR if you don't have strcasestr.
GIT_CHECK_FUNC(strcasestr,