"@LIBICU_CFLAGS@: No such file or directory" during libtool command for lib-fts (cross compile)
awl1
awl1 at gmx.net
Thu May 25 13:49:29 EEST 2017
Hello,
I am a complete newbie to dovecot, but do have reasonable experience in
compiling Unix/Linux software.
I am currently trying to do a cross-compile of dovecot-2.29.1 to be used
on my home office Thecus NAS (host: Thecus kernel 2.6.33 on 32-bit Intel
Atom: "i686-nptl-linux-gnu"; my build machine has Ubuntu 16.04.2 LTS)
"from ground up", i.e. I need to build and provide all dovecot
dependencies from within my module.
My compiler toolchain (using gcc-5.2.0) has been set up properly using
ct-ng and works completely fine.
I also have already successfully cross-compiled/built almost all dovecot
dependencies (zlib, bzip2, xz, lz4, openssl-1.0.2, clucene-git,
snowball-git, libexttextcat, icu) - i.e. including icu - and installed
them properly into my cross-compile build root
(/raid/data/module/Dovecot/sys as defined by Thecus module spec).
My dovecot configure/make command is as follows:
===
export PKG_CONFIG=/usr/bin/pkg-config
export PKG_CONFIG_PATH=/raid/data/module/Dovecot/sys/lib/pkgconfig
export
CC=$HOME/Thecus/n4200pro-5.2.0-toolchain/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-gcc
export CFLAGS=""
export LDFLAGS="-L/raid/data/module/Dovecot/sys/lib
-Wl,-rpath,/raid/data/module/Dovecot/sys/lib"
export LIBS="" # -llib
export CPPFLAGS=-I/raid/data/module/Dovecot/sys/include
export
CPP=$HOME/Thecus/n4200pro-5.2.0-toolchain/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-cpp
export
CXX=$HOME/Thecus/n4200pro-5.2.0-toolchain/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-g++
export CXXFLAGS=""
export LT_SYS_LIBRARY_PATH=/raid/data/module/Dovecot/sys/lib
export
CXXCPP=$HOME/Thecus/n4200pro-5.2.0-toolchain/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-cpp
./configure --host i686-nptl-linux-gnu \
--prefix=/raid/data/module/Dovecot/sys \
--libdir=/raid/data/module/Dovecot/sys/lib \
--localstatedir=/raid/data/module/Dovecot/com \
--sharedstatedir=/raid/data/module/Dovecot/var \
--disable-silent-rules \
--with-notify=inotify \
--with-lucene \
--with-stemmer \
--with-textcat \
--with-icu \
--with-solr \
--with-zlib \
--with-bzlib \
--with-lzma \
--with-ssl=openssl \
--with-ssldir=/raid/data/module/Dovecot/sys/etc/ssl \
--with-storages=mdbox,sdbox,maildir,mbox,cydir,imapc,pop3c \
--with-moduledir=/raid/data/module/Dovecot/sys \
--with-gnu-ld \
--with-sysroot=/raid/data/module/Dovecot/sys \
--with-libiconv-prefix=/raid/data/module/Dovecot/sys \
--with-libintl-prefix=/raid/data/module/Dovecot/sys
make
===
and completes configuration just fine, but the make step runs into the
following issue which I am unable to resolve even after several hours of
investigation, so I am completely stuck at this point... :-(
===
(...)
make[3]: Leaving directory
'/home/andreas/Thecus/Dovecot/dovecot-2.2.29.1/src/lib-dovecot'
Making all in lib-fts
make[3]: Entering directory
'/home/andreas/Thecus/Dovecot/dovecot-2.2.29.1/src/lib-fts'
make all-am
make[4]: Entering directory
'/home/andreas/Thecus/Dovecot/dovecot-2.2.29.1/src/lib-fts'
/bin/bash ../../libtool --tag=CC --mode=compile
/home/andreas/Thecus/n4200pro-5.2.0-toolchain/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-gcc
-DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-test
-I../../src/lib-mail -I../../src/lib-fts
-I/raid/data/module/Dovecot/sys/include/libexttextcat/ @LIBICU_CFLAGS@
-DUDHRDIR=\""../../src/lib-fts"\"
-DDATADIR=\"/raid/data/module/Dovecot/sys/share/dovecot\"
-DTEST_STOPWORDS_DIR=\""../../src/lib-fts/stopwords"\"
-I/raid/data/module/Dovecot/sys/include -std=gnu99 -Wall -W
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime
-Wstrict-aliasing=2 -I/raid/data/module/Dovecot/sys/include -MT
fts-filter.lo -MD -MP -MF .deps/fts-filter.Tpo -c -o fts-filter.lo
fts-filter.c
libtool: compile:
/home/andreas/Thecus/n4200pro-5.2.0-toolchain/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-gcc
-DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-test
-I../../src/lib-mail -I../../src/lib-fts
-I/raid/data/module/Dovecot/sys/include/libexttextcat/ @LIBICU_CFLAGS@
-DUDHRDIR=\"../../src/lib-fts\"
-DDATADIR=\"/raid/data/module/Dovecot/sys/share/dovecot\"
-DTEST_STOPWORDS_DIR=\"../../src/lib-fts/stopwords\"
-I/raid/data/module/Dovecot/sys/include -std=gnu99 -Wall -W
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime
-Wstrict-aliasing=2 -I/raid/data/module/Dovecot/sys/include -MT
fts-filter.lo -MD -MP -MF .deps/fts-filter.Tpo -c fts-filter.c -fPIC
-DPIC -o .libs/fts-filter.o
i686-nptl-linux-gnu-gcc: error: @LIBICU_CFLAGS@: No such file or directory
Makefile:714: recipe for target 'fts-filter.lo' failed
make[4]: *** [fts-filter.lo] Error 1
make[4]: Leaving directory
'/home/andreas/Thecus/Dovecot/dovecot-2.2.29.1/src/lib-fts'
Makefile:562: recipe for target 'all' failed
===
As far as I can tell, my pkgconfig file
(/raid/data/module/Dovecot/sys/lib/pkgconfig/icu-i18n.pc) also seems to
be fine:
===
# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
# Copyright (C) 2010-2013, International Business Machines Corporation.
All Rights Reserved.
# CFLAGS contains only anything end users should set
CFLAGS =
# CXXFLAGS contains only anything end users should set
CXXFLAGS = -std=c++11
# DEFS only contains those UCONFIG_CPPFLAGS which are not auto-set by
platform.h
DEFS =
prefix = /raid/data/module/Dovecot/sys
exec_prefix = ${prefix}
#bindir = ${exec_prefix}/bin
libdir = ${exec_prefix}/lib
includedir = ${prefix}/include
baselibs = -lpthread -ldl -lm
#datarootdir = ${prefix}/share
#datadir = ${datarootdir}
#sbindir = ${exec_prefix}/sbin
#mandir = ${datarootdir}/man
#sysconfdir = ${prefix}/etc
UNICODE_VERSION=9.0
ICUPREFIX=icu
ICULIBSUFFIX=
LIBICU=lib${ICUPREFIX}
#SHAREDLIBCFLAGS=-fPIC
pkglibdir=${libdir}/icu${ICULIBSUFFIX}/59.1
#pkgdatadir=${datadir}/icu${ICULIBSUFFIX}/59.1
ICUDATA_NAME = icudt59l
#ICUPKGDATA_DIR=${exec_prefix}/lib
#ICUDATA_DIR=${pkgdatadir}
ICUDESC=International Components for Unicode
Version: 59.1
Cflags: -I${includedir}
# end of icu.pc.in
Description: International Components for Unicode: Internationalization
library
Name: icu-i18n
Requires: icu-uc
Libs: -licui18n
===
Note that even adding a line stating
LIBICU_CFLAGS=-I/raid/data/module/Dovecot/sys/include
(just in order to set it to any non-null value) to the icu-i18n.pc file
and/or setting an environment variable
export LIBICU_CFLAGS=-I/raid/data/module/Dovecot/sys/include
before running configure does NOT help to get rid of the above error...
So do you have any idea why variable substitution for LIBICU_CFLAGS does
not work, and what could be done to work around this?
Many thanks in advance for your kind help with this!
Best regards,
Andreas
awl1 at gmx.net
More information about the dovecot
mailing list