Kill off synfig ./bootstrap
[synfig.git] / synfig-core / trunk / configure.ac
1 # $Id$
2
3 # -- I N I T --------------------------------------------------
4
5 AC_INIT([Synfig Core],[0.61.07],[http://sourceforge.net/tracker/?group_id=144022&atid=757416],[synfig])
6 AC_REVISION
7
8 AC_CONFIG_AUX_DIR(config)
9 AM_CONFIG_HEADER(config.h)
10 AC_CANONICAL_HOST
11 dnl AC_CANONICAL_TARGET
12
13 AM_INIT_AUTOMAKE([nostdinc])
14 AM_MAINTAINER_MODE
15
16 AC_LIBLTDL_INSTALLABLE
17 AC_SUBST(INCLTDL)
18 AC_SUBST(LIBLTDL)
19
20 API_VERSION=0.0
21
22
23 AC_DEFINE(LT_SCOPE,[extern],[LibLTDL is linked staticly])       
24
25
26
27
28 # -- V A R I A B L E S ----------------------------------------
29
30 SVN_REPOSITORY=http://svn.voria.com/code/synfig-core
31 AC_SUBST(SVN_REPOSITORY)
32
33 # -- P R O G R A M S ------------------------------------------
34
35 AC_PROG_CC
36 AC_PROG_CXX
37 AC_PROG_CPP
38 AC_PROG_CXXCPP
39 AC_PROG_INSTALL
40
41 AC_LANG_CPLUSPLUS
42
43
44 # -- A R G U M E N T S ----------------------------------------
45
46
47 AC_ARG_TIMELIMIT
48 AC_ARG_DEBUG
49 AC_ARG_OPTIMIZATION
50 AC_ARG_WARNINGS
51 AC_ARG_PROFILING
52 AC_ARG_PROFILE_ARCS
53 AC_ARG_BRANCH_PROBABILITIES
54 dnl AC_ARG_LICENSE_KEY
55
56 AC_ARG_ENABLE(g5opt,[
57   --enable-g5opt           enable optimizations specific to G5 proc],[
58 #       CXXFLAGS="$CXXFLAGS -fastf -fPIC"
59 #       CFLAGS="$CFLAGS -fastf -fPIC"
60         CXXFLAGS="$CXXFLAGS -mtune=G5 -falign-loops=32"
61         CFLAGS="$CFLAGS -mtune=G5"
62 ],
63 [
64         true
65 ])
66
67 #MINGW_FLAGS="-mno-cygwin"
68
69 AC_WIN32_QUIRKS
70
71 # If we are in debug mode, use the debugging version of the
72 # Microsoft Visual C Runtime Library
73 #if [[ $debug = "yes" ]] ; then {
74 #       WIN32_DEBUG_LIBRARY="msvcr70d"
75 #       WIN32_DEBUG_LIBRARY="msvcrtd"
76 #       LIBTOOL_PATCH_SED="$LIBTOOL_PATCH_SED
77 #               s/-lmsvcrt/-l$WIN32_DEBUG_LIBRARY/g;
78 #       ";
79 #} ; fi
80
81 AC_LIBTOOL_WIN32_DLL
82 AC_LIBTOOL_DLOPEN
83 AC_DISABLE_STATIC
84 AC_ENABLE_SHARED
85 AC_PROG_LIBTOOL
86 AC_SUBST(LIBTOOL_DEPS)
87 AC_LIBTOOL_PATCH
88
89 #if [[ "$LIBTOOL_PATCH_SED""x" != "x" ]] ; then {
90 #       printf "Patching libtool... "
91 #       cat libtool | sed "$LIBTOOL_PATCH_SED" > libtool2
92 #       rm libtool
93 #       mv libtool2 libtool
94 #       chmod +x libtool
95 #       AC_MSG_RESULT([patched])
96 #} fi ;
97
98
99 dnl
100 dnl dynamic linker
101 dnl
102 AC_CHECK_LIB(c, dlopen,
103         DYNAMIC_LD_LIBS="",
104         AC_CHECK_LIB(
105                 dl,
106                 dlopen,
107         DYNAMIC_LD_LIBS="-ldl",
108             DYNAMIC_LD_LIBS=""
109         )
110 )
111
112 AC_SUBST(DYNAMIC_LD_LIBS)
113
114 AC_ARG_ENABLE(half,[
115   --enable-half           Use OpenEXR's "half" type for color],[
116         use_openexr_half=$enableval
117 ],
118 [
119         use_openexr_half="no"
120 ])
121
122
123
124 AC_ARG_ENABLE(layer-profiling,[
125   --enable-layer-profiling       Enable layer profiling],[
126         use_layerprofiling=$enableval
127 ],
128 [
129         use_layerprofiling="no"
130 ])
131 if test $use_layerprofiling = "yes" ; then {
132         AC_DEFINE(SYNFIG_PROFILE_LAYERS,[1],[enable layer profiling])   
133 } ; fi
134
135
136
137
138 AC_ARG_WITH(imagemagick,[
139   --without-imagemagick   Disable support for ImageMagick],[
140 ],[
141     AC_CHECK_PROG([imagemagick_convert],[convert],[yes],[no])
142     with_imagemagick=$imagemagick_convert
143 ])
144 if test $with_imagemagick = "no" ; then {
145         AM_CONDITIONAL(WITH_IMAGEMAGICK,false)
146 } else {
147         AM_CONDITIONAL(WITH_IMAGEMAGICK,true)
148 } ; fi
149
150
151
152
153
154 AC_ARG_WITH(magickpp,[
155   --without-magickpp        Disable support for Magick++],[
156 ],[
157         with_magickpp="yes"
158 ])
159 if test $with_magickpp = "yes" ; then {
160   AC_CHECK_HEADER([Magick++.h],[
161         MAGICKPP_LIBS="-lMagick++"
162         AC_DEFINE(HAVE_MAGICKPP,[], [ Define if Magick++ library is available ] )
163         AC_SUBST(MAGICKPP_LIBS)
164         AM_CONDITIONAL(HAVE_LIBMAGICKPP,true)
165         AC_CHECK_LIB(Magick,OptimizeImageTransparency,[
166                 AC_DEFINE(HAVE_MAGICK_OPTIMIZE,[], [ Define if Magick++ defines OptimizeImageTransparency() ] )
167                 AM_CONDITIONAL(HAVE_MAGICK_OPTIMIZE,true)
168         ],[
169                 AC_MSG_RESULT([ *** OptimizeImageTransparency() not available - need ImageMagick 6.3 or newer ])
170                 AM_CONDITIONAL(HAVE_MAGICK_OPTIMIZE,false)
171         ])
172   ],[
173         with_magickpp="no"
174         AC_MSG_RESULT([ *** Magick++ Output target disabled])
175         TARGET_MAGICKPP="no"
176         AM_CONDITIONAL(HAVE_LIBMAGICKPP,false)
177         AM_CONDITIONAL(HAVE_MAGICK_OPTIMIZE,false)
178   ])
179 } else {
180         AM_CONDITIONAL(HAVE_LIBMAGICKPP,false)
181         AM_CONDITIONAL(HAVE_MAGICK_OPTIMIZE,false)
182 } ; fi
183
184
185
186
187 AC_ARG_WITH(ffmpeg,[
188   --without-ffmpeg        Disable support for FFMPEG],[
189 ],[
190         with_ffmpeg="yes"
191 ])
192 if test $with_ffmpeg = "no" ; then {
193         AM_CONDITIONAL(WITH_FFMPEG,false)
194 } else {
195         AM_CONDITIONAL(WITH_FFMPEG,true)
196 } ; fi
197
198
199
200
201 AC_ARG_WITH(vimage,[
202   --with-vimage        Enable support for apple vImage],[
203 ],[
204         with_vimage="no"
205 ])
206 if test $with_vimage = "no" ; then {
207         AM_CONDITIONAL(WITH_VIMAGE,false)
208 } else {
209         AM_CONDITIONAL(WITH_VIMAGE,true)
210         AC_DEFINE(HAS_VIMAGE,[1],[enable apple vImage])
211         VIMAGE_LIBS="-Wc,-framework -Wc,Accelerate"
212
213 } ; fi
214
215
216
217 AC_ARG_WITH(libdv,[
218   --without-libdv         Disable support for libdv],[
219 ],[
220         with_libdv="yes"
221 ])
222 if test $with_libdv = "no" ; then {
223         AM_CONDITIONAL(WITH_LIBDV,false)
224 } else {
225         AM_CONDITIONAL(WITH_LIBDV,true)
226 } ; fi
227
228
229
230
231 # LIBAVCODEC CHECK--------------------
232
233 AC_ARG_WITH(libavcodec,[
234   --without-libavcodec         disable support for libavcodec (Default=auto)],[
235 ],[
236         with_libavcodec="yes"
237 ])
238
239 if test $with_libavcodec != "no" ; then {
240         PKG_CHECK_MODULES(LIBAVCODEC, [libavcodec libavformat],[],[echo no; with_libavcodec="no"])
241 } ; fi
242 if test $with_libavcodec = "yes" ; then {
243         AC_DEFINE(WITH_LIBAVCODEC,[],[enable libavcodec support])
244         AM_CONDITIONAL(WITH_LIBAVCODEC,true)
245 } else {
246         AM_CONDITIONAL(WITH_LIBAVCODEC,false)
247 } ; fi
248
249
250
251 # FREETYPE2 CHECK--------------------
252
253 AC_ARG_WITH(freetype,[
254   --without-freetype         disable support for freetype (Default=auto)],[
255 ],[
256         with_freetype="yes"
257 ])
258
259 if test $with_freetype != "no" ; then {
260         PKG_CHECK_MODULES(FREETYPE, freetype2,[
261                 with_freetype="yes"
262         ],[
263                 PKG_CHECK_MODULES(FREETYPE, xft,[
264                         with_freetype="yes"
265                 ],[
266                         with_freetype="no"
267                 ])
268         ])
269 } ; fi
270
271 if test $with_freetype = "no" ; then {
272         AM_CONDITIONAL(WITH_FREETYPE,false)
273 } else {
274         AM_CONDITIONAL(WITH_FREETYPE,true)
275 } ; fi
276
277
278 # FONTCONFIG CHECK--------------------
279
280 AC_ARG_WITH(fontconfig,[
281   --without-fontconfig         disable support for fontconfig (Default=auto)],[
282 ],[
283         with_fontconfig="yes"
284 ])
285
286 if test $with_fontconfig != "no" ; then {
287         PKG_CHECK_MODULES(FONTCONFIG, fontconfig,[
288                 with_fontconfig="yes"
289         ],[
290                 with_fontconfig="no"
291         ])
292 } ; fi
293
294 if test $with_fontconfig = "yes" ; then {
295         AC_DEFINE(WITH_FONTCONFIG,[],[enable fontconfig support])
296         AM_CONDITIONAL(WITH_FONTCONFIG,true)
297 } else {
298         AM_CONDITIONAL(WITH_FONTCONFIG,false)
299 } ; fi
300
301
302 # OPENEXR CHECK------------------------
303 AC_ARG_WITH(openexr,[
304   --without-openexr        Disable support for ILM's OpenEXR],[
305 ],[
306         with_openexr="yes"
307 ])
308 if test $with_openexr = "yes" ; then {
309         PKG_CHECK_MODULES(OPENEXR, OpenEXR,[
310                 CONFIG_DEPS="$CONFIG_DEPS OpenEXR"
311         
312                 AC_DEFINE(HAVE_OPENEXR,[], [ Define if OpenEXR is available ] )
313                 AM_CONDITIONAL(WITH_OPENEXR,true)
314         ],
315         [
316                 with_openexr="no"
317         ])
318 } ; fi
319 if test $with_openexr = "no" ; then {
320         AM_CONDITIONAL(WITH_OPENEXR,false)
321         use_openexr_half="no"
322 } ; fi
323 if test $use_openexr_half = yes ; then {
324         AC_MSG_RESULT([ ** Using OpenEXR Half.])
325         CONFIG_CFLAGS="$CONFIG_CFLAGS -DUSE_HALF_TYPE"
326         OPENEXR_HALF_LIBS="-lHalf"
327 } else {
328         OPENEXR_HALF_LIBS=""
329 } ; fi
330
331
332
333
334
335 # -- L I B R A R I E S ----------------------------------------
336
337 AC_LIB_LTDL
338
339 PKG_CHECK_MODULES(ETL, [ETL >= 0.04.10],,[
340         AC_MSG_ERROR([ ** You need to install the ETL (version 0.04.10 or greater).])
341 ])
342 CONFIG_DEPS="$CONFIG_DEPS ETL"
343
344
345 PKG_CHECK_MODULES(LIBXMLPP, libxml++-2.6,[
346         CONFIG_DEPS="$CONFIG_DEPS libxml++-2.6"
347 ],[
348         PKG_CHECK_MODULES(LIBXMLPP, libxml++-1.0,[
349                 CONFIG_DEPS="$CONFIG_DEPS libxml++-1.0"
350         ],[
351                 AC_MSG_ERROR([ ** You need to install libxml++, either verison 2.6 or 1.0.])
352         ])
353 ])
354
355 PKG_CHECK_MODULES(LIBSIGC, [sigc++-2.0],,[
356         AC_MSG_ERROR([ ** libsigc++-2.0 not found. It is required. You should really install it.])
357 dnl     PKG_CHECK_MODULES(LIBSIGC, [sigc++-1.2],,[
358 dnl             AC_MSG_ERROR([ ** At least libsigc++-1.2 is required.])
359 dnl     ])
360 ])
361 CONFIG_DEPS="$CONFIG_DEPS sigc++-2.0"
362
363 dnl PKG_CHECK_MODULES(GLIB, glib-2.0,[GLIB="yes"],[GLIB="no"])
364
365
366
367
368
369 TARGET_TIF="yes"
370 TARGET_PNG="yes"
371 TARGET_MNG="yes"
372 TARGET_JPEG="yes"
373
374 if test "$TARGET_TIF" != "disabled" ; then
375 AC_CHECK_LIB(tiff, TIFFClose,[
376         TIF_LIBS="-ltiff"
377         AC_DEFINE(HAVE_LIBTIFF,[], [ Define if TIFF library is available ] )
378         AC_SUBST(TIF_LIBS)
379         AM_CONDITIONAL(HAVE_LIBTIFF,true)
380 ],[
381         AC_MSG_RESULT([ *** TIFF Output target disabled])
382         TARGET_TIF="no"
383         AM_CONDITIONAL(HAVE_LIBTIFF,false)
384 ])
385 fi
386
387 AC_CHECK_LIB(png, png_write_row,[
388         PNG_LIBS="-lpng"
389         AC_DEFINE(HAVE_LIBPNG,[], [ Define if PNG library is available ] )
390         AC_SUBST(PNG_LIBS)
391         AM_CONDITIONAL(HAVE_LIBPNG,true)
392 ],[
393         AC_CHECK_LIB(png12, png_write_row,[
394         PNG_LIBS="-lpng12"
395         AC_DEFINE(HAVE_LIBPNG,[])
396         AC_SUBST(PNG_LIBS)
397         AM_CONDITIONAL(HAVE_LIBPNG,true)
398         ],[
399                 AC_MSG_RESULT([ *** PNG Output target disabled])
400                 TARGET_PNG="no"
401                 AM_CONDITIONAL(HAVE_LIBPNG,false)
402         ],[-lz -L${exec_prefix}/lib])
403 ],[-lz -L${exec_prefix}/lib])
404
405 AC_CHECK_LIB(mng, mng_initialize,[
406         MNG_LIBS="-lmng -lz"
407         AC_DEFINE(HAVE_LIBMNG,[], [ Define if MNG library is available ] )
408         AC_SUBST(MNG_LIBS)
409         AM_CONDITIONAL(HAVE_LIBMNG,true)
410 ],[
411         AC_MSG_RESULT([ *** MNG Output target disabled])
412         TARGET_MNG="no"
413         AM_CONDITIONAL(HAVE_LIBMNG,false)
414 ],[-lz -L${exec_prefix}/lib])
415
416 AC_CHECK_LIB(jpeg, main,[
417         JPEG_LIBS="-ljpeg"
418         AC_DEFINE(HAVE_LIBJPEG,[], [ Define if JPEG library is available ] )
419         AC_SUBST(JPEG_LIBS)
420         AM_CONDITIONAL(HAVE_LIBJPEG,true)
421 ],[
422         AC_MSG_RESULT([ *** JPEG Output target disabled])
423         TARGET_JPEG="no"
424         AM_CONDITIONAL(HAVE_LIBJPEG,false)
425 ],[-L${exec_prefix}/lib])
426
427
428 dnl AC_CHECK_HEADERS(jpeglib.h,[],[
429 dnl     AC_MSG_RESULT([ *** JPEG Output target disabled])
430 dnl     TARGET_JPEG="no"
431 dnl     AM_CONDITIONAL(HAVE_LIBJPEG,false)
432 dnl ])
433
434
435
436 MODULE_DIR='${libdir}/synfig/modules'
437 moduledir=$libdir/synfig/modules
438 AC_SUBST(MODULE_DIR)
439 SYNFIGLIB_DIR=$libdir/synfig
440 AC_SUBST(SYNFIGLIB_DIR)
441
442
443
444
445
446 CXXFLAGS="$CXXFLAGS -fpermissive"
447
448 AC_CHECK_HEADERS(signal.h termios.h sys/errno.h)
449
450
451 case "$host" in
452         *mingw* | *cygwin*)
453                 AM_CONDITIONAL(WIN32_PKG, true)
454                 AM_CONDITIONAL(MACOSX_PKG, false)
455         ;;
456         *darwin*)
457                 AM_CONDITIONAL(WIN32_PKG, false)
458                 AM_CONDITIONAL(MACOSX_PKG, true)
459         ;;
460         *)
461                 AM_CONDITIONAL(WIN32_PKG, false)
462                 AM_CONDITIONAL(MACOSX_PKG, false)
463         ;;
464 esac
465                 
466                 
467
468 # -- H E A D E R S --------------------------------------------
469
470 # -- T Y P E S & S T R U C T S --------------------------------
471
472 # -- F U N C T I O N S ----------------------------------------
473
474 dnl AC_CHECK_FUNCS([floor pow sqrt],[],[
475 dnl     AC_MSG_ERROR([ ** Could not find proper math functions.])
476 dnl ])
477
478 AC_CHECK_FUNCS([fork])
479 AC_CHECK_FUNCS([kill])
480 AC_CHECK_FUNCS([pipe])
481
482 AC_CHECK_FUNCS(
483         [isnan],
484         [],
485         [
486                 AC_CHECK_FUNCS(
487                         [_isnan]
488                 )
489         ]
490 )
491
492 AC_CHECK_FUNCS(
493         [isnanf],
494         [],
495         [
496                 AC_CHECK_FUNCS(
497                         [_isnanf]
498                 )
499         ]
500 )
501
502 AC_CHECK_FUNCS(
503         [floorl],
504         [],
505         [
506                 AC_CHECK_FUNCS(
507                         [_floorl]
508                 )
509         ]
510 )
511
512 AC_CHECK_LIB([pthread],[pthread_create])
513
514 # -- O U T P U T ----------------------------------------------
515
516 AC_SUBST(CFLAGS)
517 AC_SUBST(CXXFLAGS)
518 AC_SUBST(CPPFLAGS)
519 AC_SUBST(LDFLAGS)
520
521 AC_CONFIG_SUBDIRS(libltdl)
522
523 CONFIG_LIBS="-lsynfig"
524 CONFIG_CFLAGS="$CONFIG_CFLAGS"
525 AC_SUBST(CONFIG_LIBS)
526 AC_SUBST(CONFIG_CFLAGS)
527 AC_SUBST(CONFIG_DEPS)
528 AC_SUBST(ETL_CFLAGS)
529
530 SYNFIG_LIBS="$VIMAGE_LIBS $LIBXMLPP_LIBS $ETL_LIBS $LIBSIGC_LIBS"
531 SYNFIG_CFLAGS="$LIBXMLPP_CFLAGS $ETL_CFLAGS $LIBSIGC_CFLAGS $CONFIG_CFLAGS -DSYNFIG_NO_DEPRECATED"
532
533 CONFIG_CFLAGS="`echo $CONFIG_CFLAGS | sed s/-mno-cygwin//g | sed s/-mwindows//g`"
534 SYNFIG_CFLAGS="`echo $SYNFIG_CFLAGS | sed s/-mno-cygwin//g | sed s/-mwindows//g`"
535 SYNFIG_LIBS="`echo $SYNFIG_LIBS | sed s/-mno-cygwin//g | sed s/-mwindows//g`"
536
537 AC_SUBST(LIBADD_DL)
538
539 AC_SUBST(SYNFIG_LIBS)
540 AC_SUBST(SYNFIG_CFLAGS)
541 AC_SUBST(OPENEXR_HALF_LIBS)
542
543 AC_SUBST(API_VERSION)
544
545 synfigincludedir=$includedir/synfig-$API_VERSION
546 AC_SUBST(synfigincludedir)
547
548 AC_OUTPUT(
549 synfig-config
550 synfig.pc
551 synfig.spec
552 doxygen.cfg
553 Makefile
554 src/Makefile
555 src/synfig/Makefile
556 src/synfig/proto/Makefile
557 src/modules/Makefile
558 src/modules/lyr_freetype/Makefile
559 src/modules/lyr_std/Makefile
560 src/modules/mod_bmp/Makefile
561 src/modules/mod_dv/Makefile
562 src/modules/mod_ffmpeg/Makefile
563 src/modules/mod_filter/Makefile
564 src/modules/mod_geometry/Makefile
565 src/modules/mod_gif/Makefile
566 src/modules/mod_gradient/Makefile
567 src/modules/mod_imagemagick/Makefile
568 src/modules/mod_jpeg/Makefile
569 src/modules/mod_libavcodec/Makefile
570 src/modules/mod_magickpp/Makefile
571 src/modules/mod_mng/Makefile
572 src/modules/mod_noise/Makefile
573 src/modules/mod_openexr/Makefile
574 src/modules/mod_particle/Makefile
575 src/modules/mod_png/Makefile
576 src/modules/mod_ppm/Makefile
577 src/modules/mod_yuv420p/Makefile
578 src/tool/Makefile
579 src/modules/synfig_modules.cfg
580 examples/walk/Makefile
581 examples/Makefile
582 win32inst.nsi
583 pkg-info/macosx/synfig-core.info
584 dnl src/modules/trgt_mpg/Makefile
585 dnl src/modules/mptr_mplayer/Makefile
586 )
587
588 # -- S U M M A R Y --------------------------------------------
589
590 echo "
591 $PACKAGE_NAME v.$VERSION
592 Configuration Summary
593 - - - - - -
594
595 Install Prefix -------------------> $prefix
596 Module directory -----------------> $moduledir
597 Build Platform -------------------> $build
598 Host Platform --------------------> $host
599 Time Limit -----------------------> $death_time
600 Arc Profiling --------------------> $profile_arcs
601 GProf Profiling ------------------> $profiling
602 Debug Mode -----------------------> $debug ($debug_flags)
603 Optimization ---------------------> $optimization
604 PNG output target support --------> $TARGET_PNG
605 MNG output target support --------> $TARGET_MNG
606 TIFF output target support -------> $TARGET_TIF
607 JPEG output target support -------> $TARGET_JPEG
608 ETL_CFLAGS -----------------------> $ETL_CFLAGS
609 FreeType2 ------------------------> $with_freetype
610 fontconfig -----------------------> $with_fontconfig
611 libavcodec -----------------------> $with_libavcodec
612 vImage ---------------------------> $with_vimage
613 ImageMagick ----------------------> $with_imagemagick
614 Magick++ -------------------------> $with_magickpp
615 FFMPEG ---------------------------> $with_ffmpeg
616 libdv ----------------------------> $with_libdv
617 OpenEXR --------------------------> $with_openexr
618 Using OpenEXR's \"half\" type ------> $use_openexr_half
619
620 "'$'"CXX -----------------------------> '$CXX'
621 "'$'"CXXFLAGS ------------------------> '$CXXFLAGS'
622 "'$'"SYNFIG_LIBS ---------------------> '$SYNFIG_LIBS'
623 "'$'"LIBXMLPP_LIBS -------------------> '$LIBXMLPP_LIBS'
624 "'$'"ETL_LIBS ------------------------> '$ETL_LIBS'
625 "'$'"LIBSIGC_LIBS --------------------> '$LIBSIGC_LIBS'
626 "'$'"SYNFIG_CFLAGS -------------------> '$SYNFIG_CFLAGS'
627 "'$'"LIBADD_DL -----------------------> '$LIBADD_DL'
628 "