1# Copyright (C) 2006-2014 David Sugar, Tycho Softworks.
2# Copyright (C) 2015 Cherokees of Idaho.
3#
4# This file is free software; as a special exception the author gives
5# unlimited permission to copy and/or distribute it, with or without
6# modifications, as long as this notice is preserved.
7#
8# This program is distributed in the hope that it will be useful, but
9# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
10# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
12AC_INIT([ucommon],[7.0.0])
13AC_CONFIG_SRCDIR([inc/ucommon/ucommon.h])
14
15LT_VERSION="8:0:0"
16OPENSSL_REQUIRES="0.9.7"
17
18AC_CONFIG_AUX_DIR(autoconf)
19AC_CONFIG_MACRO_DIR([m4])
20AC_CANONICAL_SYSTEM
21AC_PROG_CPP
22AC_PROG_CC
23AC_PROG_CXXCPP
24AC_PROG_CXX
25AC_LIBTOOL_WIN32_DLL
26AM_PROG_LIBTOOL
27AM_INIT_AUTOMAKE([dist-zip subdir-objects])
28AM_CONFIG_HEADER(ucommon-config.h)
29
30AC_C_RESTRICT
31AC_C_VOLATILE
32AC_C_INLINE
33
34UCOMMON_FLAGS=""
35UCOMMON_MODEL="CXX"
36UCOMMON_LIBC="-lc"
37UCOMMON_LIBS=""
38OPENSSL_LINK=""
39MODULE_FLAGS="-module -shared -avoid-version"
40
41CHECKFLAGS="$CHECKFLAGS"
42
43case "$with_crypto" in
44ssl|openssl)
45    ssl="openssl"
46    ;;
47gnutls|gnu)
48    ssl="gnutls"
49    ;;
50none|nossl)
51    ssl="nossl"
52    ;;
53*)
54    ssl="detect"
55    ;;
56esac
57
58have_gettext="no"
59socket_lib=""
60posix4_lib=""
61rt_lib=""
62
63test -z "$localedir" && localedir='${datadir}/locale'
64
65AC_DEFUN([AC_SUBST_DIR], [
66        ifelse($2,,,$1="[$]$2")
67        result="***"
68        prior="A"
69        while test "$prior" != "$result" ; do
70                prior=`(echo "[$]$1")`
71                $1=`(
72                test "x$prefix" = xNONE && prefix="$ac_default_prefix"
73                test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
74                eval echo \""[$]$1"\"
75                )`
76                result=`(echo "[$]$1")`
77        done
78        AC_SUBST($1)
79])
80
81# for very old gcc and for minix we disable full ucommon build by default
82# we also disable for mingw32 or when no "shared" library support because
83# libstdc++ is not dll and really bloats in linkage of plugins.  Any case,
84# you can always override with --enable-stdcpp...
85
86if test -z "$enable_stdcpp" ; then
87    if test "x$GCC" = "xyes" ; then
88        gccver=`$CC -dumpversion | cut -f1 -d.`
89    fi
90    if test -z "$gccver" ; then
91        gccver="3"
92    fi
93    if test "$gccver" -lt "3" ; then
94        enable_stdcpp="no"
95    fi
96    if test "x$enable_shared" = "xno" ; then
97        enable_stdcpp="no"
98    fi
99    case "$target_os" in
100    *minix*|mingw*)
101        enable_stdcpp="no"
102        ;;
103    esac
104fi
105
106case "$target_os" in
107osf*|cygwin*|mingw*)
108    MODULE_FLAGS="-module -shared -no-undefined"
109    ;;
110darwin*)
111    MODULE_FLAGS="-dynamic -bundle -undefined suppress -flat_namespace -read_only_relocs suppress"
112    ;;
113esac
114
115AC_ARG_ENABLE(posix-timers,
116    AC_HELP_STRING([--enable-posix-timers],
117        [enable posix timers]))
118
119if test "x$enable_posix_timers" = "xyes" ; then
120    UCOMMON_FLAGS="$UCOMMON_FLAGS -DPOSIX_TIMERS"
121fi
122
123AC_ARG_ENABLE(utils, [  --disable-utils Do not build the utilities])
124if test x"$enable_utils" == "xno"; then
125    AM_CONDITIONAL([BUILD_UTILS], false),
126else
127    AM_CONDITIONAL([BUILD_UTILS], true)
128fi
129
130AC_ARG_ENABLE(stdcpp,
131    AC_HELP_STRING([--disable-stdcpp],
132        [compile without stdc++ runtime overhead]))
133
134    AC_MSG_CHECKING([full c++ support and linking model])
135
136if test "x$enable_stdcpp" = "xno" ; then
137    UCOMMON_MODEL="CC"
138    AC_MSG_RESULT(no)
139    COMPAT=""
140    COMPAT_PC=""
141    COMPAT_CONFIG=""
142else
143    COMPAT="commoncpp"
144    COMPAT_PC="commoncpp.pc"
145    COMPAT_CONFIG="commoncpp-config"
146    AC_MSG_RESULT(yes)
147fi
148
149AC_ARG_WITH(sslstack,
150    AC_HELP_STRING([--with-sslstack=lib],[specify which ssl stack to build]),[
151    if test x$with_sslstack != x ; then
152        ssl="${with_sslstack}" ; fi
153])
154
155AC_ARG_WITH(libc,
156    AC_HELP_STRING([--with-libc=path],[specify path to alternate libc]),[
157    if test x$with_libc != x ; then
158        clib=`echo ${with_libc} | sed s/[-]l//`
159        UCOMMON_LIBC=-l${clib} ; fi
160])
161
162AC_ARG_ENABLE(debug,
163    AC_HELP_STRING([--enable-debug],[compile for debugging]))
164if test -z "$enable_debug" ; then
165    enable_debug="no"
166elif test $enable_debug = "yes" ; then
167    CXXFLAGS="${CXXFLAGS} -g -DDEBUG"
168fi
169
170AH_BOTTOM([
171#include <ucommon/platform.h>
172])
173
174threading="none"
175clib=`echo ${UCOMMON_LIBC} | sed s/[-]l//`
176tlib=""
177
178AC_CHECK_HEADERS(stdint.h poll.h sys/mman.h sys/shm.h sys/poll.h sys/timeb.h endian.h sys/filio.h dirent.h sys/resource.h wchar.h netinet/in.h net/if.h)
179AC_CHECK_HEADERS(mach/clock.h mach-o/dyld.h linux/version.h sys/inotify.h sys/event.h syslog.h sys/wait.h termios.h termio.h fcntl.h unistd.h)
180AC_CHECK_HEADERS(sys/param.h sys/lockf.h sys/file.h dlfcn.h stdatomic.h stdalign.h)
181
182AC_CHECK_HEADER(regex.h, [
183    AC_DEFINE(HAVE_REGEX_H, [1], [have regex header])
184    AC_CHECK_LIB(regex, regfree, [
185        UCOMMON_LIBS="$UCOMMON_LIBS -lregex"
186    ])
187])
188
189AC_CHECK_LIB(msvcrt, fopen, [
190    threading="msw"
191    clib="msvcrt"
192    UCOMMON_LIBS="--enable-stdcall-fixup $UCOMMON_LIBS -lmingwex -lmingw32 -lcrypt32 -ladvapi32 -luser32 -lws2_32 -lwsock32 -lkernel32"
193    UCOMMON_LIBC="-lmsvcrt -lgcc"
194    OPENSSL_LINK="-lgdi32"
195    AC_DEFINE(HAVE_INET_NTOP, [1], [have inet_ntop])
196    AC_DEFINE(HAVE_GETADDRINFO, [1], [have getaddrinfo])
197],[
198    AC_CHECK_LIB(gcc, __modsi3, [
199        UCOMMON_LIBC="$UCOMMON_LIBC -lgcc"
200    ])
201    AC_CHECK_LIB($clib, socketpair, [
202        AC_DEFINE(HAVE_SOCKETPAIR, [1], [have socketpair])
203    ],[
204            AC_CHECK_LIB(socket, socketpair, [AC_DEFINE(HAVE_SOCKETPAIR, [1], [have socketpair])])
205    ])
206    AC_CHECK_LIB($clib, getaddrinfo, [
207        AC_DEFINE(HAVE_GETADDRINFO, [1], [have getaddrinfo])
208    ],[
209            AC_CHECK_LIB(socket, getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, [1], [have getaddrinfo])])
210    ])
211    AC_CHECK_LIB($clib, gethostbyname2, [
212        AC_DEFINE(HAVE_GETHOSTBYNAME2, [1], [have gethostbyname2])
213    ],[
214            AC_CHECK_LIB(socket, gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2, [1], [have gethostbyname2])])
215    ])
216
217    AC_CHECK_LIB($clib, inet_ntop, [
218        AC_DEFINE(HAVE_INET_NTOP, [1], [have inet ntop])
219    ],[
220        AC_CHECK_LIB(socket, inet_ntop, [
221            AC_DEFINE(HAVE_INET_NTOP, [1], [have inet ntop])
222        ],[
223            AC_CHECK_LIB(nsl, inet_ntop, [
224                AC_DEFINE(HAVE_INET_NTOP, [1], [have inet_ntop])
225                socket_lib="$socket_lib -lnsl"
226            ])
227        ])
228    ])
229
230    AC_CHECK_LIB(socket, socket,[
231        AC_CHECK_LIB(socket, socketpair,[
232            AC_DEFINE(HAVE_SOCKETPAIR, [1], [have socketpair in libsocket])
233        ])
234        socket_lib="-lsocket"
235    ])
236])
237
238AC_CHECK_LIB($clib, lstat, [
239    AC_DEFINE(HAVE_LSTAT, [1], [have lstat])
240])
241
242AC_CHECK_LIB($clib, strcoll, [
243    AC_DEFINE(HAVE_STRCOLL, [1], [string collation])
244])
245
246AC_CHECK_LIB($clib, strlcpy, [
247    AC_DEFINE(HAVE_STRLCPY, [1], [string lcpy])
248])
249
250AC_CHECK_LIB($clib, stricmp, [
251    AC_DEFINE(HAVE_STRICMP, [1], [string icmp])
252])
253
254AC_CHECK_LIB($clib, stristr, [
255    AC_DEFINE(HAVE_STRISTR, [1], [string istr])
256])
257
258AC_CHECK_LIB($clib, sysconf, [
259    AC_DEFINE(HAVE_SYSCONF, [1], [system config])
260])
261
262AC_CHECK_LIB($clib, posix_memalign, [
263    AC_DEFINE(HAVE_POSIX_MEMALIGN, [1], [posix memory alignment])
264])
265
266AC_CHECK_LIB($clib, aligned_alloc, [
267    AC_DEFINE(HAVE_ALIGNED_ALLOC, [1], [aligned memory allocation])
268])
269
270AC_CHECK_LIB($clib, dlopen,,[
271    AC_CHECK_LIB(dl, dlopen, [UCOMMON_LIBS="$UCOMMON_LIBS -ldl"],[
272        AC_CHECK_LIB(compat, dlopen, [UCOMMON_LIBS="$UCOMMON_LIBS -lcompat"])
273        AC_CHECK_LIB(dld, shl_load,[
274            AC_DEFINE(HAVE_SHL_LOAD, [1], [alternate dyn loader])
275            UCOMMON_LIBS="$UCOMMON_LIBS -ldld"
276        ])
277    ])
278])
279
280PTHREAD_FLAGS=""
281
282if test "$enable_shared" = "no" ; then
283    UCOMMON_FLAGS="$UCOMMON_FLAGS -DUCOMMON_STATIC" ; fi
284
285AC_ARG_ENABLE(pth, [
286    AC_HELP_STRING([--enable-pth],[always use GNU pth for threading])
287])
288
289if test "$threading" = "none" ; then
290    if test "$enable_pth" != "yes" ; then
291        AC_CHECK_HEADER(pthread.h, [
292            PTHREAD_FLAGS="-mt -pthread -pthreads"
293            AC_CHECK_LIB(pthread,pthread_create,[
294                tlib="pthread"
295                UCOMMON_LIBS="$UCOMMON_LIBS -lpthread"
296            ])
297            if test -z "$tlib" ; then
298                AC_CHECK_LIB($clib, pthread_create, [tlib="$clib"])
299            fi
300            if test -z "$tlib" ; then
301                AC_CHECK_LIB(c_r, pthread_create, [
302                    tlib="c_r"
303                    if test "$clib" = "c" ; then
304                        AC_CHECK_LIB(c_r, malloc, [clib="c_r"])
305                    fi
306                ])
307            fi
308            if test ! -z "$tlib" ; then
309                AC_CHECK_LIB($tlib,pthread_condattr_setclock,[
310                    AC_DEFINE(HAVE_PTHREAD_CONDATTR_SETCLOCK, [1], ["pthread clocking"])
311                ])
312                AC_CHECK_LIB($tlib,pthread_setconcurrency,[
313                    AC_DEFINE(HAVE_PTHREAD_SETCONCURRENCY, [1], ["pthread concurrency"])
314                ])
315
316                AC_CHECK_LIB($tlib,pthread_yield,[
317                    AC_DEFINE(HAVE_PTHREAD_YIELD, [1], ["pthread yield"],[
318                        AC_CHECK_LIB($tlib,pthread_yield_np,[
319                            AC_DEFINE(HAVE_PTHREAD_YIELD_NP, [1], ["pthread yield np"])
320                        ])
321                    ])
322                ])
323
324                AC_CHECK_LIB($tlib,pthread_delay,[
325                    AC_DEFINE(HAVE_PTHREAD_DELAY, [1], ["pthread delay"])
326                ])
327                AC_CHECK_LIB($tlib,pthread_delay_np,[
328                    AC_DEFINE(HAVE_PTHREAD_DELAY_NP, [1], ["pthread delay np"])
329                ])
330                AC_CHECK_LIB($tlib,pthread_setschedprio,[
331                    AC_DEFINE(HAVE_PTHREAD_SETSCHEDPRIO, [1], ["pthread scheduling"])
332                ])
333                # Missing from Android's pthread implementation but the default
334                # values for newly created threads corresponds to the one we set
335                AC_CHECK_LIB($tlib,pthread_attr_setinheritsched,[
336                    AC_DEFINE(HAVE_PTHREAD_ATTR_SETINHRITSCHED, [1],
337                              ["pthread inherit scheduling attribute"])
338                ])
339            fi
340        ],[
341            AC_CHECK_HEADER(windows.h,, [
342                AC_MSG_ERROR("pthread support required")
343            ])
344        ])
345    else
346        AC_MSG_ERROR("thread support required")
347    fi
348fi
349
350for func in ftok shm_open nanosleep clock_nanosleep clock_gettime strerror_r localtime_r gmtime_r posix_fadvise ftruncate pwrite setgroups setpgrp setlocale gettext execvp atexit realpath symlink readlink waitpid wait4 endgrent strlcpy; do
351    found="no"
352    AC_CHECK_FUNC($func,[
353        found=$func
354    ],[
355        AC_CHECK_LIB(posix4, $func, [
356            found=$func
357            posix4_lib="-lposix4"
358        ],[
359            AC_CHECK_LIB(rt, $func, [
360                found=$func
361                rt_lib="-lrt"
362            ],[
363                if test ! -z "$tlib" ; then
364                    AC_CHECK_LIB($tlib, $func, [
365                        found=$func
366                    ])
367                fi
368            ])
369        ])
370    ])
371    case $found in
372    setgroups)
373        AC_DEFINE(HAVE_SETGROUPS, [1], [setgroups support])
374        ;;
375    shm_open)
376        AC_DEFINE(HAVE_SHM_OPEN, [1], [shared memory open])
377        ;;
378    setpgrp)
379        AC_DEFINE(HAVE_SETPGRP, [1], [process group control])
380        ;;
381    realpath)
382        AC_DEFINE(HAVE_REALPATH, [1], [realpath support])
383        ;;
384    ftok)
385        AC_DEFINE(HAVE_FTOK, [1], [has ftok])
386        ;;
387    gmtime_r)
388        AC_DEFINE(HAVE_GMTIME_R, [1], [has localtime_r])
389        ;;
390    localtime_r)
391        AC_DEFINE(HAVE_LOCALTIME_R, [1], [has localtime_r])
392        ;;
393    strerror_r)
394        AC_DEFINE(HAVE_STRERROR_R, [1], [has strerror_r])
395        ;;
396    nanosleep)
397        AC_DEFINE(HAVE_NANOSLEEP, [1], [has nanosleep])
398        ;;
399    clock_nanosleep)
400        AC_DEFINE(HAVE_CLOCK_NANOSLEEP, [1], [has clocked nanosleep])
401        ;;
402    clock_gettime)
403        AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [has posix clock functions])
404        ;;
405    posix_fadvise)
406        AC_DEFINE(HAVE_POSIX_FADVISE, [1], [can specify access options])
407        ;;
408    ftruncate)
409        AC_DEFINE(HAVE_FTRUNCATE, [1], [can truncate files])
410        ;;
411    pwrite)
412        AC_DEFINE(HAVE_PWRITE, [1], [can do atomic write with offset])
413        ;;
414    setlocale)
415        AC_DEFINE(HAVE_SETLOCALE, [1], [can set localization])
416        ;;
417    gettext)
418        AC_DEFINE(HAVE_GETTEXT, [1], [has gettext in libc])
419        have_gettext="yes"
420        ;;
421    execvp)
422        AC_DEFINE(HAVE_EXECVP, [1], [has execvp in libc])
423        ;;
424    symlink)
425        AC_DEFINE(HAVE_SYMLINK, [1], [has symlink in libc])
426        ;;
427    readlink)
428        AC_DEFINE(HAVE_READLINK, [1], [has readlink in libc])
429        ;;
430    waitpid)
431        AC_DEFINE(HAVE_WAITPID, [1], [has waitpid in libc])
432        ;;
433    wait4)
434        AC_DEFINE(HAVE_WAIT4, [1], [has wait4 in libc])
435        ;;
436    endgrent)
437        AC_DEFINE(HAVE_ENDGRENT, [1], [has endgrent in libc])
438        ;;
439    esac
440done
441
442UCOMMON_LINKED="$socket_lib $posix4_lib $rt_lib $UCOMMON_LIBS"
443UCOMMON_LIBS="$socket_lib $posix4_lib $rt_lib $UCOMMON_LIBS $UCOMMON_LIBC"
444
445if test "$UCOMMON_MODEL" = "CC" ; then
446    AC_CHECK_LIB(Systemstubs, printf, [
447        UCOMMON_LIBC="$UCOMMON_LIBC -lgcc"
448    ])
449fi
450
451if test "x$GCC" = "xyes" ; then
452    UCOMMON_FLAGS="$UCOMMON_FLAGS -Wno-long-long" ; fi
453
454AC_LANG_SAVE
455AC_LANG_CPLUSPLUS
456
457if test ! -z "$PTHREAD_FLAGS" ; then
458    for flag in $PTHREAD_FLAGS ; do
459        AC_MSG_CHECKING([whether ${CXX} supports $flag])
460        echo 'void f(){}' >conftest.cpp
461        if test -z "`${CXX} $flag -c conftest.cpp 2>&1`"; then
462            AC_MSG_RESULT(yes)
463            UCOMMON_FLAGS="$UCOMMON_FLAGS $flag"
464            break
465        else
466            AC_MSG_RESULT(no)
467        fi
468    done
469fi
470
471# libstdc++ on some targets broken badly if inlines hidden.  Might be
472# deeper issue with ansi c++ library model...
473flags="-fno-check-new -finline"
474
475for flag in $flags ; do
476    AC_MSG_CHECKING([whether ${CXX} supports $flag])
477    echo 'void f(){}' >conftest.cpp
478    if test -z "`${CXX} $flag -c conftest.cpp 2>&1`"; then
479        UCOMMON_FLAGS="$UCOMMON_FLAGS $flag"
480        AC_MSG_RESULT(yes)
481    else
482        AC_MSG_RESULT(no)
483    fi
484    rm -f conftest*
485done
486
487AC_MSG_CHECKING([whether ${CXX} supports visibility])
488echo 'void f(){}' >conftest.cpp
489if test -z "`${CXX} -fvisibility=hidden -c conftest.cpp 2>&1`"; then
490    UCOMMON_FLAGS="$UCOMMON_FLAGS -fvisibility=hidden"
491    AC_MSG_RESULT(yes)
492else
493    AC_MSG_RESULT(no)
494fi
495rm -f conftest*
496
497AC_LANG_RESTORE
498
499AC_SUBST_DIR(includes, includedir)
500AC_SUBST_DIR(libs, libdir)
501
502case "$libs" in
503/usr/*)
504    ;;
505*)
506    UCOMMON_LINKED="-L$libs $UCOMMON_LINKED"
507    ;;
508esac
509
510case "$includes" in
511/usr/*)
512    ;;
513*)
514    UCOMMON_FLAGS="$UCOMMON_FLAGS -I$includes"
515    ;;
516esac
517
518case "$target_os" in
519osf*)
520    UCOMMON_FLAGS="$UCOMMON_FLAGS -D_POSIX_C_SOURCE=1 -D_OSF_SOURCE=1 -D__USE_STD_IOSTREAM"
521    ;;
522cygwin*|mingw*)
523    UCOMMON_LINKED="$UCOMMON_LINKED -no-undefined"
524    UCOMMON_LIBS="$UCOMMON_LIBS -no-undefined"
525    ;;
526esac
527
528if test -z "$UCOMMON_SSLSTACK" ; then
529    UCOMMON_SSLSTACK="$sslstack" ; fi
530
531OPENSSL_LIBS=""
532GNUTLS_LIBS=""
533
534AC_ARG_WITH(pkg-config,
535    AC_HELP_STRING([--with-pkg-config],[enable support for pkg-config]),[
536    PKG_CHECK_MODULES(OPENSSL, [openssl >= $OPENSSL_REQUIRES], [], [
537        OPENSSL_LIBS=""
538        AC_CHECK_HEADERS(openssl/ssl.h, [
539            OPENSSL_LIBS="-lssl -lcrypto -lz $OPENSSL_LINK"
540        ])
541        AC_CHECK_HEADERS(openssl/fips.h)
542        AC_CHECK_HEADERS(openssl/rsa.h)
543    ])
544    PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.0.0], [], [GNUTLS_LIBS=""])
545],[
546    AC_CHECK_HEADERS(openssl/ssl.h, [
547        OPENSSL_LIBS="-lssl -lcrypto -lz $OPENSSL_LINK"
548    ])
549    AC_CHECK_HEADERS(openssl/rsa.h)
550    AC_CHECK_HEADERS(openssl/fips.h)
551    AC_CHECK_LIB(gnutls, gnutls_init, [
552        GNUTLS_LIBS="-lgnutls"
553    ])
554])
555
556
557SECURE=""
558case "$ssl" in
559secure|any|detect)
560    if test ! -z "$GNUTLS_LIBS" ; then
561        SECURE_LIBS="$GNUTLS_LIBS"
562        SECURE="gnutls"
563    fi
564    if test -z "$SECURE" ; then
565        if test ! -z "$OPENSSL_LIBS" ; then
566            SECURE_LIBS="$OPENSSL_LIBS"
567            SECURE="openssl"
568        fi
569    fi
570    ;;
571gnutls|gnu)
572    if test ! -z "$GNUTLS_LIBS" ; then
573        SECURE_LIBS="$GNUTLS_LIBS"
574        SECURE="gnutls"
575    fi
576    ;;
577openssl|ssl)
578    if test ! -z "$OPENSSL_LIBS" ; then
579        SECURE_LIBS="$OPENSSL_LIBS"
580        SECURE="openssl"
581    fi
582    ;;
583esac
584
585if test -z "$SECURE" ; then
586    SECURE_LIBS=""
587    SECURE="nossl"
588fi
589
590AC_MSG_CHECKING([secure library mode])
591AC_MSG_RESULT([$SECURE])
592
593SECURE_LOCAL="../$SECURE/libusecure.la $SECURE_LIBS"
594
595includes='${includedir}/ucommon'
596
597if test "$sysconfdir" = '${prefix}/etc' ; then
598    sysconfdir="/etc" ; fi
599
600if test "$localstatedir" = '${prefix}/var' ; then
601    localstatedir="/var" ; fi
602
603AC_CHECK_HEADER(libintl.h, [
604    AC_DEFINE(HAVE_LIBINTL_H, [1], [international headers])
605    if test "$have_gettext" = "no" ; then
606        AC_CHECK_LIB(intl, gettext, [
607            AC_DEFINE(HAVE_GETTEXT, [1], [has gettext in glibc])
608            UCOMMON_LIBS="$UCOMMON_LIBS -lintl"
609        ])
610    fi
611])
612
613if test "$prefix" = "NONE" ; then
614    prefixdir="$ac_default_prefix"
615else
616    prefixdir="$prefix" ; fi
617
618PKG_UCOMMON_LIBS="$UCOMMON_LINKED"
619PKG_UCOMMON_FLAGS="$UCOMMON_FLAGS"
620PKG_UCOMMON_INCLUDES="$UCOMMON_INCLUDES"
621PKG_SECURE_LIBS="$SECURE_LIBS"
622AC_SUBST(PKG_UCOMMON_LIBS)
623AC_SUBST(PKG_UCOMMON_FLAGS)
624AC_SUBST(PKG_UCOMMON_INCLUDES)
625AC_SUBST(PKG_SECURE_LIBS)
626
627AC_SUBST_DIR(CMAKE_CURRENT_SOURCE_DIR, srcdir)
628AC_SUBST_DIR(CMAKE_INSTALL_PREFIX, prefixdir)
629AC_SUBST_DIR(CMAKE_INSTALL_FULL_LIBDIR, libdir)
630AC_SUBST_DIR(CMAKE_INSTALL_FULL_DATADIR, datadir)
631AC_SUBST_DIR(CMAKE_INSTALL_FULL_INCLUDEDIR, includedir)
632AC_SUBST_DIR(UCOMMON_INCLUDES, includes)
633AC_SUBST_DIR(UCOMMON_LOCALE, localedir)
634AC_SUBST_DIR(UCOMMON_CFGPATH, sysconfdir)
635AC_SUBST_DIR(UCOMMON_VARPATH, localstatedir)
636AC_SUBST_DIR(UCOMMON_PREFIX, prefixdir)
637AC_DEFINE_UNQUOTED(UCOMMON_PREFIX, "$UCOMMON_PREFIX", [config path])
638AC_DEFINE_UNQUOTED(UCOMMON_CFGPATH, "$UCOMMON_CFGPATH", [config path])
639AC_DEFINE_UNQUOTED(UCOMMON_VARPATH, "$UCOMMON_VARPATH", [config path])
640AC_DEFINE_UNQUOTED(UCOMMON_LOCALE, "$UCOMMON_LOCALE", [locale path])
641
642AC_PATH_PROG(DOXYGEN, doxygen, doxygen)
643AC_SUBST(DOXYGEN)
644AC_SUBST(CHECKFLAGS)
645AC_SUBST(CXXFLAGS)
646AC_SUBST(MODULE_FLAGS)
647AC_SUBST(UCOMMON_INCLUDES)
648AC_SUBST(UCOMMON_LOCALE)
649AC_SUBST(UCOMMON_FLAGS)
650AC_SUBST(UCOMMON_LINKED)
651AC_SUBST(UCOMMON_LIBC)
652AC_SUBST(UCOMMON_LIBS)
653AC_SUBST(SECURE_LOCAL)
654AC_SUBST(SECURE_LIBS)
655AC_SUBST(SECURE)
656AC_SUBST(COMPAT)
657AC_SUBST(COMPAT_PC)
658AC_SUBST(COMPAT_CONFIG)
659AC_SUBST(OPENSSL_LIBS)
660AC_SUBST(GNUTLS_LIBS)
661AC_SUBST(LT_VERSION)
662AC_SUBST(localedir)
663
664AC_OUTPUT(Makefile corelib/Makefile commoncpp/Makefile PKGBUILD
665openssl/Makefile gnutls/Makefile nossl/Makefile utils/Makefile Doxyfile
666inc/Makefile inc/ucommon/Makefile inc/commoncpp/Makefile test/Makefile
667directive commoncpp.pc ucommon.pc ucommon.spec ucommon-config commoncpp-config)
668
669