Blame configure.ac

Packit df99a1
# -*-Shell-script-*-
Packit df99a1
#
Packit df99a1
# DjVuLibre-3.5
Packit df99a1
# Copyright (c) 2002  Leon Bottou and Yann Le Cun.
Packit df99a1
# Copyright (c) 2001  AT&T
Packit df99a1
#
Packit df99a1
# This software is subject to, and may be distributed under, the
Packit df99a1
# GNU General Public License, either Version 2 of the license,
Packit df99a1
# or (at your option) any later version. The license should have
Packit df99a1
# accompanied the software or you may obtain a copy of the license
Packit df99a1
# from the Free Software Foundation at http://www.fsf.org .
Packit df99a1
#
Packit df99a1
# This program is distributed in the hope that it will be useful,
Packit df99a1
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit df99a1
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit df99a1
# GNU General Public License for more details.
Packit df99a1
# 
Packit df99a1
# DjVuLibre-3.5 is derived from the DjVu(r) Reference Library
Packit df99a1
# distribued by Lizardtech Software.
Packit df99a1
#
Packit df99a1
# ----------------------------------------
Packit df99a1
# Initialization
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
m4_define([v_maj], [3])
Packit df99a1
m4_define([v_min], [5])
Packit df99a1
m4_define([v_mic], [27])
Packit df99a1
m4_define([v_ver], [v_maj.v_min.v_mic])
Packit df99a1
Packit df99a1
m4_define([lt_compat], [21])
Packit df99a1
m4_define([lt_cur], [v_mic])
Packit df99a1
m4_define([lt_rev], [0])
Packit df99a1
m4_define([lt_age], [m4_eval(v_mic - lt_compat)])
Packit df99a1
Packit df99a1
AC_PREREQ([2.65])
Packit df99a1
AC_INIT([djvulibre],[v_ver])
Packit df99a1
Packit df99a1
AC_CONFIG_AUX_DIR(config)
Packit df99a1
AC_CONFIG_MACRO_DIR(config)
Packit df99a1
AC_CONFIG_SRCDIR(libdjvu/ddjvuapi.cpp)
Packit df99a1
AC_CONFIG_HEADER(config.h:config/config.h.in)
Packit df99a1
AC_CANONICAL_HOST
Packit df99a1
Packit df99a1
AM_INIT_AUTOMAKE([1.6 subdir-objects dist-bzip2 dist-xz])
Packit df99a1
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Packit df99a1
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
Packit df99a1
Packit df99a1
LT_INIT([win32-dll disable-static])
Packit df99a1
Packit df99a1
# Library version
Packit df99a1
version_info="lt_cur:lt_rev:lt_age"
Packit df99a1
AC_SUBST([version_info])
Packit df99a1
Packit df99a1
# Additional libraries
Packit df99a1
AC_ARG_WITH(extra-includes,
Packit df99a1
            AS_HELP_STRING([--with-extra-includes=DIR],[Define an additional directory for include files]),
Packit df99a1
        [ if test -d "$withval" ; then
Packit df99a1
            CPPFLAGS="$CPPFLAGS -I$withval" 
Packit df99a1
          else
Packit df99a1
            AC_MSG_ERROR([Cannot stat directory $withval])
Packit df99a1
          fi ] )
Packit df99a1
Packit df99a1
AC_ARG_WITH(extra-libraries,
Packit df99a1
            AS_HELP_STRING([--with-extra-libraries=DIR],[Define an additional directory for library files]),
Packit df99a1
        [ if test -d "$withval" ; then
Packit df99a1
           LDFLAGS="$LDFLAGS -L$withval"
Packit df99a1
          else
Packit df99a1
            AC_MSG_ERROR([Cannot stat directory $withval])
Packit df99a1
          fi ] )
Packit df99a1
Packit df99a1
# Always look into a "gnu" directory.
Packit df99a1
curwd=`pwd`
Packit df99a1
if test -d $curwd/gnu/include ; then
Packit df99a1
   CPPFLAGS="$CPPFLAGS -I$curwd/gnu/include"
Packit df99a1
fi
Packit df99a1
if test -d $curwd/gnu/lib ; then
Packit df99a1
   LDFLAGS="$LDFLAGS -L$curwd/gnu/lib"
Packit df99a1
fi
Packit df99a1
Packit df99a1
# Special cases
Packit df99a1
Packit df99a1
AC_CHECK_DECL([_WIN32],[have_os_win32=yes],[have_os_win32=no])
Packit df99a1
AM_CONDITIONAL([HAVE_OS_WIN32], [test "x${have_os_win32}" = "xyes"])
Packit df99a1
Packit df99a1
AC_CHECK_DECL([__APPLE__],[have_os_apple=yes],[have_os_apple=no])
Packit df99a1
if test x$have_os_apple = xyes && test -d /opt/local ; then
Packit df99a1
    CPPFLAGS="$CPPFLAGS -I/opt/local/include"
Packit df99a1
    LDFLAGS="$LDFLAGS -L/opt/local/lib"
Packit df99a1
elif test x$have_os_apple = xyes && test -d /sw ; then
Packit df99a1
    CPPFLAGS="$CPPFLAGS -I/sw/include"
Packit df99a1
    LDFLAGS="$LDFLAGS -L/sw/lib"
Packit df99a1
fi
Packit df99a1
Packit df99a1
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Programs
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
# Does make set variable $(MAKE)
Packit df99a1
AC_PROG_MAKE_SET
Packit df99a1
Packit df99a1
# Programs
Packit df99a1
AC_PROG_INSTALL
Packit df99a1
AC_PROG_LN_S
Packit df99a1
AC_PROG_MKDIR_P
Packit df99a1
AC_PROG_SED
Packit df99a1
AC_PATH_PROG([TOUCH], [touch])
Packit df99a1
AC_PATH_PROG([RSVG], [rsvg-convert], [false])
Packit df99a1
AC_PATH_PROG([INKSCAPE], [inkscape], [false])
Packit df99a1
AC_PATH_PROG([CONVERT], [convert], [false])
Packit df99a1
conversion_tool=no
Packit df99a1
if test "x${RSVG}" != xfalse ; then
Packit df99a1
  conversion_tool=rsvg
Packit df99a1
elif test "x${INKSCAPE}" != xfalse ; then
Packit df99a1
  conversion_tool=inkscape
Packit df99a1
elif test "x${CONVERT}" != xfalse ; then
Packit df99a1
  ( ${CONVERT} --version 2>&1 | grep -q ImageMagick ) && conversion_tool=convert
Packit df99a1
fi
Packit df99a1
AM_CONDITIONAL([HAVE_CONVERSION_RSVG], [test x${conversion_tool} = xrsvg])
Packit df99a1
AM_CONDITIONAL([HAVE_CONVERSION_INKSCAPE], [test x${conversion_tool} = xinkscape])
Packit df99a1
AM_CONDITIONAL([HAVE_CONVERSION_CONVERT], [test x${conversion_tool} = xconvert])
Packit df99a1
AM_CONDITIONAL([HAVE_CONVERSION_TOOL], [test x${conversion_tool} != xno])
Packit df99a1
Packit df99a1
# tweak rm to make libtool happy
Packit df99a1
AC_PATH_PROG(RM, rm) 
Packit df99a1
RM="$RM -f"
Packit df99a1
Packit df99a1
# Libtool & Compilers
Packit df99a1
AC_PROG_CC
Packit df99a1
AC_PROG_CXX
Packit df99a1
AC_OPTIMIZE
Packit df99a1
Packit df99a1
# C++
Packit df99a1
AC_LANG(C++)
Packit df99a1
AC_CXX_BOOL
Packit df99a1
AC_CXX_EXCEPTIONS
Packit df99a1
AC_CXX_TYPENAME
Packit df99a1
AC_CXX_STDINCLUDES
Packit df99a1
AC_CXX_NAMESPACES
Packit df99a1
AC_CXX_MEMBER_TEMPLATES
Packit df99a1
AC_CXX_INTEL_ATOMIC_BUILTINS
Packit df99a1
AC_CXX_GCCTLS
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Libraries
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
AC_CHECK_LIB(m,sqrt)
Packit df99a1
Packit df99a1
# AC_CHECK_LIB(iconv,libiconv_open) # not really used.
Packit df99a1
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Header Files
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
AC_HEADER_DIRENT
Packit df99a1
AC_HEADER_TIME
Packit df99a1
AC_HEADER_SYS_WAIT     
Packit df99a1
AC_CHECK_HEADERS(wchar.h wctype.h sys/mman.h iconv.h getopt.h)
Packit df99a1
AC_CHECK_HEADERS(langinfo.h sched.h new.h)
Packit df99a1
AC_CHECK_HEADERS(stdint.h inttypes.h sys/ipc.h sys/shm.h)
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Types
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
AC_TYPE_INT16_T
Packit df99a1
AC_TYPE_INT32_T
Packit df99a1
AC_TYPE_UINT16_T
Packit df99a1
AC_TYPE_UINT32_T
Packit df99a1
AC_CHECK_TYPES(wchar_t)
Packit df99a1
AC_CHECK_TYPES(long long int)
Packit df99a1
AC_CHECK_TYPES(mbstate_t,,,[#include "wchar.h"])
Packit df99a1
AC_SYS_LARGEFILE
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Functions
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
AC_FUNC_MMAP
Packit df99a1
AC_FUNC_FORK
Packit df99a1
AC_FUNC_FSEEKO
Packit df99a1
AC_CHECK_FUNCS(wcrtomb iswspace setenv nl_langinfo)
Packit df99a1
AC_CHECK_FUNCS(putc_unlocked strerror vsnprintf)
Packit df99a1
AC_CHECK_FUNCS(gethostname strftime getpwuid)
Packit df99a1
AC_CHECK_FUNCS(sigaction mkstemp sched_yield)
Packit df99a1
Packit df99a1
# iconv function might be defined as libiconv in iconv.h
Packit df99a1
AC_MSG_CHECKING([for iconv])
Packit df99a1
ac_has_iconv=no
Packit df99a1
AC_LANG_PUSH(C)
Packit df99a1
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "iconv.h"]], 
Packit df99a1
  [[iconv((iconv_t)0, (char**)0, (size_t*)0, (char**)0, (size_t*)0);]])],
Packit df99a1
  [ac_has_iconv=yes],[])
Packit df99a1
AC_MSG_RESULT($ac_has_iconv)
Packit df99a1
AC_LANG_POP(C)
Packit df99a1
if test x$ac_has_iconv = xyes ; then
Packit df99a1
    AC_DEFINE(HAVE_ICONV,1,
Packit df99a1
        [Define to 1 if you have the iconv function.])
Packit df99a1
fi
Packit df99a1
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Test auxilliary packages
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
# Search for PTHREADS (when not on windows)
Packit df99a1
have_pthread=no
Packit df99a1
AM_COND_IF([HAVE_OS_WIN32],,[AC_PATH_PTHREAD([have_pthread=yes])])
Packit df99a1
Packit df99a1
# Search JPEG library
Packit df99a1
AC_PATH_JPEG([have_jpeg="yes"], [have_jpeg="no"])
Packit df99a1
AC_MSG_CHECKING([for libjpeg])
Packit df99a1
AC_MSG_RESULT([${have_jpeg}])
Packit df99a1
Packit df99a1
# Search TIFF library
Packit df99a1
AC_PATH_TIFF([have_tiff="yes"], [have_tiff="no"])
Packit df99a1
AC_MSG_CHECKING([for libtiff])
Packit df99a1
AC_MSG_RESULT([${have_tiff}])
Packit df99a1
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# What to compile
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
# Check compilation of xmltools
Packit df99a1
want_xmltools="yes"
Packit df99a1
AC_ARG_ENABLE([xmltools],
Packit df99a1
   [AS_HELP_STRING([--disable-xmltools],
Packit df99a1
           [Disable djvu xml tools. @<:@default=enabled@:>@])],
Packit df99a1
   [want_xmltools=${enableval}])
Packit df99a1
Packit df99a1
AM_CONDITIONAL([WANT_XMLTOOLS], [test "x${want_xmltools}" = "xyes"])
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Desktop files
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
ac_desktopfiles="yes"
Packit df99a1
AC_ARG_ENABLE(desktopfiles,
Packit df99a1
    AS_HELP_STRING([--disable-desktopfiles], 
Packit df99a1
        [Do not install icons and mime types. @<:@default=enabled@:>@]),
Packit df99a1
    [ac_desktopfiles=$enableval])
Packit df99a1
Packit df99a1
AM_CONDITIONAL([WANT_DESKTOPFILES], [test "x${ac_desktopfiles}" = "xyes"])
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# End
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
# Define installation path for .pc files
Packit df99a1
PKG_INSTALLDIR
Packit df99a1
Packit df99a1
# Define installation paths and version string
Packit df99a1
AC_DEFINE_UNQUOTED(DJVULIBRE_VERSION,["${PACKAGE_VERSION}"],[version string])
Packit df99a1
Packit df99a1
# Output files
Packit df99a1
AC_CONFIG_FILES([
Packit df99a1
Makefile
Packit df99a1
libdjvu/Makefile
Packit df99a1
tools/Makefile
Packit df99a1
xmltools/Makefile
Packit df99a1
share/Makefile
Packit df99a1
desktopfiles/Makefile
Packit df99a1
])
Packit df99a1
Packit df99a1
# Go
Packit df99a1
AC_OUTPUT
Packit df99a1
Packit df99a1
# Final message
Packit df99a1
Packit df99a1
echo
Packit df99a1
echo "$PACKAGE $VERSION"
Packit df99a1
echo
Packit df99a1
echo "Configuration Options Summary:"
Packit df99a1
echo
Packit df99a1
echo "  OS.................: ${host_os}"
Packit df99a1
echo "  Win32 support......: ${have_os_win32}"
Packit df99a1
echo "  Pthread support....: ${have_pthread}"
Packit df99a1
echo "  Iconv support......: ${ac_has_iconv}"
Packit df99a1
echo "  JPEG support.......: ${have_jpeg}"
Packit df99a1
echo "  TIFF support.......: ${have_tiff}"
Packit df99a1
echo "  XML tools..........: ${want_xmltools}"
Packit df99a1
echo "  Desktop files......: ${ac_desktopfiles}"
Packit df99a1
echo "  Icon generation....: ${conversion_tool}"
Packit df99a1
echo
Packit df99a1
echo "Compilation..........: make (or gmake)"
Packit df99a1
echo "  CPPFLAGS...........: $CPPFLAGS"
Packit df99a1
echo "  CFLAGS.............: $CFLAGS"
Packit df99a1
echo "  CXXFLAGS...........: $CXXFLAGS"
Packit df99a1
echo "  LDFLAGS............: $LDFLAGS"
Packit df99a1
echo
Packit df99a1
echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
Packit df99a1
echo "  prefix...............: $prefix"
Packit df99a1
echo
Packit df99a1
Packit df99a1
# ----------------------------------------
Packit df99a1
# Stuff added to config.h
Packit df99a1
# ----------------------------------------
Packit df99a1
Packit df99a1
# Fence
Packit df99a1
AH_TOP([
Packit df99a1
#ifndef CONFIG_H
Packit df99a1
#define CONFIG_H
Packit df99a1
/* config.h: begin */
Packit df99a1
])
Packit df99a1
Packit df99a1
# L18N Macros
Packit df99a1
AH_BOTTOM([
Packit df99a1
Packit df99a1
/* - Miscellaneous */
Packit df99a1
#define AUTOCONF 1
Packit df99a1
#if defined(__CYGWIN32__) || !defined(_WIN32)
Packit df99a1
# define UNIX 1
Packit df99a1
#endif
Packit df99a1
Packit df99a1
/* - BOOL */
Packit df99a1
#if !defined(HAVE_BOOL) && !defined(bool)
Packit df99a1
#define bool  char
Packit df99a1
#define true  1
Packit df99a1
#define false 0
Packit df99a1
#endif
Packit df99a1
Packit df99a1
/* - WCHAR etc.*/
Packit df99a1
#if ! defined(HAVE_WCHAR_T)
Packit df99a1
#define HAS_WCHAR 0
Packit df99a1
#define HAS_WCTYPE 0
Packit df99a1
#define HAS_MBSTATE 0
Packit df99a1
#else
Packit df99a1
#define HAS_WCHAR 1
Packit df99a1
#if defined(HAVE_WCTYPE_H) && defined(HAVE_ISWSPACE)
Packit df99a1
#define HAS_WCTYPE 1
Packit df99a1
#endif
Packit df99a1
#if defined(HAVE_MBSTATE_T) && defined(HAVE_WCRTOMB)
Packit df99a1
#define HAS_MBSTATE 1
Packit df99a1
#endif
Packit df99a1
#endif
Packit df99a1
#if defined(HAVE_ICONV_H) && defined(HAVE_ICONV)
Packit df99a1
#define HAS_ICONV 1
Packit df99a1
#else
Packit df99a1
#define HAS_ICONV 0
Packit df99a1
#endif
Packit df99a1
Packit df99a1
/* - I18N MESSAGES HELL */
Packit df99a1
#define HAS_CTRL_C_IN_ERR_MSG 1
Packit df99a1
Packit df99a1
/* - CONTAINERS */
Packit df99a1
#ifndef HAVE_MEMBER_TEMPLATES
Packit df99a1
#define GCONTAINER_NO_MEMBER_TEMPLATES 1
Packit df99a1
#endif
Packit df99a1
#ifndef HAVE_TYPENAME
Packit df99a1
#define GCONTAINER_NO_TYPENAME 1
Packit df99a1
#endif
Packit df99a1
Packit df99a1
/* - JPEG */
Packit df99a1
#ifdef HAVE_JPEG
Packit df99a1
#define NEED_JPEG_DECODER 1
Packit df99a1
#endif
Packit df99a1
Packit df99a1
/* - MMAP */
Packit df99a1
#if defined(HAVE_MMAP) && defined(HAVE_SYS_MMAN_H)
Packit df99a1
#define HAS_MEMMAP 1
Packit df99a1
#else
Packit df99a1
#define HAS_MEMMAP 0
Packit df99a1
#endif
Packit df99a1
Packit df99a1
/* config.h: end */
Packit df99a1
#endif
Packit df99a1
])