'how to build libxml2 for Android NDK

I try to compile libxml2 for android ndk but I get this error:

libxml2-2.9.8/include/libxml/encoding.h:28:19: fatal error: iconv.h: No such file or directory

Yet my libxml2.mk looks like this:

LOCAL_MODULE    := libxml2

# taken from make file am__libxml2_la_SOURCES_DIST

xml2_flags := \
 -DHAVE_CONFIG_H=1 \
 -DHAVE_ERRNO_H=1 \
 -DHAVE_RAND=0 \
 -DLIBXML_THREAD_ENABLED=1

LOCAL_CFLAGS    := \
 $(xml2_flags)

LOCAL_C_INCLUDES := \
 $(ICONV_PATH)/include \
 $(ICONV_PATH)/libcharset/include \
 $(LZMA_PATH)/src/liblzma/api \
 $(XML2_PATH)/include \
 $(XML2_PATH)
LOCAL_SRC_FILES := \
 $(XML2_PATH)/buf.c \
 $(XML2_PATH)/c14n.c \
 $(XML2_PATH)/catalog.c \
 $(XML2_PATH)/chvalid.c \
 $(XML2_PATH)/debugXML.c \
 $(XML2_PATH)/dict.c \
 $(XML2_PATH)/DOCBparser.c \
 $(XML2_PATH)/encoding.c \
 $(XML2_PATH)/entities.c \
 $(XML2_PATH)/error.c \
 $(XML2_PATH)/globals.c \
 $(XML2_PATH)/hash.c \
 $(XML2_PATH)/HTMLparser.c \
 $(XML2_PATH)/HTMLtree.c \
 $(XML2_PATH)/legacy.c \
 $(XML2_PATH)/list.c \
 $(XML2_PATH)/nanoftp.c \
 $(XML2_PATH)/nanohttp.c \
 $(XML2_PATH)/parser.c \
 $(XML2_PATH)/parserInternals.c \
 $(XML2_PATH)/pattern.c \
 $(XML2_PATH)/relaxng.c \
 $(XML2_PATH)/SAX2.c \
 $(XML2_PATH)/SAX.c \
 $(XML2_PATH)/schematron.c \
 $(XML2_PATH)/threads.c \
 $(XML2_PATH)/tree.c \
 $(XML2_PATH)/trio.c \
 $(XML2_PATH)/triostr.c \
 $(XML2_PATH)/uri.c \
 $(XML2_PATH)/valid.c \
 $(XML2_PATH)/xinclude.c \
 $(XML2_PATH)/xlink.c \
 $(XML2_PATH)/xmlIO.c \
 $(XML2_PATH)/xmlmemory.c \
 $(XML2_PATH)/xmlmodule.c \
 $(XML2_PATH)/xmlreader.c \
 $(XML2_PATH)/xmlregexp.c \
 $(XML2_PATH)/xmlsave.c \
 $(XML2_PATH)/xmlschemas.c \
 $(XML2_PATH)/xmlschemastypes.c \
 $(XML2_PATH)/xmlstring.c \
 $(XML2_PATH)/xmlunicode.c \
 $(XML2_PATH)/xmlwriter.c \
 $(XML2_PATH)/xpath.c \
 $(XML2_PATH)/xpointer.c \
 $(XML2_PATH)/xzlib.c
LOCAL_STATIC_LIBRARIES := iconv liblzma
include $(BUILD_STATIC_LIBRARY)

and my iconv.mk like this

include $(CLEAR_VARS)
# ./configure --build=x86_64-pc-linux-gnu --host=arm-linux-eabi
LOCAL_MODULE := iconv
LOCAL_CFLAGS := \
        -Wno-multichar \
        -D_ANDROID \
        -DBUILDING_LIBICONV \
        -DIN_LIBRARY \
        -DLIBDIR="\"~/android-libs/usr/local/lib\"" 
LOCAL_C_INCLUDES := \
        $(ICONV_PATH) \
        $(ICONV_PATH)/include \
        $(ICONV_PATH)/lib \
        $(ICONV_PATH)/libcharset/include
LOCAL_SRC_FILES := \
        $(ICONV_PATH)/lib/iconv.c \
        $(ICONV_PATH)/lib/relocatable.c \
        $(ICONV_PATH)/libcharset/lib/localcharset.c
include $(BUILD_STATIC_LIBRARY)

I also tried to comment "LIBXML_ICONV_ENABLED"

in the files "/libxml2/include/libxml/xmlversion.h" and "/libxml2/src/config.h"

For me these two makefiles are right, I do not see where the problem lies is there anyone who can help me?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source