Blame configure.ac

Packit Service 366393
dnl configure.in by David Necas (Yeti) <yeti@physics.muni.cz>
Packit Service 366393
dnl This file is in public domain.
Packit Service 366393
dnl Process this file with autoconf to produce a configure script.
Packit Service 366393
dnl Shake before use.
Packit Service 366393
AC_INIT(Enca, 1.19, [https://github.com/nijel/enca/issues])
Packit Service 366393
AC_PREREQ(2.52)
Packit Service 366393
AC_CONFIG_SRCDIR(src/enca.c)
Packit Service 366393
AC_CONFIG_MACRO_DIR([m4])
Packit Service 366393
AC_CONFIG_FILES( \
Packit Service 366393
  Makefile \
Packit Service 366393
  enca.spec \
Packit Service 366393
  enca.pc \
Packit Service 366393
  devel-docs/Makefile \
Packit Service 366393
  data/Makefile \
Packit Service 366393
  lib/Makefile \
Packit Service 366393
  script/Makefile \
Packit Service 366393
  script/b-cstocs \
Packit Service 366393
  script/b-map \
Packit Service 366393
  script/b-piconv \
Packit Service 366393
  script/b-umap \
Packit Service 366393
  src/Makefile \
Packit Service 366393
  src/HELP \
Packit Service 366393
  test/Makefile \
Packit Service 366393
  tools/Makefile)
Packit Service 366393
Packit Service 366393
AC_CONFIG_HEADERS(config.h)
Packit Service 366393
AM_INIT_AUTOMAKE([1.8 gnits check-news dist-xz])
Packit Service 366393
AM_ACLOCAL_INCLUDE(m4)
Packit Service 366393
AM_MAINTAINER_MODE
Packit Service 366393
Packit Service 366393
dnl RPM release (normally always 1, may be manually changed by package
Packit Service 366393
dnl maintainer in spec later)
Packit Service 366393
RELEASE=1
Packit Service 366393
Packit Service 366393
dnl Checks for programs.
Packit Service 366393
AC_PROG_AWK
Packit Service 366393
AC_PROG_CC
Packit Service 366393
AC_GNU_SOURCE
Packit Service 366393
AC_AIX
Packit Service 366393
AC_ISC_POSIX
Packit Service 366393
AC_PROG_LIBTOOL
Packit Service 366393
AC_PROG_CC
Packit Service 366393
AM_PROG_CC_C_O
Packit Service 366393
AC_PROG_INSTALL
Packit Service 366393
AC_PROG_LN_S
Packit Service 366393
AC_PATH_PROG(MKTEMP_PROG, mktemp)
Packit Service 366393
Packit Service 366393
dnl With GCC, be paranoiac.  It should compile really cleanly.
Packit Service 366393
dnl Except -Wno-sign-compare, but older gcc's don't know it.
Packit Service 366393
if test "$GCC" = yes; then
Packit Service 366393
  CFLAGS="-Wall -Wextra -W -pedantic $CFLAGS"
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
dnl Check for various external converters.
Packit Service 366393
AC_PATH_PROG(CSTOCS_PROG, cstocs)
Packit Service 366393
AC_PATH_PROG(RECODE_PROG, recode)
Packit Service 366393
AC_PATH_PROG(UMAP_PROG, umap)
Packit Service 366393
AC_PATH_PROG(PICONV_PROG, piconv)
Packit Service 366393
AC_PATH_PROG(MAP_PROG, map)
Packit Service 366393
Packit Service 366393
dnl External convetor.  It may be disabled later, if fork() doesn't work.
Packit Service 366393
AC_ARG_ENABLE(external,
Packit Service 366393
  [  --enable-external       enable conversion using external programs @<:@yes@:>@],
Packit Service 366393
  [case "${enableval}" in
Packit Service 366393
    yes) WANT_EXTERNAL=yes ;;
Packit Service 366393
    no)  WANT_EXTERNAL=no ;;
Packit Service 366393
    *)   AC_MSG_ERROR(bad value ${enableval} for --enable-external) ;;
Packit Service 366393
    esac],
Packit Service 366393
  [WANT_EXTERNAL=yes])
Packit Service 366393
Packit Service 366393
dnl gcov coverage
Packit Service 366393
AM_GCOV
Packit Service 366393
Packit Service 366393
dnl Fool autoconf, it can't parse the for-cycle below
Packit Service 366393
if false; then
Packit Service 366393
AC_DEFINE_UNQUOTED(CSTOCS_PROG,"",[Define to path to the cstocs recoder.])
Packit Service 366393
AC_DEFINE_UNQUOTED(MAP_PROG,"",[Define to path to the map recoder.])
Packit Service 366393
AC_DEFINE_UNQUOTED(RECODE_PROG,"",[Define to path to the recode recoder.])
Packit Service 366393
AC_DEFINE_UNQUOTED(PICONV_PROG,"",[Define to path to the piconv recoder.])
Packit Service 366393
AC_DEFINE_UNQUOTED(UMAP_PROG,"",[Define to path to the umap recoder.])
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
dnl Find default external converter
Packit Service 366393
for w in cstocs recode piconv map umap; do
Packit Service 366393
  wPROG=`echo $w | tr $as_cr_letters $as_cr_LETTERS`_PROG
Packit Service 366393
  # Is this POSIX?  But even ash supports it.
Packit Service 366393
  eval wPROGcv=$`echo ac_cv_path_$wPROG`
Packit Service 366393
  if test -n "$wPROGcv"; then
Packit Service 366393
    AC_DEFINE_UNQUOTED($wPROG,"$wPROGcv")
Packit Service 366393
    if test -z "$DEFAULT_EXTERNAL_CONVERTER"; then
Packit Service 366393
      DEFAULT_EXTERNAL_CONVERTER=$w
Packit Service 366393
    fi
Packit Service 366393
  fi
Packit Service 366393
done
Packit Service 366393
Packit Service 366393
dnl And for gtk-doc
Packit Service 366393
gtk_CHECK_GTK_DOC
Packit Service 366393
Packit Service 366393
dnl Checks for libraries.
Packit Service 366393
ye_CHECK_LIBM
Packit Service 366393
Packit Service 366393
dnl Checks for header files.
Packit Service 366393
AC_HEADER_STDC
Packit Service 366393
AC_HEADER_SYS_WAIT
Packit Service 366393
AC_HEADER_TIME
Packit Service 366393
AC_HEADER_STAT
Packit Service 366393
AC_HEADER_STDBOOL
Packit Service 366393
AC_CHECK_HEADERS( \
Packit Service 366393
  errno.h \
Packit Service 366393
  fcntl.h \
Packit Service 366393
  getopt.h \
Packit Service 366393
  langinfo.h \
Packit Service 366393
  limits.h \
Packit Service 366393
  locale.h \
Packit Service 366393
  memory.h \
Packit Service 366393
  string.h \
Packit Service 366393
  strings.h \
Packit Service 366393
  sys/stat.h \
Packit Service 366393
  sys/types.h \
Packit Service 366393
  sys/wait.h \
Packit Service 366393
  sys/time.h \
Packit Service 366393
  time.h \
Packit Service 366393
  unistd.h \
Packit Service 366393
  wordexp.h)
Packit Service 366393
Packit Service 366393
dnl Checks for typedefs, structures, and compiler characteristics.
Packit Service 366393
AC_C_CONST
Packit Service 366393
AC_TYPE_SIZE_T
Packit Service 366393
AC_TYPE_MODE_T
Packit Service 366393
AC_TYPE_OFF_T
Packit Service 366393
AC_TYPE_PID_T
Packit Service 366393
AC_TYPE_UID_T
Packit Service 366393
AC_CHECK_TYPE(ssize_t, int)
Packit Service 366393
# FIXME: This is crude.  It seems to work on Linux, though.
Packit Service 366393
AC_CHECK_DECLS(LC_MESSAGES,,,[#include <locale.h>])
Packit Service 366393
Packit Service 366393
ye_CHECK_VAR_PROGRAM_INVOCATION_SHORT_NAME
Packit Service 366393
Packit Service 366393
dnl Checks for library functions.
Packit Service 366393
AC_FUNC_FORK
Packit Service 366393
AC_CHECK_FUNCS( \
Packit Service 366393
  ftruncate \
Packit Service 366393
  gettimeofday \
Packit Service 366393
  isatty \
Packit Service 366393
  nl_langinfo \
Packit Service 366393
  random \
Packit Service 366393
  realpath \
Packit Service 366393
  strstr \
Packit Service 366393
  stpcpy \
Packit Service 366393
  setlocale \
Packit Service 366393
  ttyname \
Packit Service 366393
  wordexp)
Packit Service 366393
AC_REPLACE_FUNCS(getopt_long)
Packit Service 366393
dnl Following two check for much more than just library functions, iconv test
Packit Service 366393
dnl in fact has to build a simple iconv app to find out wheter it's usable.
Packit Service 366393
CONVERTER_LIBS=
Packit Service 366393
ye_CHECK_FUNC_ICONV_USABLE
Packit Service 366393
ye_CHECK_LIB_RECODE
Packit Service 366393
Packit Service 366393
DEFAULT_CONVERTER_LIST="built-in"
Packit Service 366393
if test "$librecode_ok" = "yes"; then
Packit Service 366393
  DEFAULT_CONVERTER_LIST="$DEFAULT_CONVERTER_LIST,librecode"
Packit Service 366393
else
Packit Service 366393
  if test "$libiconv_ok" = "yes"; then
Packit Service 366393
    DEFAULT_CONVERTER_LIST="$DEFAULT_CONVERTER_LIST,iconv"
Packit Service 366393
  fi
Packit Service 366393
fi
Packit Service 366393
AC_DEFINE_UNQUOTED(DEFAULT_CONVERTER_LIST,"$DEFAULT_CONVERTER_LIST",[Define to default converter list.])
Packit Service 366393
Packit Service 366393
if test "$WANT_EXTERNAL" = "yes" -a "$ac_cv_func_fork_works" = "yes"; then
Packit Service 366393
  AC_DEFINE(ENABLE_EXTERNAL,1,[Define to enable external converter programs.])
Packit Service 366393
  if test -n "$DEFAULT_EXTERNAL_CONVERTER"; then
Packit Service 366393
    enable_external="yes ($DEFAULT_EXTERNAL_CONVERTER)"
Packit Service 366393
  else
Packit Service 366393
    enable_external="yes (but no suitable found)"
Packit Service 366393
  fi
Packit Service 366393
else
Packit Service 366393
  enable_external=no
Packit Service 366393
  DEFAULT_EXTERNAL_CONVERTER=
Packit Service 366393
fi
Packit Service 366393
AC_DEFINE_UNQUOTED(DEFAULT_EXTERNAL_CONVERTER,"$DEFAULT_EXTERNAL_CONVERTER",[Define to default external converter program.])
Packit Service 366393
Packit Service 366393
dnl Try to find locale.alias.  FIXME! FIXME! FIXME! This works on GNU/Linux and
Packit Service 366393
dnl perhaps nowhere else.  Any suggestions are welcome.
Packit Service 366393
ye_PATH_LOCALE_ALIAS
Packit Service 366393
Packit Service 366393
dnl Random filename generation in scripts
Packit Service 366393
if test -n "$MKTEMP_PROG"; then
Packit Service 366393
  SHELL_RANDOM_FILENAME='`'$MKTEMP_PROG' /tmp/enca-$$-XXXXXXXX`'
Packit Service 366393
else
Packit Service 366393
  SHELL_RANDOM_FILENAME='/tmp/enca-$$-$RANDOM'
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
AC_SUBST(RELEASE)
Packit Service 366393
AC_SUBST(CONVERTER_LIBS)
Packit Service 366393
AC_SUBST(DEFAULT_EXTERNAL_CONVERTER)
Packit Service 366393
AC_SUBST(DEFAULT_CONVERTER_LIST)
Packit Service 366393
AC_SUBST(SHELL_RANDOM_FILENAME)
Packit Service 366393
Packit Service 366393
AC_OUTPUT
Packit Service 366393
Packit Service 366393
dnl Inform user what optional features will be built.
Packit Service 366393
if test "$yeti_recode_buggy" = yes; then
Packit Service 366393
  librecode_state="$librecode_ok (buggy, see above)"
Packit Service 366393
else
Packit Service 366393
  librecode_state="$librecode_ok"
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
if test -z "$yeti_cv_file_locale_alias"; then
Packit Service 366393
  locale_alias_state="built-in (naive)"
Packit Service 366393
else
Packit Service 366393
  locale_alias_state="$yeti_cv_file_locale_alias"
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
if test "$ac_cv_func_wordexp" = yes; then
Packit Service 366393
  ENCAOPT_state="$ac_cv_func_wordexp"
Packit Service 366393
else
Packit Service 366393
  ENCAOPT_state="built-in parser (naive)"
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
if test "$enable_static" = yes; then
Packit Service 366393
  if test "$enable_shared" = yes; then
Packit Service 366393
    libenca_state="static, shared"
Packit Service 366393
  else
Packit Service 366393
    libenca_state=static
Packit Service 366393
  fi
Packit Service 366393
else
Packit Service 366393
  if test "$enable_shared" = yes; then
Packit Service 366393
    # Can this happen?
Packit Service 366393
    libenca_state=shared
Packit Service 366393
  else
Packit Service 366393
    libenca_state="not at all?"
Packit Service 366393
  fi
Packit Service 366393
fi
Packit Service 366393
Packit Service 366393
echo "================================================================="
Packit Service 366393
echo "  Features:"
Packit Service 366393
echo "    libenca will be built as:            $libenca_state"
Packit Service 366393
echo "    GNU recode library interface:        $librecode_state"
Packit Service 366393
echo "    UNIX98 iconv interface:              $libiconv_ok"
Packit Service 366393
if test "$libiconv_ok" != "yes" && test "$librecode_ok" != "yes"; then
Packit Service 366393
echo "    (consider installing at least one of GNU libiconv and GNU librecode)"
Packit Service 366393
fi
Packit Service 366393
echo "    External converters:                 $enable_external"
Packit Service 366393
echo "    Language preferences from locale:    $ac_cv_func_setlocale"
Packit Service 366393
if test "$ac_cv_func_setlocale" = yes; then
Packit Service 366393
echo "    Language aliases decryption:         $locale_alias_state"
Packit Service 366393
fi
Packit Service 366393
echo "    Target charset from locale:          $ac_cv_func_nl_langinfo"
Packit Service 366393
echo "    ENCAOPT environment variable:        $ENCAOPT_state"
Packit Service 366393
echo "================================================================="
Packit Service 366393
Packit Service 366393
ye_WARN_FAIL($ac_cv_header_stdc,"ISO C headers")
Packit Service 366393
ye_WARN_FAIL($ac_cv_header_unistd_h,"unistd.h")
Packit Service 366393
ye_WARN_FAIL($ac_cv_header_sys_types_h,"sys/types.h")
Packit Service 366393
ye_WARN_FAIL($ac_cv_header_sys_stat_h,"sys/stat.h")
Packit Service 366393
Packit Service 366393
echo
Packit Service 366393
echo "Configure complete, now type \`make' to compile enca."
Packit Service 366393
echo "If it compiles, don't forget to run \`make check'."