added NEWS, AUTHORS and THANKS files. Cosmetic changes in autotools files (in trunk)
[openjpeg.git] / configure.ac
1
2 # According to http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info :
3 #
4 # 1) when bugs are fixed or internal code is changed: increase MICRO
5 # 2) if API is added, increase MINOR and set MICRO to 0
6 # 3) if API or ABI is broken (this case should (must) never happen as it's very bad for a library), or a new designed library, increase MAJOR and set MINOR and MICRO to 0
7
8 m4_define([OPJ_MAJOR], [1])
9 m4_define([OPJ_MINOR], [4])
10 m4_define([OPJ_MICRO], [0])
11
12 m4_define([lt_cur], m4_eval(OPJ_MAJOR + OPJ_MINOR))
13 m4_define([lt_rev], OPJ_MICRO)
14 m4_define([lt_age], OPJ_MINOR)
15
16 AC_PREREQ([2.62])
17 AC_INIT([OpenJPEG],
18    [OPJ_MAJOR.OPJ_MINOR.OPJ_MICRO],
19    [openjpeg@googlegroups.com],
20    [openjpeg],
21    [http://www.openjpeg.org])
22 AC_CONFIG_SRCDIR([configure.ac])
23 AC_CONFIG_MACRO_DIR([m4])
24 AC_CONFIG_HEADERS([opj_config.h])
25
26 AC_CANONICAL_SYSTEM
27 AC_CANONICAL_HOST
28
29 AM_INIT_AUTOMAKE(1[.11 foreign dist-bzip2])
30 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
31
32 MAJOR_NR=OPJ_MAJOR
33 MINOR_NR=OPJ_MINOR
34 MICRO_NR=OPJ_MICRO
35 AC_SUBST(MAJOR_NR)
36 AC_SUBST(MINOR_NR)
37 AC_SUBST(MICRO_NR)
38
39 LT_PREREQ([2.0])
40 LT_INIT([win32-dll])
41
42 lt_version=lt_cur:lt_rev:lt_age
43 AC_SUBST(lt_version)
44
45
46 ### Needed information
47
48 have_win32=no
49 have_darwin="no"
50 case "$host_os" in
51    mingw*)
52       have_win32="yes"
53       ;;
54    darwin*)
55       have_darwin="yes"
56       ;;
57 esac
58
59 AM_CONDITIONAL([HAVE_WIN32], [test "x${have_win32}" = "xyes"])
60 AM_CONDITIONAL([HAVE_DARWIN], [test "x${have_darwin}" = "xyes"])
61
62
63 ### Additional options to configure
64
65 # debug
66
67 AC_ARG_ENABLE([debug],
68    [AC_HELP_STRING([--enable-debug], [build with debug symbols @<:@default=disabled@:>@])],
69    [
70     if test "x${enableval}" = "xyes" ; then
71        want_debug="yes"
72     else
73        want_debug="no"
74     fi
75    ],
76    [want_debug="no"])
77
78 AC_MSG_CHECKING([whether to build in debug mode])
79 AC_MSG_RESULT([${want_debug}])
80
81 # MJ2
82
83 AC_ARG_ENABLE([mj2],
84    [AC_HELP_STRING([--enable-mj2], [build mj2 binaries @<:@default=disabled@:>@])],
85    [
86     if test "x${enableval}" = "xyes" ; then
87        want_mj2="yes"
88     else
89        want_mj2="no"
90     fi
91    ],
92    [want_mj2="no"])
93
94 AC_MSG_CHECKING([whether to build the MJ2 binaries])
95 AC_MSG_RESULT([${want_mj2}])
96
97 if test "x${want_mj2}" = "xyes" ; then
98    AC_DEFINE(USE_MJ2, [1], [define to 1 if you use mj2])
99 fi
100
101 AM_CONDITIONAL([WANT_MJ2], [test "x${want_mj2}" = "xyes"])
102
103 # JPWL
104
105 AC_ARG_ENABLE([jpwl],
106    [AC_HELP_STRING([--enable-jpwl], [build JPWL library @<:@default=disabled@:>@])],
107    [
108     if test "x${enableval}" = "xyes" ; then
109        want_jpwl="yes"
110     else
111        want_jpwl="no"
112     fi
113    ],
114    [want_jpwl="no"])
115
116 AC_MSG_CHECKING([whether to build the JPWL library])
117 AC_MSG_RESULT([${want_jpwl}])
118
119 if test "x${want_jpwl}" = "xyes" ; then
120    AC_DEFINE(USE_JPWL, [1], [define to 1 if you use jpwl])
121 fi
122
123 AM_CONDITIONAL([WANT_JPWL], [test "x${want_jpwl}" = "xyes"])
124
125 # JPIP
126
127 AC_ARG_ENABLE([jpip],
128    [AC_HELP_STRING([--enable-jpip], [build jpip library @<:@default=disabled@:>@])],
129    [
130     if test "x${enableval}" = "xyes" ; then
131        want_jpip="yes"
132     else
133        want_jpip="no"
134     fi
135    ],
136    [want_jpip="no"])
137
138 AC_MSG_CHECKING([whether to build the JPIP library])
139 AC_MSG_RESULT([${want_jpip}])
140
141
142 ### Checks for programs
143
144 AC_PROG_CC
145
146 # pkg-config
147
148 PKG_PROG_PKG_CONFIG
149
150 # Check whether pkg-config supports Requires.private
151 if $PKG_CONFIG --atleast-pkgconfig-version 0.22 ; then
152    pkgconfig_requires_private="Requires.private"
153 else
154    pkgconfig_requires_private="Requires"
155 fi
156 AC_SUBST(pkgconfig_requires_private)
157 AC_SUBST(requirements)
158
159 # doxygen
160
161 OPJ_CHECK_DOXYGEN
162
163 #  ln -s
164
165 AC_PROG_LN_S
166
167
168 ### Checks for libraries
169
170 # libpng
171
172 have_libpng="no"
173
174 AC_ARG_ENABLE([png],
175    [AC_HELP_STRING([--disable-png], [disable PNG support @<:@default=enabled@:>@])],
176    [
177     if test "x${enableval}" = "xyes" ; then
178        want_png="yes"
179     else
180        want_png="no"
181     fi
182    ],
183    [want_png="yes"])
184
185 AC_MSG_CHECKING([whether to build with PNG support])
186 AC_MSG_RESULT([${want_png}])
187
188 if test "x${want_png}" = "xyes" ; then
189
190    PKG_CHECK_MODULES([PNG], [libpng14],
191       [have_libpng="yes"],
192       [
193        PKG_CHECK_MODULES([PNG], [libpng12],
194           [have_libpng="yes"],
195           [
196            PKG_CHECK_MODULES([PNG], [libpng10],
197               [have_libpng="yes"],
198               [
199                PKG_CHECK_MODULES([PNG], [libpng],
200                   [have_libpng="yes"],
201                   [have_libpng="no"])
202               ])
203           ])
204       ])
205
206    if ! test "x${have_libpng}" = "xyes" ; then
207       OPJ_CHECK_LIB([png.h],
208          [png],
209          [png_create_write_struct],
210          [have_libpng="yes"],
211          [have_libpng="no"])
212    fi
213
214    if test "x${have_libpng}" = "xno" ; then
215       AC_MSG_WARN([Can not find a usuable PNG library. Make sure that CPPFLAGS and LDFLAGS are correctly set.])
216    fi
217
218 fi
219
220 AC_MSG_CHECKING([whether PNG is available])
221 AC_MSG_RESULT([${have_libpng}])
222
223 if test "x${have_libpng}" = "xyes" ; then
224    AC_DEFINE(HAVE_LIBPNG, [1], [define to 1 if you have libpng])
225 fi
226
227 AM_CONDITIONAL([with_libpng], [test x${have_libpng} = "xyes"])
228
229 # libtiff
230
231 have_libtiff="no"
232
233 AC_ARG_ENABLE([tiff],
234    [AC_HELP_STRING([--disable-tiff], [disable TIFF support @<:@default=enabled@:>@])],
235    [
236     if test "x${enableval}" = "xyes" ; then
237        want_tiff="yes"
238     else
239        want_tiff="no"
240     fi
241    ],
242    [want_tiff="yes"])
243
244 AC_MSG_CHECKING([whether to build with TIFF support])
245 AC_MSG_RESULT([${want_tiff}])
246
247 if test "x${want_tiff}" = "xyes" ; then
248
249    OPJ_CHECK_LIB(
250       [tiff.h],
251       [tiff],
252       [TIFFOpen],
253       [have_libtiff="yes"],
254       [have_libtiff="no"])
255
256    if test "x${have_libtiff}" = "xno" ; then
257       AC_MSG_WARN([Can not find a usuable TIFF library. Make sure that CPPFLAGS and LDFLAGS are correctly set.])
258    fi
259 fi
260
261 AC_MSG_CHECKING([whether TIFF is available])
262 AC_MSG_RESULT([${have_libtiff}])
263
264 if test "x${have_libtiff}" = "xyes" ; then
265    AC_DEFINE(HAVE_LIBTIFF, [1], [define to 1 if you have libtiff])
266 fi
267
268 AM_CONDITIONAL([with_libtiff], [test "x${have_libtiff}" = "xyes"])
269
270 # libcms2
271
272 lcms_output="no"
273 have_lcms2="no"
274
275 AC_ARG_ENABLE([lcms2],
276    [AC_HELP_STRING([--disable-lcms2], [disable LCMS-2 support @<:@default=enabled@:>@])],
277    [
278     if test "x${enableval}" = "xyes" ; then
279        want_lcms2="yes"
280     else
281        want_lcms2="no"
282     fi
283    ],
284    [want_lcms2="yes"])
285
286 AC_MSG_CHECKING([whether to build with LCMS-2 support])
287 AC_MSG_RESULT([${want_lcms2}])
288
289 if test "x${want_lcms2}" = "xyes" ; then
290    PKG_CHECK_MODULES([LCMS2], [lcms2],
291       [
292        have_lcms2="yes"
293        requirements="lcms2"
294       ],
295       [have_lcms2="no"])
296 fi
297
298 AC_MSG_CHECKING([whether LCMS-2 is available])
299 AC_MSG_RESULT([${have_lcms2}])
300
301 if test "x${have_lcms2}" = "xyes" ; then
302    AC_DEFINE(HAVE_LIBLCMS2, [1], [define to 1 if you have lcms version 2.x])
303    lcms_output="lcms version 2.x"
304 fi
305
306 # libcms1
307
308 AC_ARG_ENABLE([lcms1],
309    [AC_HELP_STRING([--disable-lcms1], [disable LCMS-1 support @<:@default=enabled@:>@])],
310    [
311     if test "x${enableval}" = "xyes" ; then
312        want_lcms1="yes"
313     else
314        want_lcms1="no"
315     fi
316    ],
317    [want_lcms1="yes"])
318
319 AC_MSG_CHECKING([whether to build with LCMS-1 support])
320 AC_MSG_RESULT([${want_lcms1}])
321
322 if test "x${have_lcms2}" = "xno" ; then
323
324    if test "x${want_lcms1}" = "xyes" ; then
325       PKG_CHECK_MODULES([LCMS1], [lcms1],
326          [
327           have_lcms1="yes"
328           requirements="lcms1"
329          ],
330          [PKG_CHECK_MODULES([LCMS1], [lcms],
331             [
332              have_lcms1="yes"
333              requirements="lcms"
334             ],
335             [have_lcms1="no"])])
336    fi
337
338    AC_MSG_CHECKING([whether LCMS-1 is available])
339    AC_MSG_RESULT([${have_lcms1}])
340
341    if test "x${have_lcms1}" = "xyes" ; then
342       AC_DEFINE(HAVE_LIBLCMS1, [1], [define to 1 if you have lcms version 1.x])
343       lcms_output="lcms version 1.x"
344    fi
345
346 fi
347
348 # libfcgi
349
350 if test "x${want_jpip}" = "xyes" ; then
351
352    have_fcgi="no"
353    OPJ_CHECK_LIB(
354       [fcgi_stdio.h],
355       [fcgi],
356       [FCGI_Accept],
357       [have_fcgi="yes"],
358       [have_fcgi="no"])
359
360    if ! test "x${have_fcgi}" = "xyes" ; then
361       AC_MSG_WARN([FastCGI library not found. OpenJPIP will not be compiled.])
362       want_jpip="no"
363    fi
364
365 fi
366
367 if test "x${want_jpip}" = "xyes" ; then
368    AC_DEFINE(USE_JPIP, [1], [define to 1 if you use jpip])
369 fi
370
371 AM_CONDITIONAL([WANT_JPIP], [test "x${want_jpip}" = "xyes"])
372
373 ### Checks for header files
374
375 ## FIXME: declarations must be fixed in source code. See autoconf manual
376 AC_HEADER_DIRENT
377
378
379 ### Checks for types
380
381
382 ### Checks for structures
383
384
385 ### Checks for compiler characteristics
386
387 AM_PROG_CC_C_O
388 AC_C_BIGENDIAN
389
390 #OPJ_COMPILER_FLAG([-Wall])
391 #OPJ_COMPILER_FLAG([-Wextra])
392 #OPJ_COMPILER_FLAG([-Wshadow])
393 #OPJ_COMPILER_FLAG([-Wpointer-arith])
394 OPJ_COMPILER_FLAG([-Wno-unused-result])
395
396 if test "x${want_debug}" = "xyes" ; then
397    OPJ_COMPILER_FLAG([-g])
398    OPJ_COMPILER_FLAG([-O0])
399 else
400    OPJ_COMPILER_FLAG([-O3])
401 fi
402
403
404 ### Checks for linker characteristics
405
406
407 ### Checks for library functions
408
409 AC_CONFIG_FILES([
410 Makefile
411 libopenjpeg1.pc
412 libopenjpeg/Makefile
413 libopenjpeg/jpwl/Makefile
414 applications/Makefile
415 applications/codec/Makefile
416 applications/mj2/Makefile
417 applications/jpip/Makefile
418 applications/jpip/libopenjpip/Makefile
419 applications/jpip/opj_server/Makefile
420 applications/jpip/opj_client/Makefile
421 applications/jpip/opj_client/opj_dec_server/Makefile
422 applications/jpip/tools/Makefile
423 applications/jpip/tools/indexer/Makefile
424 doc/Makefile
425 ])
426
427 AC_OUTPUT
428
429 ### Summary
430
431 echo
432 echo
433 echo
434 echo "------------------------------------------------------------------------"
435 echo "$PACKAGE $VERSION"
436 echo "------------------------------------------------------------------------"
437 echo
438 echo
439 echo "Configuration Options Summary:"
440 echo
441 echo "  Debug...............: ${want_debug}"
442 echo
443 echo "  Optional support:"
444 echo "    libpng............: ${have_libpng}"
445 echo "    libtiff...........: ${have_libtiff}"
446 echo "    libcms............: ${lcms_output}"
447 echo
448 echo "  Documentation.......: ${opj_have_doxygen}"
449 echo "    Build.............: make doc"
450 echo
451 echo "  mj2.................: ${want_mj2}"
452 echo "  jpwl................: ${want_jpwl}"
453 echo "  jpip................: ${want_jpip}"
454 echo