Blame configure.ac

Packit Service df60bb
# Process this file with autoconf to produce a configure script.
Packit Service df60bb
# Configure template for gd library
Packit Service df60bb
Packit Service df60bb
AC_PREREQ(2.64)
Packit Service df60bb
Packit Service df60bb
# We extract version numbers from src/versions.h
Packit Service df60bb
define([gv],[perl config/getver.pl ]$1)
Packit Service df60bb
Packit Service df60bb
m4_define([gd_MAJOR],esyscmd(gv(MAJOR)))dnl
Packit Service df60bb
m4_define([gd_MINOR],esyscmd(gv(MINOR)))dnl
Packit Service df60bb
m4_define([gd_REVISION],esyscmd(gv(RELEASE)))dnl
Packit Service df60bb
m4_define([gd_EXTRA],esyscmd(gv(EXTRA)))dnl
Packit Service df60bb
m4_define([gd_PKG_VERSION],[gd_MAJOR.gd_MINOR.gd_REVISION]gd_EXTRA)]dnl
Packit Service df60bb
Packit Service df60bb
AC_INIT([GD], gd_PKG_VERSION, [https://github.com/libgd/libgd/issues], [libgd], [http://lib.gd])
Packit Service df60bb
AC_CONFIG_SRCDIR([src/gd.c])
Packit Service df60bb
AC_CONFIG_AUX_DIR(config)
Packit Service df60bb
AC_CONFIG_MACRO_DIR([m4])
Packit Service df60bb
AC_CANONICAL_HOST
Packit Service df60bb
Packit Service df60bb
# This is not used anywhere.  However, Makefile.netware searches
Packit Service df60bb
# through configure for these definitions to find the version numbers.
Packit Service df60bb
# (Assuming anyone still uses Netware, that should be changed to use
Packit Service df60bb
# gd.h via getver.pl instead.)
Packit Service df60bb
GDLIB_MAJOR=gd_MAJOR
Packit Service df60bb
GDLIB_MINOR=gd_MINOR
Packit Service df60bb
GDLIB_REVISION=gd_REVISION
Packit Service df60bb
GDLIB_EXTRA=gd_EXTRA
Packit Service df60bb
GDLIB_VERSION=gd_PKG_VERSION
Packit Service df60bb
Packit Service df60bb
AC_SUBST(GDLIB_MAJOR)
Packit Service df60bb
AC_SUBST(GDLIB_MINOR)
Packit Service df60bb
AC_SUBST(GDLIB_REVISION)
Packit Service df60bb
AC_SUBST(GDLIB_EXTRA)
Packit Service df60bb
AC_SUBST(GDLIB_VERSION)
Packit Service df60bb
Packit Service df60bb
# Dynamic library version information
Packit Service df60bb
# See http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
Packit Service df60bb
Packit Service df60bb
GDLIB_LT_CURRENT=3
Packit Service df60bb
dnl This is the version where the soname (current above) changes.  We use it
Packit Service df60bb
dnl to reset the revision base back to zero.  It's a bit of a pain, but some
Packit Service df60bb
dnl systems restrict the revision range below to [0..255] (like OS X).
Packit Service df60bb
GDLIB_PREV_MAJOR=2
Packit Service df60bb
GDLIB_PREV_MINOR=2
Packit Service df60bb
dnl This isn't 100% correct, but it tends to be a close enough approximation
Packit Service df60bb
dnl for how we manage the codebase.  It's rare to do a release that doesn't
Packit Service df60bb
dnl modify the library since this project is centered around the library.
Packit Service df60bb
GDLIB_LT_REVISION=$(( ((GDLIB_MAJOR - GDLIB_PREV_MAJOR) << 6) | ((GDLIB_MINOR - GDLIB_PREV_MINOR) << 3) | GDLIB_REVISION ))
Packit Service df60bb
GDLIB_LT_AGE=0
Packit Service df60bb
AC_SUBST(GDLIB_LT_CURRENT)
Packit Service df60bb
AC_SUBST(GDLIB_LT_REVISION)
Packit Service df60bb
AC_SUBST(GDLIB_LT_AGE)
Packit Service df60bb
Packit Service df60bb
#Expanded by tests later in this file. TBB 2.0.26
Packit Service df60bb
#2.0.28: GIF is standard now. Doesn't depend on anything else,
Packit Service df60bb
#so we always build it.
Packit Service df60bb
FEATURES="GD_GIF GD_GIFANIM GD_OPENPOLYGON"
Packit Service df60bb
AC_SUBST(FEATURES)
Packit Service df60bb
Packit Service df60bb
AM_INIT_AUTOMAKE([1.11 foreign dist-xz -Wall -Werror subdir-objects])
Packit Service df60bb
AC_CONFIG_HEADERS([src/config.h:src/config.hin])
Packit Service df60bb
Packit Service df60bb
AM_PROG_AR
Packit Service df60bb
AC_PROG_CC_STDC
Packit Service df60bb
AM_PROG_CC_C_O
Packit Service df60bb
AC_PROG_INSTALL
Packit Service df60bb
AC_PROG_LIBTOOL
Packit Service df60bb
AC_PROG_LN_S
Packit Service df60bb
AC_PROG_MAKE_SET
Packit Service df60bb
LT_INIT([win32-dll])
Packit Service df60bb
PKG_PROG_PKG_CONFIG
Packit Service df60bb
Packit Service df60bb
dnl may be required for freetype and Xpm
Packit Service df60bb
AC_PATH_X
Packit Service df60bb
Packit Service df60bb
if test -n "$x_includes" && test "x$x_includes" != xNONE ; then
Packit Service df60bb
  CFLAGS="$CFLAGS -I$x_includes"
Packit Service df60bb
fi
Packit Service df60bb
if test -n "$x_libraries" && test "x$x_libraries" != xNONE ; then
Packit Service df60bb
  LDFLAGS="$LDFLAGS -L$x_libraries"
Packit Service df60bb
fi
Packit Service df60bb
Packit Service df60bb
dnl Keep in sync with cmake/modules/AC_HEADER_STDC.cmake.
Packit Service df60bb
AC_HEADER_STDC
Packit Service df60bb
AC_CHECK_HEADERS_ONCE(m4_flatten([
Packit Service df60bb
	dirent.h
Packit Service df60bb
	errno.h
Packit Service df60bb
	inttypes.h
Packit Service df60bb
	limits.h
Packit Service df60bb
	stddef.h
Packit Service df60bb
	stdint.h
Packit Service df60bb
	stdlib.h
Packit Service df60bb
	string.h
Packit Service df60bb
	strings.h
Packit Service df60bb
	unistd.h
Packit Service df60bb
	sys/stat.h
Packit Service df60bb
	sys/types.h
Packit Service df60bb
]))
Packit Service df60bb
Packit Service df60bb
dnl if we're configuring on a system w/out gettext, don't fall over
Packit Service df60bb
m4_ifndef([AM_ICONV],[m4_define([AM_ICONV],[:])])
Packit Service df60bb
AM_ICONV
Packit Service df60bb
# if test -n "$LIBICONV" ; then
Packit Service df60bb
#   LIBS="$LIBS $LIBICONV"
Packit Service df60bb
# fi
Packit Service df60bb
Packit Service df60bb
AC_CHECK_HEADERS(iconv.h,
Packit Service df60bb
  [AC_MSG_CHECKING(whether iconv.h defines iconv_t)
Packit Service df60bb
   AC_EGREP_HEADER([typedef.*iconv_t],iconv.h,
Packit Service df60bb
     [AC_MSG_RESULT(yes)
Packit Service df60bb
      AC_DEFINE(HAVE_ICONV_T_DEF, 1,
Packit Service df60bb
                [Define if <iconv.h> defines iconv_t.])],
Packit Service df60bb
      AC_MSG_RESULT(no))])
Packit Service df60bb
Packit Service df60bb
# Checks for typedefs, structures, and compiler characteristics.
Packit Service df60bb
#AC_C_CONST
Packit Service df60bb
#AC_TYPE_SIZE_T
Packit Service df60bb
Packit Service df60bb
# Checks for library functions.
Packit Service df60bb
#AC_FUNC_ERROR_AT_LINE
Packit Service df60bb
#AC_FUNC_MALLOC
Packit Service df60bb
#AC_FUNC_REALLOC
Packit Service df60bb
#AC_FUNC_VPRINTF
Packit Service df60bb
#AC_CHECK_FUNCS([floor memset sqrt strchr strdup strtol])
Packit Service df60bb
Packit Service df60bb
dnl do we need to specify -lm explicitly?
Packit Service df60bb
AC_CHECK_FUNC(sin,,[AC_CHECK_LIB(m,sin)])
Packit Service df60bb
Packit Service df60bb
AX_PTHREAD()
Packit Service df60bb
AX_OPENMP()
Packit Service df60bb
Packit Service df60bb
dnl Helper macro for working with external libraries.
Packit Service df60bb
dnl GD_LIB_CHECK([SYM], [FEATURE], [name], [...test...])
Packit Service df60bb
dnl $1 - upper case symbol
Packit Service df60bb
dnl $2 - GD feature name to track
Packit Service df60bb
dnl $3 - lower case name for user
Packit Service df60bb
dnl $4 - test for the feature
Packit Service df60bb
dnl The test code should set gd_found_lib=yes to indicate success.
Packit Service df60bb
m4_define([GD_LIB_CHECK], [dnl
Packit Service df60bb
  dnl Export the flag for the user to leverage.  No other logic here.
Packit Service df60bb
  AC_MSG_CHECKING([whether to support $3])
Packit Service df60bb
  AC_ARG_WITH([$3],
Packit Service df60bb
    [AS_HELP_STRING([--with-$3@<:@=DIR@:>@], [Support $3 (optionally in DIR)])],
Packit Service df60bb
    [gd_with_lib=$withval],
Packit Service df60bb
    [gd_with_lib=auto])
Packit Service df60bb
  AC_MSG_RESULT([$gd_with_lib])
Packit Service df60bb
Packit Service df60bb
  gd_found_lib=no
Packit Service df60bb
  if test "$gd_with_lib" != "no"; then
Packit Service df60bb
    save_CPPFLAGS=$CPPFLAGS
Packit Service df60bb
    save_LDFLAGS=$LDFLAGS
Packit Service df60bb
    dnl Set up default libs/cflags vars based on the path if user gave us one.
Packit Service df60bb
    gd_lib_ldflags=
Packit Service df60bb
    gd_lib_cflags=
Packit Service df60bb
    case $gd_with_lib in
Packit Service df60bb
    yes|no|auto|"") ;;
Packit Service df60bb
    *)
Packit Service df60bb
      if test -d "$gd_with_lib/lib"; then
Packit Service df60bb
        gd_lib_ldflags="-L$gd_with_lib/lib"
Packit Service df60bb
        AS_VAR_APPEND([LDFLAGS], [" $gd_lib_ldflags"])
Packit Service df60bb
      fi
Packit Service df60bb
      if test -d "$gd_with_lib/include"; then
Packit Service df60bb
        gd_lib_cflags="-I$gd_with_lib/include"
Packit Service df60bb
        AS_VAR_APPEND([CPPFLAGS], [" $gd_lib_cflags"])
Packit Service df60bb
      fi
Packit Service df60bb
      ;;
Packit Service df60bb
    esac
Packit Service df60bb
    dnl Run the test for this feature.
Packit Service df60bb
    $4
Packit Service df60bb
    CPPFLAGS=$save_CPPFLAGS
Packit Service df60bb
    LDFLAGS=$save_LDFLAGS
Packit Service df60bb
Packit Service df60bb
    if test "$gd_found_lib" = "yes"; then
Packit Service df60bb
      AC_DEFINE([HAVE_$1], [1], [Define if you have $3])
Packit Service df60bb
      AS_VAR_APPEND([FEATURES], [" GD_$2"])
Packit Service df60bb
      dnl Merge the flags into the main LIBS/CPPFLAGS.
Packit Service df60bb
      $1][_LIBS="$gd_lib_ldflags $][$1][_LIBS"
Packit Service df60bb
      $1][_CFLAGS="$gd_lib_cflags $][$1][_CFLAGS"
Packit Service df60bb
      AS_VAR_APPEND([LIBS], [" $][$1][_LIBS"])
Packit Service df60bb
      AS_VAR_APPEND([CPPFLAGS], [" $][$1][_CFLAGS"])
Packit Service df60bb
    elif test "$gd_with_lib" = "yes"; then
Packit Service df60bb
      AC_MSG_ERROR([$3 requested but not found])
Packit Service df60bb
    else
Packit Service df60bb
      AC_MSG_NOTICE([Disabling support for $3])
Packit Service df60bb
    fi
Packit Service df60bb
  fi
Packit Service df60bb
  AM_CONDITIONAL([HAVE_$1], test "$gd_found_lib" = yes)
Packit Service df60bb
  gd_with_$1=$gd_found_lib
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Helper macro for working with external libraries with pkg-config support.
Packit Service df60bb
dnl GD_LIB_PKG_CHECK([SYM], [FEATURE], [name], [pkg-config module], [...fallback test...])
Packit Service df60bb
dnl $1 - upper case symbol
Packit Service df60bb
dnl $2 - GD feature name to track
Packit Service df60bb
dnl $3 - lower case name for user
Packit Service df60bb
dnl $4 - pkg-config module to look for
Packit Service df60bb
dnl $5 - fallback test for the feature
Packit Service df60bb
m4_define([GD_LIB_PKG_CHECK], [dnl
Packit Service df60bb
  GD_LIB_CHECK([$1], [$2], [$3], [dnl
Packit Service df60bb
    PKG_CHECK_MODULES([$1], [$4], [gd_found_lib=yes], [$5])
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for zlib support.
Packit Service df60bb
GD_LIB_PKG_CHECK([LIBZ], [ZLIB], [zlib], [zlib], [dnl
Packit Service df60bb
  AC_CHECK_LIB([z], [deflate], [dnl
Packit Service df60bb
    AS_VAR_APPEND([LIBZ_LIBS], [" -lz"])
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for libpng support.
Packit Service df60bb
GD_LIB_PKG_CHECK([LIBPNG], [PNG], [png], [libpng], [
Packit Service df60bb
  LIBPNG_CONFIG=$gd_with_lib/bin/libpng-config
Packit Service df60bb
  if test -e "$LIBPNG_CONFIG"; then
Packit Service df60bb
    LIBPNG_CFLAGS=`$LIBPNG_CONFIG --cflags`
Packit Service df60bb
    LIBPNG_LIBS=`$LIBPNG_CONFIG --ldflags`
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  fi
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for FreeType support.
Packit Service df60bb
GD_LIB_PKG_CHECK([LIBFREETYPE], [FREETYPE], [freetype], [freetype2 >= 9.8.3], [
Packit Service df60bb
  FREETYPE_CONFIG=$gd_with_lib/bin/freetype-config
Packit Service df60bb
  if test -e "$FREETYPE_CONFIG"; then
Packit Service df60bb
    LIBFREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
Packit Service df60bb
    LIBFREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  fi
Packit Service df60bb
])
Packit Service df60bb
if test "$gd_with_LIBFREETYPE" = "yes"; then
Packit Service df60bb
  AC_DEFINE([HAVE_FT2BUILD_H], [1], [Define if you have the ft2build.h header.])
Packit Service df60bb
fi
Packit Service df60bb
Packit Service df60bb
dnl Check for fontconfig support.
Packit Service df60bb
GD_LIB_PKG_CHECK([LIBFONTCONFIG], [FONTCONFIG], [fontconfig], [fontconfig], [
Packit Service df60bb
  AC_CHECK_LIB([fontconfig], [FcInit], [dnl
Packit Service df60bb
    AS_VAR_APPEND([LIBFONTCONFIG_LIBS], [" -lfontconfig"])
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for jpeg support.
Packit Service df60bb
GD_LIB_CHECK([LIBJPEG], [JPEG], [jpeg], [
Packit Service df60bb
  AC_CHECK_LIB([jpeg], [jpeg_set_defaults], [dnl
Packit Service df60bb
    AS_VAR_APPEND([LIBJPEG_LIBS], [" -ljpeg"])
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for libimagequant support.
Packit Service df60bb
GD_LIB_CHECK([LIBIMAGEQUANT], [LIQ], [liq], [
Packit Service df60bb
  AC_CHECK_HEADER([libimagequant.h], [
Packit Service df60bb
    save_CFLAGS=$CFLAGS
Packit Service df60bb
    CFLAGS="$CFLAGS $OPENMP_CFLAGS"
Packit Service df60bb
    AC_CHECK_LIB([imagequant], [liq_attr_create_with_allocator], [dnl
Packit Service df60bb
      AS_VAR_APPEND([LIBIMAGEQUANT_LIBS], [" -limagequant $OPENMP_CFLAGS"])
Packit Service df60bb
      gd_found_lib=yes
Packit Service df60bb
    ])
Packit Service df60bb
    CFLAGS=$save_CFLAGS
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for xpm support.
Packit Service df60bb
GD_LIB_PKG_CHECK([LIBXPM], [XPM], [xpm], [xpm], [
Packit Service df60bb
  AC_CHECK_LIB([Xpm], [XpmReadFileToXpmImage], [dnl
Packit Service df60bb
    AS_VAR_APPEND([LIBXPM_LIBS], [" -lXpm"])
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for tiff support.
Packit Service df60bb
GD_LIB_PKG_CHECK([LIBTIFF], [TIFF], [tiff], [libtiff-4], [
Packit Service df60bb
  AC_CHECK_LIB([tiff], [TIFFClientOpen], [dnl
Packit Service df60bb
    AS_VAR_APPEND([LIBTIFF_LIBS], [" -ltiff"])
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
dnl Check for webp support.
Packit Service df60bb
GD_LIB_CHECK([LIBWEBP], [WEBP], [webp], [
Packit Service df60bb
  AC_CHECK_LIB([webp], [WebPGetInfo], [dnl
Packit Service df60bb
    AS_VAR_APPEND([LIBWEBP_LIBS], [" -lwebp"])
Packit Service df60bb
    gd_found_lib=yes
Packit Service df60bb
  ])
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
gl_VISIBILITY()
Packit Service df60bb
CFLAGS="$CFLAGS $CFLAG_VISIBILITY"
Packit Service df60bb
Packit Service df60bb
MINGW_AC_WIN32_NATIVE_HOST()
Packit Service df60bb
Packit Service df60bb
if test "$mingw_cv_win32_host" = yes; then
Packit Service df60bb
AC_DEFINE([BGDWIN32], [], [Define is you are building for Win32 API])
Packit Service df60bb
fi
Packit Service df60bb
Packit Service df60bb
dnl Enable -Wall if possible.  Do it after all other tests.
Packit Service df60bb
AX_CFLAGS_WARN_ALL
Packit Service df60bb
Packit Service df60bb
dnl Enable -Werror if possible.  Do it after all other tests.
Packit Service df60bb
AC_ARG_ENABLE([werror], [AS_HELP_STRING([--enable-werror], [treat compile warnings as errors])])
Packit Service df60bb
if test "$enable_werror" = "yes" || \
Packit Service df60bb
   test "$GCC" = "yes" -a "$enable_werror" != "no" -a -d "$srcdir/.git"; then
Packit Service df60bb
  CFLAGS="-Werror $CFLAGS"
Packit Service df60bb
  CXXFLAGS="-Werror $CXXFLAGS"
Packit Service df60bb
fi
Packit Service df60bb
Packit Service df60bb
dnl report configuration
Packit Service df60bb
AC_MSG_RESULT([
Packit Service df60bb
** Configuration summary for $PACKAGE $VERSION:
Packit Service df60bb
Packit Service df60bb
   Support for Zlib:                 $gd_with_LIBZ
Packit Service df60bb
   Support for PNG library:          $gd_with_LIBPNG
Packit Service df60bb
   Support for JPEG library:         $gd_with_LIBJPEG
Packit Service df60bb
   Support for WebP library:         $gd_with_LIBWEBP
Packit Service df60bb
   Support for TIFF library:         $gd_with_LIBTIFF
Packit Service df60bb
   Support for Freetype 2.x library: $gd_with_LIBFREETYPE
Packit Service df60bb
   Support for Fontconfig library:   $gd_with_LIBFONTCONFIG
Packit Service df60bb
   Support for Xpm library:          $gd_with_LIBXPM
Packit Service df60bb
   Support for liq library:          $gd_with_LIBIMAGEQUANT
Packit Service df60bb
   Support for pthreads:             $ax_pthread_ok
Packit Service df60bb
])
Packit Service df60bb
Packit Service df60bb
AC_CONFIG_FILES([Makefile
Packit Service df60bb
                src/Makefile
Packit Service df60bb
                tests/Makefile
Packit Service df60bb
                config/Makefile
Packit Service df60bb
                config/gdlib-config
Packit Service df60bb
                config/gdlib.pc])
Packit Service df60bb
Packit Service df60bb
AC_OUTPUT