dnl Author of this file: Martin Preuss dnl $Id: configure.in,v 1.139 2003/06/24 09:51:50 aquamaniac Exp $ dnl Needs to be the first command AC_INIT(acconfig.h) dnl AC_CONFIG_SRCDIR([acconfig.h]) AM_CONFIG_HEADER(config.h) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE(libchipcard,0.9.1) AC_DEFINE_UNQUOTED(AUTHOR,"Martin Preuss") AC_PROG_MAKE_SET AM_SANITY_CHECK AM_MAINTAINER_MODE k_CHIPCARD_VERSION_MAJOR="0" k_CHIPCARD_VERSION_MINOR="9" k_CHIPCARD_VERSION_PATCHLEVEL="1" k_CHIPCARD_VERSION_BUILD="0" dnl TAG is either CVS, BETA or STABLE k_CHIPCARD_VERSION_TAG="STABLE" AC_SUBST(k_CHIPCARD_VERSION_MAJOR) AC_SUBST(k_CHIPCARD_VERSION_MINOR) AC_SUBST(k_CHIPCARD_VERSION_PATCHLEVEL) AC_SUBST(k_CHIPCARD_VERSION_BUILD) AC_SUBST(k_CHIPCARD_VERSION_TAG) dnl setup rpm rpm_build_root="/tmp/libchipcard-buildroot" rpm_version="0.9.1" rpm_release="1" AC_SUBST(rpm_version) AC_SUBST(rpm_release) AC_SUBST(rpm_build_root) dnl checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AM_PROG_LIBTOOL AC_PROG_AWK dnl check for libraries dnl check for functions AC_CHECK_FUNCS(snprintf) AC_CHECK_FUNCS(fork) AC_CHECK_FUNCS(time) AC_CHECK_FUNCS(getpid) AC_CHECK_FUNCS(sigaction) AC_CHECK_FUNCS(random) AC_CHECK_FUNCS(wait) AC_CHECK_FUNCS(chmod) dnl check for headers AC_CHECK_HEADERS([unistd.h]) AC_CHECK_HEADERS([dlfcn.h]) AC_CHECK_HEADERS([signal.h]) AC_CHECK_HEADERS([time.h]) AC_CHECK_HEADERS([syslog.h]) AC_CHECK_HEADERS([sys/stat.h]) AC_CHECK_HEADERS([arpa/inet.h]) AC_CHECK_HEADERS([sys/types.h]) AC_CHECK_HEADERS([sys/wait.h]) AC_CHECK_HEADERS([libintl.h],[have_libintl_h=yes],[have_libintl_h=no]) dnl check for compiler characteristics AC_C_CONST all_libraries="" all_includes="" dnl set default installation prefix AC_PREFIX_DEFAULT(/usr) if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix ac_configure_args="$ac_configure_args --prefix $prefix" fi AC_SUBST(prefix) I18N_PATH="`eval echo $prefix/share`/locale" AC_DEFINE_UNQUOTED(I18N_PATH,"$I18N_PATH",[Path for locales]) # check for OS AQ_CHECK_OS dnl system dependant settings case "$OS_TYPE" in posix) CHIPCARDC_CFGFILE="`eval echo $prefix/etc`/chipcardc.conf" CHIPCARDD_CFGFILE="`eval echo $prefix/etc`/chipcardd.conf" CHIPCARD_COMMANDS="`eval echo $prefix/share`/libchipcard/commands" CHIPCARD_DRIVERS="`eval echo $prefix/share`/libchipcard/drivers" CHIPCARDD_PIDDIR="`eval echo $prefix/var`/run" CHIPCARDD_PIDFILE="chipcardd.pid" CHIPCARDD_LOGDIR="`eval echo $prefix/var`/log" CHIPCARDD_LOGFILE="chipcardd.log"; # for posix we use the ".so" version "libchipcard.so" LIBCHIPCARD_LIB="-lchipcard" WINSCARD_LIB="libpcsclite.so.0" MAKE_DLL_TARGET="" INSTALL_DLL_TARGET="" CHIPCARDD=chipcardd ;; windows) # for windows we use the dll version "libchipcard.dll" CHIPCARDC_CFGFILE="c:\\\\windows\\\\chipcardc.ini" CHIPCARDD_CFGFILE="c:\\\\windows\\\\chipcardd.ini" CHIPCARD_COMMANDS="c:\\\\windows\\\\libchipcard\\\\commands" CHIPCARD_DRIVERS="c:\\\\windows\\\\libchipcard\\\\drivers" CHIPCARDD_PIDDIR="c:\\\\windows" CHIPCARDD_PIDFILE="chipcardd.pid" CHIPCARDD_LOGDIR="c:\\\\windows" CHIPCARDD_LOGFILE="chipcardd.log"; LIBCHIPCARD_LIB="-llibchipcard`eval echo ${k_CHIPCARD_VERSION_MAJOR}${k_CHIPCARD_VERSION_MINOR}`" winscard_includes="-I./winscard-includes" WINSCARD_LIB="winscard.dll" AC_DEFINE_UNQUOTED(BUILDING_CHIPCARD_DLL,1) MAKE_DLL_TARGET="dll" INSTALL_DLL_TARGET="dll-install" CHIPCARDD=chipcardd_win32 ;; esac #AC_SUBST(winscard_includes) AC_SUBST(CHIPCARDD) AC_SUBST(MAKE_DLL_TARGET) AC_SUBST(INSTALL_DLL_TARGET) AC_DEFINE_UNQUOTED(WINSCARD_LIB,"$WINSCARD_LIB") AC_SUBST(WINSCARD_LIB) AC_SUBST(LIBCHIPCARD_LIB) AC_DEFINE_UNQUOTED(CHIPCARD_COMMANDS,"$CHIPCARD_COMMANDS") AC_SUBST(CHIPCARD_COMMANDS) AC_DEFINE_UNQUOTED(CHIPCARD_DRIVERS,"$CHIPCARD_DRIVERS") AC_SUBST(CHIPCARD_DRIVERS) dnl chameleon stuff AQ_CHAMELEON_INCLUDED(src/libchipcard/engine) all_includes="$all_includes $chameleon_includes" dnl Check debug mode AQ_DEBUGMODE AQ_CHECK_DEBUG dnl copy all includes to chipcard-dir echo -n "Copying header files ..." echo " Source folder is ${srcdir}" rm -Rf chipcard >/dev/null mkdir chipcard || AC_MSG_ERROR(Could not create dir) headers=`(cd ${srcdir}; ls src/libchipcard/*.h src/libchipcard/base/*.h src/libchipcard/cards/*.h src/libchipcard/engine/reader/ctcore_public.h)` case "$OS_TYPE" in posix) if test -d chipcard; then if test -n "$headers"; then for ii in $headers; do case ${srcdir} in /*) ln -s "${srcdir}/$ii" chipcard/ ;; .) ln -s "../$ii" chipcard/ ;; *) ln -s "../${srcdir}/$ii" chipcard/ ;; esac done; fi fi ;; *) if test -d chipcard; then if test -n "$headers"; then for ii in $headers; do cp "${srcdir}/$ii" chipcard/ done; fi fi ;; esac echo " done" dnl setup name of global config files AC_MSG_CHECKING(for client config file path and name) AC_ARG_WITH(client-cfg-file, [ --with-client-cfg-file=DIR set the path and name of the client config file], [CHIPCARDC_CFGFILE="$withval"]) AC_DEFINE_UNQUOTED(CHIPCARDC_CFGFILE,"$CHIPCARDC_CFGFILE") AC_SUBST(CHIPCARDC_CFGFILE) AC_MSG_RESULT($CHIPCARDC_CFGFILE) AC_MSG_CHECKING(for server config file path and name) AC_ARG_WITH(server-cfg-file, [ --with-server-cfg-file=DIR set the path and name of the server config file], [CHIPCARDD_CFGFILE="$withval"]) AC_DEFINE_UNQUOTED(CHIPCARDD_CFGFILE,"$CHIPCARDD_CFGFILE") AC_SUBST(CHIPCARDD_CFGFILE) AC_MSG_RESULT($CHIPCARDD_CFGFILE) AC_MSG_CHECKING(for default pid dir) AC_ARG_WITH(pid-dir, [ --with-pid-dir=DIR set the path for the pid file], [CHIPCARDD_PIDDIR="$withval"]) AC_DEFINE_UNQUOTED(CHIPCARDD_PIDDIR,"$CHIPCARDD_PIDDIR") AC_SUBST(CHIPCARDD_PIDDIR) AC_MSG_RESULT($CHIPCARDD_PIDDIR) AC_MSG_CHECKING(for default pid file) AC_ARG_WITH(pid-file, [ --with-pid-file=FILE set the name of the pid file], [CHIPCARDD_PIDFILE="$withval"]) AC_DEFINE_UNQUOTED(CHIPCARDD_PIDFILE,"$CHIPCARDD_PIDFILE") AC_SUBST(CHIPCARDD_PIDFILE) AC_MSG_RESULT($CHIPCARDD_PIDFILE) AC_MSG_CHECKING(for default log dir) AC_ARG_WITH(log-dir, [ --with-log-dir=DIR set the path for the log file], [CHIPCARDD_LOGDIR="$withval"]) AC_DEFINE_UNQUOTED(CHIPCARDD_LOGDIR,"$CHIPCARDD_LOGDIR") AC_SUBST(CHIPCARDD_LOGDIR) AC_MSG_RESULT($CHIPCARDD_LOGDIR) AC_MSG_CHECKING(for default log file) AC_ARG_WITH(log-file, [ --with-log-file=FILE set the name of the log file], [CHIPCARDD_LOGFILE="$withval"]) AC_DEFINE_UNQUOTED(CHIPCARDD_LOGFILE,"$CHIPCARDD_LOGFILE") AC_SUBST(CHIPCARDD_LOGFILE) AC_MSG_RESULT($CHIPCARDD_LOGFILE) dnl check for distribution AC_MSG_CHECKING(for distribution) AC_ARG_WITH(distri, [ --with-distri=DIST choose distribution (suse, redhat, debian, mandrake, freebsd)], [DISTRI="$withval"]) AC_SUBST(DISTRI) if test -n "$DISTRI"; then case $DISTRI in suse) ;; redhat) ;; debian) ;; mandrake) ;; freebsd) ;; *) AC_MSG_ERROR(Unknown distribution type) esac AC_MSG_RESULT($DISTRI) else AC_MSG_RESULT(unknown) fi dnl check for SSL AQ_CHECK_SSL AC_MSG_CHECKING(if encryption is available) if test -z "$ssl_libraries" -o -z "$ssl_lib"; then AC_MSG_ERROR(Sorry, but OpenSSL is required now. Please get it from www.openssl.org.) else # copy necessary files to cryp dir cp ${srcdir}/src/libchipcard/engine/chameleon/openssl/cryp.c ${srcdir}/src/libchipcard/engine/chameleon/ cp ${srcdir}/src/libchipcard/engine/chameleon/openssl/cryp.h ${srcdir}/src/libchipcard/engine/chameleon/ all_libraries="$all_libraries $ssl_libraries $ssl_lib" all_includes="$all_includes $ssl_includes" cryp_c="cryp.c" cryp_h="cryp.h" AC_DEFINE(CT_USE_ENCRYPTION) DEFINE_CT_USE_ENCRYPTION="#define CT_USE_ENCRYPTION" AC_MSG_RESULT(yes) fi AC_SUBST(DEFINE_CT_USE_ENCRYPTION) AC_SUBST(cryp_c) AC_SUBST(cryp_h) dnl check for PC/SC AQ_CHECK_PCSC AC_MSG_CHECKING(if PC/SC might be used) if test "$have_pcsc" != "yes" ; then AC_MSG_WARN(No pcsc libraries found, SCard driver will not be available.) else all_includes="$all_includes $pcsc_includes" AC_DEFINE(USE_PCSC) AC_MSG_RESULT(yes) fi dnl check for the documentaion output path AQ_DOCPATH # check for doc type AC_MSG_CHECKING(if full docu should be created) AC_ARG_ENABLE(full-doc, [ --enable-full-doc enable creating full apidoc (default=no)], [ case "${enableval}" in yes) enable_fulldoc="yes";; no) enable_fulldoc="no";; *) AC_MSG_ERROR(bad value ${enableval} for --enable-full-doc);; esac ], enable_fulldoc="no") if test "$enable_fulldoc" = "yes"; then DOXYGEN_INPUT="src/libchipcard" else DOXYGEN_INPUT="\ src/libchipcard/base \ src/libchipcard/cards \ src/libchipcard/libchipcard.h \ " fi AC_SUBST(DOXYGEN_INPUT) AC_MSG_RESULT($enable_fulldoc) dnl Search for dlopen LIBS="" AC_SEARCH_LIBS(dlopen,dl c) if test "$LIBS" = "-lc"; then LIBS="" fi ld_library=$LIBS LIBS="" dnl Search for gettext LIBS="" I18N_CATALOG="" AC_CHECK_PROGS(XGETTEXT, xgettext, missing) if test "$XGETTEXT" != "missing"; then AC_SEARCH_LIBS(gettext,intl c,[have_gettext_fn=yes], [have_gettext_fn=no]) i18n_library=$LIBS LIBS="" AC_MSG_CHECKING(for working i18n environment) if test "$have_libintl_h" = "yes" -a "$have_gettext_fn" = "yes" -a "$XGETTEXT" != "missing"; then AC_DEFINE(HAVE_GETTEXT_ENVIRONMENT,1,[if gettext is available]) I18N_CATALOG="catalog" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi AC_SUBST(I18N_CATALOG) dnl libchipcard includes for config-script libchipcard_includes="-I`eval echo $prefix`/include -I`eval echo $prefix`/include/chipcard" AS_SCRUB_INCLUDE(libchipcard_includes) AC_SUBST(libchipcard_includes) dnl set the library paths/include paths all_libraries="$all_libraries $ld_library $i18n_library $chameleon_needed_libs" all_includes="$all_includes" AC_SUBST(all_includes) AC_SUBST(all_libraries) dnl add here all your Makefiles. These will be created by configure dnl $AUTOMAKE AC_OUTPUT(Makefile \ Doxyfile \ debian/DEBIAN/control \ suse/Makefile \ suse/chipcardd \ suse/libchipcard.spec \ redhat/Makefile \ redhat/chipcardd \ redhat/libchipcard.spec \ mandrake/Makefile \ mandrake/chipcardd \ mandrake/libchipcard.spec \ debian/Makefile \ freebsd/Makefile \ freebsd/chipcardd.sh \ freebsd/port/Makefile \ freebsd/port/pkg-plist \ freebsd/port/pkg-message \ openbsd/Makefile \ openbsd/port/Makefile \ openbsd/port/pkg/INSTALL \ example/Makefile \ doc/Makefile \ doc/man/Makefile \ doc/man/ctfstool.1 \ doc/man/chipcardd.1 \ doc/man/geldkarte.1 \ doc/man/hbcicard.1 \ doc/man/readertest.1 \ doc/man/cardcommander.1 \ doc/man/libchipcard.conf.5 \ doc/man/chipcardc.conf.5 \ doc/man/chipcardd.conf.5 \ doc/man/libchipcard-config.1 \ doc/man/memcard.1 \ doc/man/kvkd.1 \ doc/html/Makefile \ doc/html/pics/Makefile \ data/Makefile \ data/commands/Makefile \ data/drivers/Makefile \ src/Makefile \ src/libchipcard/Makefile \ src/libchipcard/engine/Makefile \ src/libchipcard/engine/chameleon/Makefile \ src/libchipcard/engine/chameleon/posix/Makefile \ src/libchipcard/engine/chameleon/windows/Makefile \ src/libchipcard/engine/chameleon/openssl/Makefile \ src/libchipcard/engine/reader/Makefile \ src/libchipcard/engine/command/Makefile \ src/libchipcard/engine/service/Makefile \ src/libchipcard/chipcard.h \ src/libchipcard/base/Makefile \ src/libchipcard/cards/Makefile \ src/libchipcard/ressource.rc \ src/libchipcard/ctversion.h \ src/test/Makefile \ src/tutorial/Makefile \ src/tools/Makefile \ src/tools/ctfstool/Makefile \ src/tools/ctfstool/po/Makefile \ src/tools/memcard/Makefile \ src/tools/memcard/po/Makefile \ src/tools/hbcicard/Makefile \ src/tools/hbcicard/po/Makefile \ src/tools/chipcardd/Makefile \ src/tools/chipcardd/po/Makefile \ src/tools/chipcardd_win32/Makefile \ src/tools/chipcardd_win32/ressource.rc \ src/tools/kvkd/Makefile \ src/tools/kvkd/po/Makefile \ src/tools/readertest/Makefile \ src/tools/readertest/po/Makefile \ src/tools/cardcommander/Makefile \ src/tools/cardcommander/po/Makefile \ src/tools/geldkarte/Makefile \ src/tools/geldkarte/po/Makefile \ src/tools/rsacard/Makefile \ src/tools/rsacard/po/Makefile \ src/tools/pam/Makefile \ src/libchipcard/libchipcard-config.in \ )