dnl Process this file with autoconf to produce a configure script.

AC_INIT(fontforge/fontforge.h)
AC_PROG_CC
AC_PROG_INSTALL
dnl AC_DISABLE_SHARED
dnl AC_ENABLE_STATIC

AC_PROG_RANLIB

AC_CANONICAL_HOST
AC_SUBST(HOST)
AC_SUBST(MACAPP)
HOST="$host"

AC_C_CONST
AC_PATH_XTRA
AC_SUBST(X_11LIB)
AC_SUBST(GDRAW_LIB)
AC_SUBST(exeOBJECTS)
AC_SUBST(LINK_WITH_GDRAW)
X_11LIB=-lX11
GDRAW_LIB=libgdraw
exeOBJECTS=fontforge_UIOBJECTS
LINK_WITH_GDRAW=../libs/libgdraw.a
if test "$no_x" = "yes"; then
 X_11LIB=
 GDRAW_LIB=
 exeOBJECTS=fontforge_SCRIPTOBJ
 LINK_WITH_GDRAW=
 MACAPP=
else
 dnl AC_CHECK_HEADER("X11/extensions/XInput.h", : ,AC_DEFINE(_NO_XINPUT),)
 dnl AC_CHECK_HEADER("X11/extensions/XI.h", : ,AC_DEFINE(_NO_XINPUT),)
 dnl /usr/share/doc/XFree86-doc-4.2.0/Xi/lib.PS

 AC_CHECK_LIB(Xi, XOpenDevice, X_11LIB="-lXi -lX11" ,AC_DEFINE(_NO_XINPUT), $X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS -lX11 ) 
 AC_CHECK_LIB(xkbui, XkbQueryExtension, X_11LIB="$X_11LIB -lxkbui" ,AC_DEFINE(_NO_XKB), $X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS -lX11 -lm ) 
fi

gww_define_caps_for_alt="dontknow"
gww_nodynamic="no"
gww_needsstatic="no"


case "$host" in
*-apple-darwin*)
AC_DEFINE(_CursorsMustBe16x16)
AC_DEFINE(_Keyboard,1)
AC_DEFINE(__Mac,1)
MACAPP=FontForge.app/Contents/Info.plist
 gww_define_caps_for_alt="1"

dnl fink puts stuff under /sw
dnl macports puts stuff under /opt/local

 if test "$CPPFLAGS" \!= "" >/dev/null ; then
  TrustUser="yes"
 elif test -d /sw/include >/dev/null ; then
  CPPFLAGS="$CPPFLAGS -I/sw/include"
 elif test -d /opt/local/include >/dev/null ; then
  CPPFLAGS="$CPPFLAGS -I/opt/local/include"
 fi
 if test "$LDFLAGS" \!= "" >/dev/null ; then
  TrustUser="yes"
 elif test -d /sw/lib >/dev/null ; then
  LDFLAGS="$LDFLAGS -L/sw/lib"
  gww_rpath="-rpath /sw/lib"
 elif test -d /opt/local/lib >/dev/null ; then
  LDFLAGS="$LDFLAGS -L/opt/local/lib"
  gww_rpath="-rpath /opt/local/lib"
 fi
 LIBS="-Wl,/System/Library/Frameworks/Carbon.framework/Carbon $LIBS"
 LIBS="/System/Library/Frameworks/CoreServices.framework/CoreServices $LIBS"
 ;;
powerpc-*-*linux*)
AC_DEFINE(_Keyboard,3)
 ;;
*sparc*)
AC_DEFINE(_Keyboard,2)
 ;;
*-pc-cygwin*)
AC_DEFINE(_BrokenBitmapImages)
AC_DEFINE(_ModKeysAutoRepeat)
AC_DEFINE(__CygWin,1)
dnl on cygwin about half the libraries have no .la files so I can't figure out
dnl how to load them at run time.
gww_nodynamic="yes"
 ;;
esac

AC_C_BIGENDIAN()

AC_ARG_WITH(capslock-for-alt,
 [  --with-capslock-for-alt   Control whether to use capslock rather than alt/meta to alter behavior of tools in outline/bitmap windows],
 [
   if test "$withval" \!= "2" ; then
     gww_define_caps_for_alt="2"
   elif test "$withval" \!= "no" ; then
     gww_define_caps_for_alt="1"
   else
     gww_define_caps_for_alt="0"
   fi
 ])
if test "$gww_define_caps_for_alt" \!= "dontknow" ; then
  AC_DEFINE_UNQUOTED(FONTFORGE_CONFIG_CAPSLOCK_FOR_ALT,$gww_define_caps_for_alt)
fi

AC_ARG_ENABLE(debug-raw-points,
 [  --enable-debug-raw-points   Add a raw mode to the points window of the debugger],
 [
   if test "$enableval" \!= "no" ; then
     AC_DEFINE(FONTFORGE_CONFIG_SHOW_RAW_POINTS)
   fi

 ])

dnl One user seems to have messed up iconv on his system and can't get it
dnl to work.

gww_uselessiconv="no"
AC_ARG_WITH(iconv,
 [  --without-iconv   Don't use the system's iconv(3) routines, use fontforge's instead],
 [
   if test "$withval" = "no" ; then
     gww_uselessiconv="yes"
   fi
 ])

AC_SUBST(FF_EXTRA_FILES)

AC_SEARCH_LIBS(dlopen, dl) dnl some systems have this in libc
AC_SEARCH_LIBS(inet_aton, resolv) dnl some systems have this in libc
if test "$gww_uselessiconv" = "no" ; then
# on some systems "iconv()" lives in libc. On others it lives in libiconv
#  on older systems "libiconv()" lives in libiconv
 AC_SEARCH_LIBS(iconv, iconv,,
   AC_SEARCH_LIBS(libiconv, iconv,,gww_uselessiconv="yes"))
fi

python="yes"
AC_ARG_WITH(python,
 [  --without-python   Don't include a python interpreter],
 [
    if test "$withval" = "no" >/dev/null 2>&1 ; then
	python="no"
    fi
 ], : )
if test "$python" = "yes" ; then
  echo -n "Checking for python..."
  if python -c "import distutils.sysconfig ; print '-I%s' % distutils.sysconfig.get_config_var('INCLUDEPY')" >/dev/null 2>&1 ; then
    if python -c "import distutils.sysconfig ; print '%s/%s %s' % (distutils.sysconfig.get_config_var('LIBPL'),distutils.sysconfig.get_config_var('LDLIBRARY'),distutils.sysconfig.get_config_var('LIBS'))" >/dev/null 2>&1 ; then
      PyVersion=`python -c "import distutils.sysconfig ; print '%s' % distutils.sysconfig.get_config_var('VERSION')"`
      PySubVersion=`echo $PyVersion |sed -e 's/2\.//' -e 's/3\.//'`
      PyInc=`python -c "import distutils.sysconfig ; print '%s' % distutils.sysconfig.get_config_var('INCLUDEPY')"`
      PyLib=`python -c "import distutils.sysconfig ; print '%s/%s' % (distutils.sysconfig.get_config_var('LIBPL'),distutils.sysconfig.get_config_var('LDLIBRARY'))"`
      if test "$PySubVersion" \!= "" -a "$PySubVersion" -le 2 ; then
        python="no"
      elif test "$PySubVersion" \!= "" -a "$PySubVersion" -ge 3 -a -e $PyLib -a -e $PyInc; then
	PyIncs=`python -c "import distutils.sysconfig ; print '-I%s' % distutils.sysconfig.get_config_var('INCLUDEPY')"`
        PyLibs=`python -c "import distutils.sysconfig ; print '%s/%s %s' % (distutils.sysconfig.get_config_var('LIBPL'),distutils.sysconfig.get_config_var('LDLIBRARY'),distutils.sysconfig.get_config_var('LIBS'))"`
        LIBS="$LIBS $PyLibs"
	CPPFLAGS="$CPPFLAGS $PyIncs"
      else
	# python gets it wrong on all my build systems, this seems to work instead
	PyName="python$PyVersion"
	AC_SEARCH_LIBS(Py_Main, $PyName python, : , python="no")
	if test -d /usr/include/$PyName ; then
	  CPPFLAGS="$CPPFLAGS -I/usr/include/$PyName"
	else
	  python="no"
	fi
      fi
    else
      python="no"
    fi
  else
    python="no"
  fi
  echo $python
fi

if test "$python" = "no" ; then
  AC_DEFINE(_NO_PYTHON)
else
  AC_DEFINE_UNQUOTED(PYTHON_LIB_NAME,"python$PyVersion")
fi
ffscript="yes"
AC_ARG_WITH(native-script,
 [  --without-native-script   Don't include a legacy fontforge scripting interpreter],
 [
    if test "$withval" = "no" >/dev/null 2>&1 ; then
	ffscript="no"
    fi
 ], : )
if test "$ffscript" = "no" ; then
  AC_DEFINE(_NO_FFSCRIPT)
fi

AC_CHECK_FUNC(tzset,:,AC_DEFINE(_NO_TZSET))

dnl linux has isnan in math.h, solaris puts it in ieeeefp.h

AC_CHECK_HEADERS([ieeefp.h])

dnl linux has integer types in stdint.h, solaris, vms in inttypes.h

AC_CHECK_HEADERS([stdint.h])

dnl Is there a better way to add a directory to the include path?

FreeType2_IncRoot=
if sh -c "freetype-config --prefix" >/dev/null 2>&1 ; then
 FreeType2_IncRoot=`freetype-config --prefix`
 AC_CHECK_FILE($FreeType2_IncRoot/include/freetype2,CFLAGS="$CFLAGS -I$FreeType2_IncRoot/include/freetype2/",FreeType2_IncRoot=)
 ft_flags=`freetype-config --cflags`
 CFLAGS="$CFLAGS $ft_flags"
fi

if test "FreeType2_IncRoot" = "" >/dev/null 2>&1 ; then
 AC_CHECK_FILE(/usr/include/freetype2,[CFLAGS="$CFLAGS -I/usr/include/freetype2/"
     FreeType2_IncRoot="/usr"
 ],[
 AC_CHECK_FILE(/usr/local/include/freetype2,[CFLAGS="$CFLAGS -I/usr/local/include -I/usr/local/include/freetype2/"
     FreeType2_IncRoot="/usr/local/"
 ],[
 AC_CHECK_FILE(/usr/X11R6/include/freetype2,[CFLAGS="$CFLAGS -I/usr/X11R6/include -I/usr/X11R6/include/freetype2/"
     FreeType2_IncRoot="/usr/X11R6/"
 ],AC_DEFINE(_NO_FREETYPE))])])
fi

AC_CHECK_FILE(/usr/include/libxml2/libxml,[CFLAGS="$CFLAGS -I/usr/include/libxml2/"],[
 AC_CHECK_FILE(/usr/local/include/libxml2/libxml,[CFLAGS="$CFLAGS -I/usr/local/include -I/usr/local/include/libxml2/"],
  AC_DEFINE(_NO_LIBXML))])

dnl Some old versions of lib(un)gif don't work for us, they've got the
dnl Function argument in the wrong place. So check the header files.
dnl check for both libgif and libungif, I think they use the same args.

AC_CHECK_LIB(gif, DGifOpenFileName, [
echo -n checking for ExtensionBlock.Function in gif_lib.h...
AC_TRY_COMPILE([#include <gif_lib.h>], [ ExtensionBlock foo; foo.Function=3; ], echo " " yes , [echo " " no
    ac_cv_lib_ungif_DGifOpenFileName=no
    AC_DEFINE(_NO_LIBUNGIF)])
] , [
  AC_CHECK_LIB(ungif, DGifOpenFileName, [
  echo -n checking for ExtensionBlock.Function in gif_lib.h...
  AC_TRY_COMPILE([#include <gif_lib.h>], [ ExtensionBlock foo; foo.Function=3; ], echo " " yes , [echo " " no
      ac_cv_lib_ungif_DGifOpenFileName=no
      AC_DEFINE(_NO_LIBUNGIF)])
  ] , AC_DEFINE(_NO_LIBUNGIF))])

AC_CHECK_LIB(z, deflateEnd, : ,AC_DEFINE(_NO_LIBPNG), -lm) 
AC_CHECK_LIB(png16, png_create_read_struct, AC_DEFINE(_LIBPNG16),[
AC_CHECK_LIB(png15, png_create_read_struct, AC_DEFINE(_LIBPNG15),[
 AC_CHECK_LIB(png14, png_create_read_struct, AC_DEFINE(_LIBPNG14),[
  AC_CHECK_LIB(png12, png_create_read_struct, AC_DEFINE(_LIBPNG12),[
   AC_CHECK_LIB(png, png_create_read_struct, : ,
      AC_DEFINE(_NO_LIBPNG), -lz -lm)], -lz -lm)], -lz -lm)], -lz -lm)], -lz -lm)
AC_CHECK_HEADER(png.h, : , AC_DEFINE(_NO_LIBPNG))
AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, :  ,AC_DEFINE(_NO_LIBJPEG)) 
AC_CHECK_HEADER(jpeglib.h, : , AC_DEFINE(_NO_LIBJPEG))
AC_CHECK_LIB(tiff, TIFFOpen, : , AC_DEFINE(_NO_LIBTIFF), -lm )
AC_CHECK_HEADER(tiffio.h, : , AC_DEFINE(_NO_LIBTIFF))
AC_CHECK_LIB(xml2, xmlParseFile, : , AC_DEFINE(_NO_LIBXML), -lz -lm)
AC_CHECK_LIB(spiro, TaggedSpiroCPsToBezier, :  ,AC_DEFINE(_NO_LIBSPIRO)) 
AC_CHECK_HEADER(spiroentrypoints.h, : , AC_DEFINE(_NO_LIBSPIRO))

if test "$gww_uselessiconv" = "no" ; then
 AC_CHECK_HEADERS([iconv.h])
fi
AC_CHECK_HEADERS([langinfo.h])

dnl Do we have libcairo

gww_hascairo="no"
gww_checkcairo="yes"
AC_ARG_WITH(cairo,
 [  --without-cairo   Don't use libcairo],
 [
   if test "$withval" = "no" ; then
     gww_checkcairo="no"
   fi
 ], : )
if test "$gww_checkcairo" = "yes" ; then
  gww_CFLAGS=$CFLAGS
  gww_LDFLAGS=$LDFLAGS
  CFLAGS="$CFLAGS $X_CFLAGS"
  LDFLAGS="$LDFLAGS $X_LIBS"
  AC_CHECK_HEADER(fontconfig/fontconfig.h, [
   AC_CHECK_LIB(fontconfig, FcConfigCreate, [
    AC_CHECK_LIB(cairo, cairo_set_scaled_font, gww_hascairo="yes" )])])
  CFLAGS=$gww_CFLAGS
  LDFLAGS=$gww_LDFLAGS
fi
if test "$gww_hascairo" = "yes" ; then
  gww_hascairo="no"
  for gww_prefix in /usr /usr/local /sw /opt/local /usr/X11R6/
  do
    if test -e $gww_prefix/include/cairo/cairo.h ; then
      CFLAGS="$CFLAGS -I$gww_prefix/include/cairo"
      gww_hascairo="yes"
  break
    fi
  done
fi
if test "$gww_hascairo" = "no" ; then
 AC_DEFINE(_NO_LIBCAIRO)
fi


dnl Do we have libpango

gww_haspango="no"
gww_haspangocairo="no"
gww_checkpango="yes"
gww_has_pkg_config="yes"
AC_ARG_WITH(pango,
 [  --without-pango   Don't use libpango],
 [
   if test "$withval" = "no" ; then
     gww_checkpango="no"
   fi
 ], : )
if test "$gww_checkpango" = "yes" ; then
 pan_headers=""
 pan_lib=""
 AC_ARG_WITH(pango-headers,
  [  --with-pango-headers=dirs   Specify the CPPFLAGS needed to compile pango],
  [
     if test "$withval" != "no" -a "$withval" != "yes" >/dev/null 2>&1 ; then
	  pan_headers="$withval"
	  CFLAGS="$CFLAGS $pan_headers"
      fi
   ], : )
 AC_ARG_WITH(pango-lib,
  [  --with-pango-lib   Specify LDFLAGS needed to link with pango],
  [
     if test "$withval" != "no" -a "$withval" != "yes" >/dev/null 2>&1 ; then
	  pan_lib="$withval"
	  LDFLAGS="$LDFLAGS $pan_libs"
      fi
   ], : )
  if test "$pan_headers" != "" > /dev/null 2>&1 ; then
    gww_haspango="done"
  elif pkg-config --libs pangoxft > /dev/null 2>&1 ; then
    AC_CHECK_HEADER(X11/Xft/Xft.h, gww_haspango="yes",,[#include <ft2build.h>])
  else
    for gww_prefix in /usr /usr/local /sw /opt/local /usr/X11R6/
    do
      if test -d $gww_prefix/include/pango-1.0/pango -a -d $gww_prefix/include/glib-2.0 -a -d $gww_prefix/lib/glib-2.0/include ; then
        CFLAGS="$CFLAGS -I$gww_prefix/include/pango-1.0 -I$gww_prefix/include/glib-2.0 -I$gww_prefix/lib/glib-2.0/include"
        gww_haspango="done"
    break
      fi
    done
  fi
fi
if test "$gww_haspango" = "yes" ; then
 CFLAGS="$CFLAGS `pkg-config --cflags pangoxft`"
fi
if test "$gww_haspango" = "yes" -a "$gww_hascairo" = "yes" ; then
  if pkg-config --libs pangocairo > /dev/null 2>&1 ; then
    gww_haspangocairo="yes"
    CFLAGS="$CFLAGS `pkg-config --cflags pangocairo`"
  fi
fi
if test "$gww_haspango" = "no" ; then
  gww_haspangocairo="no"
  AC_DEFINE(_NO_LIBPANGO)
elif test "$gww_haspango" = "done" ; then
 gww_haspango="yes"
fi

AC_ARG_ENABLE(macapp,
  [  --disable-macapp   Do not build a mac Application (only for macs)],
  [
    if test "$enableval" = "no" >/dev/null 2>&1 ; then
       MACAPP=
    fi
  ])

dnl many systems have freetype on /usr/X11R6/lib which isn't in the standard search path

AC_CHECK_LIB(freetype, FT_New_Memory_Face, : , [
 gww_save_LDFLAGS="$LDFLAGS"
 LDFLAGS="$LDFLAGS -L/usr/X11R6/lib"
 dnl Avoid configure's cache.

 unset ac_cv_lib_freetype_FT_New_Memory_Face
 echo "${ac_cv_lib_freetype_FT_New_Memory_Face+set}"  set
 AC_CHECK_LIB(freetype, FT_New_Memory_Face,[
   gww_rpath="$gww_rpath -rpath /usr/X11R6/lib"
  ] , [
   LDFLAGS=$gww_save_LDFLAGS
   AC_DEFINE(_NO_FREETYPE)
  ])
])

gww_hasbytecode="no"
if test "$ac_cv_lib_freetype_FT_New_Memory_Face" = "yes" ; then
 AC_ARG_WITH(freetype-bytecode,
  [  --with-freetype-bytecode   Control whether we build with the bytecode interpreter],
  [
     gww_hasbytecode="$withval"
  ],
  [
    echo checking for bytecode interpreter in freetype...
    AC_CHECK_LIB(freetype, TT_RunIns, gww_hasbytecode="yes", : )
  ])
fi
if test "$gww_hasbytecode" = "yes" ; then
  AC_CHECK_LIB(pthread, pthread_create, LIBS="$LIBS -lpthread", gww_hasbytecode="no")
  AC_CHECK_HEADERS([pthread.h], : , gww_hasbytecode="no")
fi

if test \( "$gww_hasbytecode" = "yes" \) -a \( "$FreeType2_IncRoot" != "" \); then
 gww_hasbytecode="no"
 AC_ARG_WITH(freetype-src,
 [  --with-freetype-src=dir   Specify freetype source directory],
 [
    if test "$withval" != "no" >/dev/null 2>&1 ; then
	FreeType2_TT_BUILD_INC="$withval/src/truetype"
#	if test "${FreeType2_TT_BUILD_INC:0:1}" != "/" ; then
	if test `echo ${FreeType2_TT_BUILD_INC} | sed 's/\(.\).*/\1/'` != "/" ; then
		FreeType2_TT_BUILD_INC=`pwd`/$FreeType2_TT_BUILD_INC
	fi
	AC_MSG_CHECKING(for valid freetype tree)
	if test -f "$FreeType2_TT_BUILD_INC/ttobjs.h"; then
		AC_MSG_RESULT(ok)
	else
		AC_MSG_RESULT(missing ttobjs.h)
		echo "Unable to find $FreeType2_TT_BUILD_INC/ttobjs.h"
	fi
    fi
 ],
 [
	dnl guess directory
	AC_MSG_CHECKING(trying to find the freetype source directory -- be patient)
	  FreeType2_TT_SRC_DIRs=`find / -name ttobjs.h -print 2>/dev/null |grep '[freetype[^/\]*2[^/\]*/src/truetype/ttobjs.h]' | sort -r | sed -e 's/ttobjs.h//'`
	  for dir in $FreeType2_TT_SRC_DIRs; do
	   if cmp -s ${dir}../../include/freetype/freetype.h ${FreeType2_IncRoot}/freetype/freetype.h >/dev/null 2>&1 ; then
	    FreeType2_TT_BUILD_INC=$dir
	  break
	   fi
	  done
	  if test "$FreeType2_TT_BUILD_INC" = "" >/dev/null 2>&1 ; then
	   for dir in $FreeType2_TT_SRC_DIRs; do
	    has_goodft2sources="no"
	    FreeType2_TT_BUILD_INC=$dir
	   break
	   done
	  fi
	  if test "$FreeType2_TT_BUILD_INC" = "" >/dev/null 2>&1 ; then
	   echo " " no
	  else
	   echo " " probably
	  fi
 ])
 if test "$FreeType2_TT_BUILD_INC" \!= "" >/dev/null 2>&1 ; then
  if test -f $FreeType2_TT_BUILD_INC/ttdriver.h >/dev/null 2>&1 ; then
   CFLAGS="$CFLAGS -I$FreeType2_TT_BUILD_INC -I$FreeType2_TT_BUILD_INC/../../include -I$FreeType2_TT_BUILD_INC/../../include/freetype"
   gww_hasbytecode="yes"
   AC_DEFINE(FREETYPE_HAS_DEBUGGER)
  fi
 fi
fi

dnl older libc's don't have snprintf

AC_CHECK_FUNC(snprintf, : , AC_DEFINE(_NO_SNPRINTF))

AC_C_LONG_DOUBLE
echo -n checking for long long ...
AC_TRY_COMPILE(,[long long foo=0x400000000000;],[ AC_DEFINE(_HAS_LONGLONG)
    echo " " yes] , echo " " no )

dnl mac's don't have gettext, people have to use fink to install it

gww_has_gettext="yes"
AC_CHECK_HEADERS([libintl.h], : , gww_has_gettext="no")

AC_LINK_IFELSE([AC_LANG_CALL([],[bind_textdomain_codeset])], AC_DEFINE(_STATIC_LIBINTL) , [
  AC_CHECK_LIB(intl, bind_textdomain_codeset,: ,HAVE_LIBINTL_H=0 )])

dnl If we can't/don't want to use dynamic libraries then we must link with
dnl the static libraries we've found

AC_SUBST(STATIC_LIBS)
STATIC_LIBS=
if test "$gww_nodynamic" = "yes"; then
 if test "$gww_needsstatic" = "yes"; then
  STATIC_LIBS="$STATIC_LIBS -static"
 fi
 if test "$ac_cv_lib_ungif_DGifOpenFileName" = "yes" -a ! -e /usr/lib/libungif.la ; then
  STATIC_LIBS="$STATIC_LIBS -lungif"
  AC_DEFINE(_STATIC_LIBUNGIF)
 fi
 if test "$ac_cv_lib_png_png_create_read_struct" = "yes" -a "$ac_cv_lib_z_deflateEnd" = "yes" -a \( ! -e /usr/lib/libpng.la -o ! -e /usr/lib/libz.la \); then
  STATIC_LIBS="$STATIC_LIBS -lpng -lz"
  AC_DEFINE(_STATIC_LIBPNG)
 fi
 if test "$ac_cv_lib_png12_png_create_read_struct" = "yes" -a "$ac_cv_lib_z_deflateEnd" = "yes" -a \( ! -e /usr/lib/libpng12.la -o ! -e /usr/lib/libz.la \); then
  STATIC_LIBS="$STATIC_LIBS -lpng12 -lz"
  AC_DEFINE(_STATIC_LIBPNG)
 fi
 if test "$ac_cv_lib_tiff_TIFFOpen" = "yes" -a ! -e /usr/lib/libtiff.la; then
  STATIC_LIBS="$STATIC_LIBS -ltiff"
  AC_DEFINE(_STATIC_LIBTIFF)
 fi
 if test "$ac_cv_lib_spiro_TaggedSpiroCPsToBezier" = "yes" -a ! -e /usr/lib/libspiro.la; then
  STATIC_LIBS="$STATIC_LIBS -lspiro"
  AC_DEFINE(_STATIC_LIBSPIRO)
 fi
 if test "$ac_cv_lib_jpeg_jpeg_CreateDecompress" = "yes" -a ! -e /usr/lib/libjpeg.la; then
  STATIC_LIBS="$STATIC_LIBS -ljpeg"
  AC_DEFINE(_STATIC_LIBJPEG)
 fi
 if test "$ac_cv_lib_freetype_FT_New_Memory_Face" = "yes" -a ! -e /usr/lib/libfreetype.la; then
  STATIC_LIBS="$STATIC_LIBS -lfreetype"
  AC_DEFINE(_STATIC_LIBFREETYPE)
 fi
 if test "$ac_cv_lib_xml2_xmlParseFile" = "yes" -a "$ac_cv_lib_z_deflateEnd" = "yes" -a \( ! -e /usr/lib/libxml2.la -o ! -e /usr/lib/libz.la \); then
  STATIC_LIBS="$STATIC_LIBS -lxml2"
  AC_DEFINE(_STATIC_LIBXML)
fi
 if test "$ac_cv_lib_intl_bind_textdomain_codeset" = "yes"; then
  STATIC_LIBS="$STATIC_LIBS -lintl"
 fi
 if test "$ac_cv_lib_spiro_TaggedSpiroCPsToBezier" = "yes"; then
  STATIC_LIBS="$STATIC_LIBS -lspiro"
 fi
 AC_CHECK_LIB(uninameslist, UnicodeNameAnnot, [
   STATIC_LIBS="$STATIC_LIBS -luninameslist"
   AC_DEFINE(_STATIC_LIBUNINAMESLIST) ] , AC_DEFINE(_NO_LIBUNINAMESLIST))
 if test "$gww_hascairo" = "yes"; then
  STATIC_LIBS="$STATIC_LIBS -lcairo -lfontconfig"
 fi
 if test "$gww_haspango" = "yes"; then
  STATIC_LIBS="$STATIC_LIBS `pkg-config --libs pangoxft` -lXft"
 fi
 if test "$gww_haspangocairo" = "yes"; then
  STATIC_LIBS="$STATIC_LIBS `pkg-config --libs pangocairo`"
 fi
fi

AC_ARG_ENABLE(type3,
 AS_HELP_STRING([--enable-type3], [Control whether we build with support for type3/svg fonts containing multilayered drawing with strokes, fills, images, etc.]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_TYPE3)
    fi
 ], : )
AC_ARG_ENABLE(multilayer,
 AS_HELP_STRING([--enable-multilayer], [Control whether we build with support for type3/svg fonts containing multilayered drawing with strokes, fills, images, etc. (Deprecated. Use --enable-type3 instead)]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_TYPE3)
    fi
 ], : )

AC_ARG_ENABLE(devicetables,
 AS_HELP_STRING([--enable-devicetables], [Control whether we build with support for device tables which allow fine control of kerning (etc.) at small point sizes]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_DEVICETABLES)
    fi
 ], AC_DEFINE(FONTFORGE_CONFIG_DEVICETABLES) )

AC_ARG_ENABLE(double,
 AS_HELP_STRING([--enable-double], [Control whether fontforge uses doubles internally (normally it uses floats)]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_USE_DOUBLE)
    fi
 ], : )
AC_ARG_ENABLE(longdouble,
 AS_HELP_STRING([--enable-longdouble], [Control whether fontforge uses long doubles internally (normally it uses floats)]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_USE_LONGDOUBLE)
    fi
 ], : )
AC_ARG_ENABLE(pasteafter,
 AS_HELP_STRING([--enable-pasteafter], [Control whether fontforge has a paste after command (Useful for making words?)]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_PASTEAFTER)
    fi
 ], : )
AC_ARG_ENABLE(gb12345,
 AS_HELP_STRING([--enable-gb12345], [Control whether fontforge understands the gb12345 encoding]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_GB12345)
    fi
 ], : )
AC_ARG_ENABLE(tilepath,
 AS_HELP_STRING([--enable-tilepath], [Control whether fontforge has a tile path command (a variant of expand stroke)]),
 [
    if test "$enableval" != "no" >/dev/null 2>&1 ; then
	AC_DEFINE(FONTFORGE_CONFIG_TILEPATH)
    fi
 ], : )

test -d libs || mkdir libs

dnl Build a $ac_confdir/po/Makefile.in with appropriate instructions for installing all locales

MACKEYS=
if ! msgfmt --help >/dev/null 2>&1 ; then
  dnl even if the library is installed, the executables might not be. Or might
  dnl  not be in the PATH.

  gww_has_gettext="no";
fi
if test "$gww_has_gettext" = "yes" >/dev/null 2>&1 ; then
 if test "$gww_ismac" = "yes" >/dev/null 2>&1 ; then
  mofiles="$(cd $ac_confdir/po/mackeys && ls *.po | sed -e 's#\.po#\.mo#g')"

  cat </dev/null >$ac_confdir/po/mackeys/Makefile.in
  echo 'prefix = @prefix@' >> $ac_confdir/po/mackeys/Makefile.in
  echo 'localedir = $(prefix)/share/locale' >> $ac_confdir/po/mackeys/Makefile.in
  echo 'INSTALL = @INSTALL@' >> $ac_confdir/po/mackeys/Makefile.in
  echo 'INSTALL_DATA = @INSTALL_DATA@' >> $ac_confdir/po/mackeys/Makefile.in
  echo '' >> $ac_confdir/po/mackeys/Makefile.in
  echo "MOFILES =" $mofiles >> $ac_confdir/po/mackeys/Makefile.in
  echo '' >> $ac_confdir/po/mackeys/Makefile.in
  echo '.SUFFIXES:' >> $ac_confdir/po/mackeys/Makefile.in
  echo '.SUFFIXES: .po .mo' >> $ac_confdir/po/mackeys/Makefile.in
  echo '' >> $ac_confdir/po/mackeys/Makefile.in
  echo 'all: $(MOFILES)' >> $ac_confdir/po/mackeys/Makefile.in
  echo '' >> $ac_confdir/po/mackeys/Makefile.in
  echo '.po.mo:' >> $ac_confdir/po/mackeys/Makefile.in
  echo '	msgfmt -o $@ $<' >> $ac_confdir/po/mackeys/Makefile.in
  echo '' >> $ac_confdir/po/mackeys/Makefile.in
  echo 'install:' >> $ac_confdir/po/mackeys/Makefile.in

  for localefile in $mofiles; do
    locale="${localefile%%.mo}"
    echo '	mkdir -p $(DESTDIR)$(localedir)/'$locale'/LC_MESSAGES'       >> $ac_confdir/po/mackeys/Makefile.in
    echo '	$(INSTALL_DATA)' $localefile '$(DESTDIR)$(localedir)/'$locale'/LC_MESSAGES/Mac-FontForge-MenuShortCuts.mo'       >> $ac_confdir/po/mackeys/Makefile.in
  done
  MACKEYS=po/mackeys/Makefile
 fi
 mofiles="$(cd $ac_confdir/po && ls *.po | sed -e 's#\.po#\.mo#g')"

 cat </dev/null >$ac_confdir/po/Makefile.in
 echo 'prefix = @prefix@' >> $ac_confdir/po/Makefile.in
 echo 'localedir = $(prefix)/share/locale' >> $ac_confdir/po/Makefile.in
 echo 'INSTALL = @INSTALL@' >> $ac_confdir/po/Makefile.in
 echo 'INSTALL_DATA = @INSTALL_DATA@' >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
 echo "MOFILES =" $mofiles >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
 echo '.SUFFIXES:' >> $ac_confdir/po/Makefile.in
 echo '.SUFFIXES: .po .mo' >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
 echo 'all: $(MOFILES)' >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
 echo '.po.mo:' >> $ac_confdir/po/Makefile.in
 echo '	msgfmt -o $@ $<' >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
 echo 'install:' >> $ac_confdir/po/Makefile.in

  for localefile in $mofiles; do
    locale="${localefile%%.mo}"
    echo '	mkdir -p $(DESTDIR)$(localedir)/'$locale'/LC_MESSAGES'       >> $ac_confdir/po/Makefile.in
    echo '	$(INSTALL_DATA)' $localefile '$(DESTDIR)$(localedir)/'$locale'/LC_MESSAGES/FontForge.mo'       >> $ac_confdir/po/Makefile.in
  done
else
 cat </dev/null >$ac_confdir/po/Makefile.in
 echo 'all:' >> $ac_confdir/po/Makefile.in
 echo '	' >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
 echo 'install:' >> $ac_confdir/po/Makefile.in
 echo '	' >> $ac_confdir/po/Makefile.in
 echo '' >> $ac_confdir/po/Makefile.in
fi

dnl end code for locale files.

AC_SUBST(VERSION)
VERSION=`cat $ac_confdir/VERSION`

AC_SUBST(WFLAGS)
if test "$GCC" = yes; then
  WFLAGS="-Wmissing-prototypes -Wunused -Wimplicit -Wreturn-type -Wparentheses -Wformat -Wchar-subscripts"
else
  WFLAGS=""
fi

cp $ac_confdir/Makefile.static.in $ac_confdir/Makefile.in
cp $ac_confdir/Unicode/Makefile.static.in $ac_confdir/Unicode/Makefile.in
cp $ac_confdir/gdraw/Makefile.static.in $ac_confdir/gdraw/Makefile.in
cp $ac_confdir/gutils/Makefile.static.in $ac_confdir/gutils/Makefile.in
cp $ac_confdir/fontforge/Makefile.static.in $ac_confdir/fontforge/Makefile.in
UMAP=
if test -e umap >/dev/null 2>&1 ; then
  cp $ac_confdir/umap/Makefile.static.in $ac_confdir/umap/Makefile.in
  UMAP=umap/Makefile
fi
AC_OUTPUT(Makefile Unicode/Makefile gutils/Makefile gdraw/Makefile fontforge/Makefile po/Makefile systemspecific fontforge.pc $MACKEYS $UMAP )

echo Configuration defines: $DEFS
echo CFLAGS: $CFLAGS
if test "$STATIC_LIBS" != ""; then
  echo Static Libraries: $STATIC_LIBS
fi

if ! echo $PATH | tr : \\n | grep -x $prefix/bin >/dev/null ; then
 echo " *******************************************************************"
 echo " * You do not have $prefix/bin in your PATH environment variable   *"
 echo " *******************************************************************"
 echo
fi

if test "$no_x" = "yes"; then
 echo " *******************************************************************"
 echo " * This version of fontforge will only run scripts. No X libraries *"
 echo " * (or X include files or some such) were found so there is NO user*"
 echo " * interface!!!!! If you want a UI try installing X11 on your      *"
 echo " * system.                                                         *"
 echo " * Caveat: You will probably need to install two packages, the     *"
 echo " *  base X11 package and the developer SDK package                 *"
 echo " *******************************************************************"
 case "$host" in
 *-apple-darwin*)
  echo ""
  echo "X11 is optional software on the mac, it does not install automatically"
  echo " but X11User it is on CD 3 of the OS/X install disks, and X11SDK is on"
  echo " the Xcode CD. You must install both packages for fontforge to build"
  echo " with a user interface"
  ;;
 esac
fi
if test "$gww_has_gettext" = "no"; then
 echo " *******************************************************************"
 echo " * Your system does not have the gettext package installed.  This  *"
 echo " * means that fontforge cannot localize its user interface and all *"
 echo " * messages will be in English. You might want to install libintl. *"
 case "$host" in
 *-apple-darwin*)
 echo " * Unfortunately Mac OS/X does not ship with gettext. You can find *"
 echo " * it as part of the standard fink download at:                    *"
 echo " *  http://fink.sourceforge.net/                                   *"
  ;;
 esac
 echo " *******************************************************************"
fi

dnl EOF
