1dnl $Id: configure.ac 4102 2011-11-26 17:21:27Z flaterco $
2
3dnl Int types macros require autoconf 2.60 or later.
4AC_PREREQ([2.60])
5
6dnl autoconf 2.65 (Slackware 13.1) has a regression that causes the INT*_T
7dnl tests to fail improperly.  See email from Eric Blake to the bug-autoconf
8dnl mailing list on 2010-02-06.
9dnl m4_if(2.65, AC_AUTOCONF_VERSION, [m4_fatal([autoconf version 2.65 is broken and unusable])])
10
11dnl Update version info on each release
12AC_INIT([XPaint], [2.9.10.3], [Jean-Pierre.demailly@ujf-grenoble.fr])
13
14AC_CONFIG_MACRO_DIR([m4])
15AM_INIT_AUTOMAKE([-Wall -Werror])
16LT_INIT
17
18AC_LANG_C
19
20## basic types
21
22AC_TYPE_INT8_T
23AC_TYPE_INT16_T
24AC_TYPE_INT32_T
25AC_TYPE_INT64_T
26
27AC_TYPE_UINT8_T
28AC_TYPE_UINT16_T
29AC_TYPE_UINT32_T
30AC_TYPE_UINT64_T
31
32CFLAGS="-D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFUNCPROTO=15 -DNARROWPROTO -I/usr/include -I/usr/include/X11 -I/usr/include/X11/Xaw3dxft"
33LIBS="$LIBS -lm"
34
35dnl check X11
36AC_CHECK_LIB([X11], [XOpenDisplay], have_x11="yes")
37if test x"$have_x11" = xyes; then
38  AC_SUBST([X_LIBS], ["-lXmu -lXt -lSM -lICE -lXext -lX11 -lXpm -ldl -rdynamic"])
39  AC_SUBST([X_CFLAGS], ["-I/usr/include/X11"])
40else
41  echo "X11 libraries not installed !"
42  exit 1
43fi
44
45dnl check Xft support
46AC_MSG_CHECKING([checking Xft support])
47AC_ARG_ENABLE(
48  xft,
49[  --enable-xft        Xft support [default=yes]],
50	if test x$enableval = "xyes"; then
51		AC_MSG_RESULT([yes])
52		AC_CHECK_LIB(Xft, XftFontOpen,
53			AC_DEFINE(HAVE_XFT,, "Xft support")
54			LIBS="$LIBS -lXft -lfreetype -lfontconfig"
55			XFT=true)
56		AC_CHECK_LIB(freetype, FT_Init_FreeType,
57			LIBS="$LIBS -lfreetype -lfontconfig")
58	else
59		AC_MSG_RESULT([no])
60	fi,
61	AC_MSG_RESULT([yes])
62	AC_CHECK_LIB(Xft, XftFontOpen,
63		AC_DEFINE(HAVE_XFT,, "Xft support")
64		LIBS="$LIBS -lXft"
65		XFT=true)
66	AC_CHECK_LIB(freetype, FT_Init_FreeType,
67		LIBS="$LIBS -lfreetype -lfontconfig")
68)
69
70dnl checking for libXaw3d, version >= 1.6.2
71AC_CHECK_HEADER([X11/Xaw3dxft/Box.h],
72  [AC_CHECK_LIB([Xaw3dxft], [XawInitializeWidgetSet],
73    [AC_MSG_NOTICE([[Using libXaw3d for Athena Widgets.]])
74     AC_SUBST([X_LIBS_EXTRA], ["-lXaw3dxft"])],
75       AC_DEFINE(HAVE_XAW3DXFT)
76     [AC_MSG_ERROR([found Xaw3dxft headers but not libXaw3d version >= 1.6.2; try setting LDFLAGS.])],
77     [-lXft -lXmu -lXt -lSM -lICE -lXext -lX11 -lXpm $X_LIBS_EXTRA])],
78     exit 1
79)
80
81dnl libz is required by libpng.
82AC_CHECK_HEADER([zlib.h], [],
83                [AC_MSG_ERROR([cannot find zlib.h; try setting CFLAGS.])])
84AC_CHECK_LIB([z], [zlibVersion], [],
85             [AC_MSG_ERROR([cannot find libz; try setting LDFLAGS.])])
86
87dnl libpng check
88AC_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H,,[png.h needs to be included]))
89AC_CHECK_HEADER([libpng/png.h], AC_DEFINE(HAVE_LIBPNG_PNG_H,,[libpng/png.h needs to be included]))
90
91if test x$ac_cv_header_png_h = xyes -o x$ac_cv_header_libpng_png_h = xyes; then
92    AC_CHECK_LIB(png, png_read_rows,
93	[AC_DEFINE(HAVE_PNG,,[PNG codec library is present])
94	LIBS="-lpng $LIBS"
95	AC_CHECK_FUNCS(png_get_valid png_set_tRNS_to_alpha)])
96fi
97
98dnl Test for libjpeg
99AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
100  jpeg_ok=yes,
101  jpeg_ok=no
102  AC_MSG_WARN(*** Native JPEG support will not be built (JPEG library not found) ***), $GX_LIBS)
103if test x"$jpeg_ok" = xyes; then
104  AC_MSG_CHECKING([for jpeglib.h])
105  AC_TRY_CPP(
106[#include <stdio.h>
107#undef PACKAGE
108#undef VERSION
109#include <jpeglib.h>],
110    jpeg_ok=yes,
111    jpeg_ok=no)
112  AC_MSG_RESULT($jpeg_ok)
113  if test "$jpeg_ok" = yes; then
114    LIBS="$LIBS -ljpeg"; AC_DEFINE(HAVE_JPEG)
115  else
116    AC_MSG_WARN(*** Native JPEG support will not be built (JPEG header file not found) ***)
117  fi
118fi
119
120dnl Test for TIFF
121AC_MSG_CHECKING(whether to build with TIFF support)
122tifflibs=""
123tiffincludes=""
124with_libtiff="yes"
125tiff_header_found="no"
126#
127AC_ARG_ENABLE(tiff,
128[  --enable-tiff[=[yes|no]]         Build with TIFF support [ [default=yes] ]],
129test "$enable_tiff" = "no"  && with_libtiff="no")
130#
131if test "x$with_libtiff" = xyes ; then
132#TIFF compiled with JPEG and JBIG support?
133 libjpeg=""
134 AC_CHECK_LIB(jpeg,jpeg_read_header,libjpeg=-ljpeg,,)
135 libjbig=""
136 AC_CHECK_LIB(jbig,jbg_enc_init,libjbig=-ljbig,,)
137 libjbig85=""
138 AC_CHECK_LIB(jbig85,jbg85_enc_init,libjbig85=-ljbig85,,)
139#standard path
140 with_libtiff="no"
141 savedLIBS="$LIBS"
142 LIBS="-ltiff $libjpeg $libjbig $libjbig85 $LIB_Z $LIB_MATH"
143 AC_CHECK_LIB(tiff, TIFFOpen, tifflibs=-ltiff)
144 LIBS="$savedLIBS"
145 if test -n "$tifflibs" ; then
146  AC_CHECK_HEADER(tiff.h,tiff_header_found="yes",,)
147  if test "$tiff_header_found" = "yes" ; then
148   with_libtiff="yes"
149   LIBS="$LIBS -ltiff $libjpeg $libjbig $libjbig85"
150   AC_DEFINE(HAVE_TIFF)
151  fi
152 fi
153#
154 if test "x$with_libtiff" = xno ; then
155#non-standard path
156  AC_ARG_WITH(tiff_includes,
157  [  --with-tiff-includes=DIR        TIFF includes in nonstandard DIR])
158  if test -n "$with_tiff_includes" ; then
159   tiffheader="$with_tiff_includes/tiff.h"
160   AC_CHECK_HEADER($tiffheader,tiff_header_found="yes",,)
161   if test "$tiff_header_found" = "yes" ; then
162     tiffincludes="-I$with_tiff_includes"
163   fi
164  fi
165  AC_ARG_WITH(tiff_libraries,
166  [  --with-tiff-libraries=DIR       TIFF library in nonstandard DIR])
167  if test -n "$with_tiff_libraries" ; then
168   tifflibs="-L$with_tiff_libraries"
169  fi
170  tifflibs="$tifflibs -ltiff"
171  savedLIBS="$LIBS"
172  LIBS="$tifflibs $libjpeg $libjbig $libjbig85 $LIB_Z $LIB_MATH"
173  with_libtiff="no"
174#
175  AC_CHECK_LIB(tiff, TIFFOpen, , tifflibs="",)
176#
177  if test -n "$tifflibs" ; then
178   if test "$tiff_header_found" = "yes" ; then
179    with_libtiff="yes"
180    AC_DEFINE(HAVE_TIFF)
181   fi
182  fi
183  LIBS="$savedLIBS $tifflibs $libjpeg $libjbig $libjbig85"
184 fi
185fi
186#
187AC_MSG_RESULT(tiff is usable:$with_libtiff)
188AM_CONDITIONAL([with_libtiff], [test x$with_libtiff = xyes])
189AC_SUBST(tiffincludes)
190AC_SUBST(tifflibs)
191
192
193dnl Test for libopenjpeg
194AC_ARG_ENABLE(libopenjpeg,
195	      AC_HELP_STRING([--disable-libopenjpeg],
196	                     [Don't build against libopenjpeg.]),
197              enable_libopenjpeg=$enableval,
198              enable_libopenjpeg="try")
199if test x$enable_libopenjpeg = xyes; then
200  AC_CHECK_LIB([openjpeg], [opj_cio_open],,
201	       AC_MSG_ERROR("*** libopenjpeg library not found ***"))
202  AC_CHECK_HEADERS([openjpeg.h],,
203		   AC_MSG_ERROR("*** libopenjpeg headers not found ***"))
204elif test x$enable_libopenjpeg = xtry; then
205  AC_CHECK_LIB([openjpeg], [opj_cio_open],
206               [enable_libopenjpeg="yes"],
207	       [enable_libopenjpeg="no"])
208  AC_CHECK_HEADERS([openjpeg.h],,
209		   [enable_libopenjpeg="no"])
210fi
211
212if test x$enable_libopenjpeg = xyes; then
213  LIBS="$LIBS -lopenjpeg"
214  AC_SUBST(LIBOPENJPEG_LIBS)
215  AC_DEFINE(ENABLE_LIBOPENJPEG)
216  AC_DEFINE(HAVE_OPENJPEG)
217fi
218
219dnl Visual C++ 2008 Express Edition lacks some standard headers and requires
220dnl some nonstandard ones.
221AC_CHECK_HEADERS([syslog.h langinfo.h dirent.h sys/resource.h io.h process.h])
222
223dnl Choices are dirent or WIN32-specific code; there is no third option.
224AC_MSG_CHECKING([for either dirent or _finddata_t])
225AC_COMPILE_IFELSE(
226 [AC_LANG_PROGRAM([[
227#ifndef HAVE_DIRENT_H
228#ifdef HAVE_IO_H
229#include <io.h>
230#endif
231_finddata_t fileinfo;
232#endif
233]], [[]])],
234  AC_MSG_RESULT([yes]),
235 [AC_MSG_RESULT([no])
236  AC_MSG_ERROR([neither SUSv3 nor WIN32 dirent facility found])
237 ])
238
239
240AC_MSG_CHECKING([location of freetype2 headers])
241AC_PREPROC_IFELSE(
242  [AC_LANG_PROGRAM([[#include <freetype2/config/ftheader.h>]])],
243  [AC_MSG_RESULT([already in path])],
244  [AC_PREPROC_IFELSE(
245    [AC_LANG_PROGRAM([[#include </usr/include/freetype2/freetype/config/ftheader.h>]])],
246    [AC_MSG_RESULT([/usr/include/freetype2])
247     AC_SUBST([SPECIAL_CFLAGS], ["-I/usr/include/freetype2"])],
248    [AC_MSG_ERROR([cannot find freetype2 headers; try setting CFLAGS.])]
249  )]
250)
251
252AC_OUTPUT(Makefile)
253