Projekt

Allgemein

Profil

Herunterladen (10,5 KB) Statistiken
| Zweig: | Markierung: | Revision:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

# info
GWENHYWFAR_AUTHOR="Martin Preuss<martin@libchipcard.de>"
GWENHYWFAR_BUGREPORT_ADDR="<martin@libchipcard.de>"


AC_PREREQ(2.56)
AC_INIT
AC_CANONICAL_TARGET([])
AC_CONFIG_SRCDIR([src/gwenhywfarapi.h])
AC_CONFIG_HEADER([config.h])

#
# versions
#
GWENHYWFAR_VERSION_MAJOR=0
GWENHYWFAR_VERSION_MINOR=9
GWENHYWFAR_VERSION_PATCHLEVEL=8
GWENHYWFAR_VERSION_BUILD=5
dnl "stable", "rcX", "betaX", "cvs"
GWENHYWFAR_VERSION_TAG="cvs"
GWENHYWFAR_VERSION_FULL_STRING="$GWENHYWFAR_VERSION_MAJOR.$GWENHYWFAR_VERSION_MINOR.$GWENHYWFAR_VERSION_PATCHLEVEL.$GWENHYWFAR_VERSION_BUILD${GWENHYWFAR_VERSION_TAG}"
GWENHYWFAR_VERSION_STRING="$GWENHYWFAR_VERSION_MAJOR.$GWENHYWFAR_VERSION_MINOR.$GWENHYWFAR_VERSION_PATCHLEVEL"


#
# Create release string
#
case "$GWENHYWFAR_VERSION_TAG" in
cvs)
GWENHYWFAR_VERSION_RELEASE_STRING="$GWENHYWFAR_VERSION_FULL_STRING"
;;
stable)
GWENHYWFAR_VERSION_RELEASE_STRING="$GWENHYWFAR_VERSION_MAJOR.$GWENHYWFAR_VERSION_MINOR"
# should we add patchlevel ?
if test "$GWENHYWFAR_VERSION_PATCHLEVEL" != "0"; then
GWENHYWFAR_VERSION_RELEASE_STRING="$GWENHYWFAR_VERSION_RELEASE_STRING.$GWENHYWFAR_VERSION_PATCHLEVEL"
fi
;;
*)
GWENHYWFAR_VERSION_RELEASE_STRING="$GWENHYWFAR_VERSION_MAJOR.$GWENHYWFAR_VERSION_MINOR"
# should we add patchlevel ?
if test "$GWENHYWFAR_VERSION_PATCHLEVEL" != "0"; then
GWENHYWFAR_VERSION_RELEASE_STRING="$GWENHYWFAR_VERSION_RELEASE_STRING.$GWENHYWFAR_VERSION_PATCHLEVEL"
fi
# add TAG
GWENHYWFAR_VERSION_RELEASE_STRING="$GWENHYWFAR_VERSION_RELEASE_STRING${GWENHYWFAR_VERSION_TAG}"
;;
esac

AC_SUBST(GWENHYWFAR_VERSION_MAJOR)
AC_SUBST(GWENHYWFAR_VERSION_MINOR)
AC_SUBST(GWENHYWFAR_VERSION_PATCHLEVEL)
AC_SUBST(GWENHYWFAR_VERSION_BUILD)
AC_SUBST(GWENHYWFAR_VERSION_TAG)
AC_SUBST(GWENHYWFAR_VERSION_FULL_STRING)
AC_SUBST(GWENHYWFAR_VERSION_STRING)
AC_SUBST(GWENHYWFAR_VERSION_RELEASE_STRING)

AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_MAJOR,$GWENHYWFAR_VERSION_MAJOR,
[major version])
AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_MINOR,$GWENHYWFAR_VERSION_MINOR,
[minor version])
AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_PATCHLEVEL,$GWENHYWFAR_VERSION_PATCHLEVEL,
[patchlevel])
AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_BUILD,$GWENHYWFAR_VERSION_BUILD, [build])
AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_STRING,"$GWENHYWFAR_VERSION_STRING",
[version string])
AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_FULL_STRING,"$GWENHYWFAR_VERSION_FULL_STRING",
[full version string])
AC_DEFINE_UNQUOTED(GWENHYWFAR_VERSION_TAG,$GWENHYWFAR_VERSION_TAG, [tag])

#
# SO version
#
GWENHYWFAR_SO_CURRENT="6"
GWENHYWFAR_SO_REVISION="0"
GWENHYWFAR_SO_AGE="0"
GWENHYWFAR_SO_EFFECTIVE="`echo \$(($GWENHYWFAR_SO_CURRENT-$GWENHYWFAR_SO_AGE))`"

AC_SUBST(GWENHYWFAR_SO_CURRENT)
AC_SUBST(GWENHYWFAR_SO_REVISION)
AC_SUBST(GWENHYWFAR_SO_AGE)
AC_SUBST(GWENHYWFAR_SO_EFFECTIVE)

AM_INIT_AUTOMAKE(gwenhywfar, $GWENHYWFAR_VERSION_RELEASE_STRING)


AC_ENABLE_STATIC(no)
AC_ENABLE_SHARED(yes)


# Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LIBTOOL
AC_PROG_AWK
AC_CHECK_PROG(USE_DOT,dot,YES,NO)


# Checks for libraries.
AC_CHECK_LIB(dl,dlopen)


# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h])
AC_CHECK_HEADERS([stdlib.h string.h sys/socket.h sys/time.h])
AC_CHECK_HEADERS([syslog.h unistd.h])
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([sys/types.h])
AC_CHECK_HEADERS([sys/wait.h])


# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_HEADER_TIME
AC_STRUCT_TM

# Checks for library functions.
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_MKTIME
AC_FUNC_SELECT_ARGTYPES
AC_CHECK_FUNCS([gethostbyaddr gethostbyname inet_ntoa isascii])
AC_CHECK_FUNCS([memmove memset])
AC_CHECK_FUNCS([select socket])
AC_CHECK_FUNCS([strcasecmp strchr strdup strerror])
AC_CHECK_FUNCS([snprintf])

dnl prefix handling
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)


dnl OS dependant settings
AQ_CHECK_OS

case "$OS_TYPE" in
posix)
gwenhywfar_libs="-L`eval echo $prefix/lib` -lgwenhywfar"
gwenhywfar_includes="-I`eval echo $prefix/include`"
gwenhywfar_headers="`eval echo $prefix/include/gwenhywfar`"
gwenhywfar_sections=""
gwenhywfar_plugins="`eval echo $prefix/share`/gwenhywfar/plugins/${GWENHYWFAR_SO_EFFECTIVE}"
gwenhywfar_os_lib="os/posix/libos.la"
GWEN_OS="posix"
# check for some types
AQ_TYPE_UINT32(unsigned int)
GWEN_TYPE_UINT32=$aq_type_uint32
AC_SUBST(GWEN_TYPE_UINT32)
;;
windows)
AC_DEFINE_UNQUOTED(BUILDING_GWEN_DLL,1, [Define if DLL is built])
ACX_WINDOWS_PATHS
gwenhywfar_libs="-L${WIN_PATH_WINDOWS_MINGW} -lgwenhywfar32"
gwenhywfar_includes="-I`eval echo $prefix/include`"
gwenhywfar_headers="`eval echo $prefix/include/gwenhywfar`"
gwenhywfar_sections=""
gwenhywfar_plugins="`eval echo $prefix/share`/gwenhywfar/plugins/${GWENHYWFAR_SO_EFFECTIVE}"
gwenhywfar_os_lib="os/windows/libos.la"
GWEN_MAKE_DLL_TARGET="dll"
GWEN_INSTALL_DLL_TARGET="dll-install"
GWEN_OS="windows"
# check for some types
AQ_TYPE_UINT32(unsigned int)
GWEN_TYPE_UINT32=$aq_type_uint32
AC_SUBST(GWEN_TYPE_UINT32)
;;
esac

AM_CONDITIONAL(IS_WINDOWS, [test "$OS_TYPE" = "windows"])

#
# check whether variadic macros should be supported
#
AC_MSG_CHECKING(if compiling with variadic macros)
AC_ARG_ENABLE(variadic-macros,
[ --enable-variadic-macros enable variadic macros (default=yes)],
enable_variadic_macros="$enableval",
enable_variadic_macros="yes")
AC_MSG_RESULT($enable_variadic_macros)
if test "x$enable_variadic_macros" == "xno"; then
AC_DEFINE(NO_VARIADIC_MACROS, 1, [Define if variadic macros should be disabled])
fi

#
# check for encryption library
#
AQ_CHECK_SSL
if test "$ssl_available" = "yes"; then
all_libraries="${all_libraries} ${ssl_libraries} ${ssl_lib}"
all_includes="$all_includes $ssl_includes"
gwenhywfar_includes="$gwenhywfar_includes $ssl_includes"
GWEN_CRYPTO="ossl"
AC_DEFINE_UNQUOTED(GWEN_SSL_CRYPTO, 1, [Defined if OpenSSL crypto module is built])
else
GWEN_CRYPTO="none"
fi
AM_CONDITIONAL(GWEN_SSL_CRYPTO, [test "$GWEN_CRYPTO" = "ossl"])



#
# create header directory, make symlinks
#
GWEN_HEADER_DIRS="src src/base src/net src/crypt src/crypt/${GWEN_CRYPTO} src/io src/os src/os/${GWEN_OS} src/parser"
lprefix="${srcdir}"
lprefix=`( cd ${lprefix} ; pwd )`

rm -Rf gwenhywfar
mkdir gwenhywfar
GWEN_HEADER_FILES=""
for d in ${GWEN_HEADER_DIRS}; do
hfiles=`( cd "${srcdir}/${d}" && ls *.h 2>/dev/null )`
for f in ${hfiles}; do
GWEN_HEADER_FILES="${GWEN_HEADER_FILES} ${lprefix}/${d}/${f}"
case ${f} in
*_p.h)
;;
*)
ln -s "${lprefix}/${d}/${f}" "gwenhywfar/${f}"
;;
esac
done
done
test -f gwenhywfar/version.h || ln -s "${lprefix}/src/version.h" "gwenhywfar/version.h" &>/dev/null
test -f gwenhywfar/types.h || ln -s "${lprefix}/src/types.h" "gwenhywfar/types.h" &>/dev/null
test -f gwenhywfar/system.h || ln -s "${lprefix}/src/os/$OS_TYPE/system.h" "gwenhywfar/system.h" &>/dev/null


#
# check docpath
#
AC_MSG_CHECKING(docpath)
AC_ARG_WITH(docpath, [ --with-docpath=DIR where to store the apidoc],
[docpath="$withval"],
[docpath="apidoc"])
AC_SUBST(docpath)
AC_MSG_RESULT($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"
DOXYGEN_DEFINE=""
else
DOXYGEN_DEFINE="DOXYGEN_HIDE"
DOXYGEN_INPUT="doc/apidoc.h gwenhywfar"
fi
AC_SUBST(DOXYGEN_INPUT)
AC_SUBST(DOXYGEN_DEFINE)
AC_MSG_RESULT($enable_fulldoc)


#
# check for release
#
AC_MSG_CHECKING(whether this is an official release)
AC_ARG_ENABLE(release,
[ --enable-release make this an official release (default=no)],
[ case "${enableval}" in
yes) enable_release="yes";;
no) enable_release="no";;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-release);;
esac
],
enable_release="no")

if test "$enable_release" = "yes"; then
STRIPALL="-s"
else
STRIPALL=""
fi
AC_SUBST(STRIPALL)
AC_MSG_RESULT($enable_release)



#
# check for MEMTRACE
#
AC_MSG_CHECKING(if MEMTRACE is wanted)
AC_ARG_ENABLE(memtrace,
[ --enable-memtrace enable memory trace (default=no)],
enable_memtrace="$enableval",
enable_memtrace="no")
AC_MSG_RESULT($enable_memtrace)

if test "$enable_memtrace" != "no"; then
AC_DEFINE(GWEN_MEMTRACE, 1, [if memory trace is wanted])
fi

# Debug arguments for compilation
ACX_COMPILE_WARN()


#
# substitute vars
#
AS_SCRUB_INCLUDE(gwenhywfar_includes)
AC_SUBST(gwenhywfar_includes)
AC_SUBST(gwenhywfar_libs)
AC_SUBST(gwenhywfar_plugins)
AC_SUBST(gwenhywfar_headers)
AC_SUBST(gwenhywfar_sections)
AC_SUBST(gwenhywfar_needed_libs)
AC_SUBST(GWEN_OS)
AC_SUBST(GWEN_MAKE_DLL_TARGET)
AC_SUBST(GWEN_INSTALL_DLL_TARGET)
AC_SUBST(gwenhywfar_os_lib)
AC_SUBST(GWENHYWFAR_LIB)
AC_SUBST(gwenhywfar_crypt_lib)
AC_SUBST(GWEN_CRYPTO)
AC_SUBST(GWEN_HEADER_FILES)
AC_SUBST(all_includes)
AC_SUBST(all_libraries)


#
# list of files to create
#
AC_CONFIG_FILES([Doxyfile
Makefile
m4/Makefile
gwenhywfar-config.in
gwenhywfar.spec
doc/Makefile
src/Makefile
src/types.h
src/ressource.rc
src/version.h
src/base/Makefile
src/crypt/Makefile
src/crypt/ossl/Makefile
src/crypt/none/Makefile
src/io/Makefile
src/os/Makefile
src/os/posix/Makefile
src/os/posix/system.h
src/os/windows/Makefile
src/os/windows/system.h
src/parser/Makefile
src/net/Makefile
test/Makefile
])
AC_OUTPUT


(13-13/17)