Use LinkableValueNode members functions when possible in the derived valuenodes.
[synfig.git] / trunk / configure.ac
1 # $Id$
2
3 # -- I N I T --------------------------------------------------
4
5 AC_INIT([Synfig Studio],[0.61.07],[http://synfig.org/Bugs],[synfigstudio])
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
14 AM_MAINTAINER_MODE
15
16 API_VERSION=0.0
17
18 # -- V A R I A B L E S ----------------------------------------
19
20 SVN_REPOSITORY=http://svn.voria.com/code/synfig-studio
21
22 # -- P R O G R A M S ------------------------------------------
23
24 AC_PROG_CC
25 AC_GNU_SOURCE
26 AC_PROG_CXX
27 AC_PROG_CPP
28 AC_PROG_CXXCPP
29 AC_PROG_INSTALL
30
31 AC_LANG_CPLUSPLUS
32
33
34 AC_ARG_DEBUG
35
36 case "$debug" in
37         yes)
38                 AC_DEFINE(SHOW_EXTRA_INFO,[],[Show extra info in the about dialog])
39         ;;
40 esac
41
42 AC_ARG_OPTIMIZATION
43 AC_ARG_WARNINGS
44 AC_ARG_PROFILE_ARCS
45 AC_ARG_BRANCH_PROBABILITIES
46 AC_ARG_PROFILING
47
48 AC_ARG_ENABLE(g5opt,[
49   --enable-g5opt           enable optimizations specific to G5 proc],[
50     G5OPTFLAGS="-mpowerpc-gpopt -mno-multiple -mno-update -mcpu=970  -mtune=970 -falign-loops=16 -falign-functions=16"
51 ],
52 [
53     G5OPTFLAGS=
54 ])
55
56 AC_WIN32_QUIRKS
57
58 AC_LIBTOOL_WIN32_DLL
59 AC_LIBTOOL_DLOPEN
60 AC_DISABLE_STATIC
61 AC_ENABLE_SHARED
62 AC_PROG_LIBTOOL
63 AC_SUBST(LIBTOOL_DEPS)
64 AC_LIBTOOL_PATCH
65
66 ## FIXME: add i18n for .desktop and other non-compiled files
67 ## AM_GLIB_GNU_GETTEXT([external])
68 ## AC_PROG_INTLTOOL(0.11)
69 ALL_LINGUAS="fr es"
70 AM_GNU_GETTEXT([external])
71 # This is here so autoreconf will run autopoint
72 AM_GNU_GETTEXT_VERSION([0.14.4])
73
74 case "$host" in
75         *mingw* | *cygwin*)
76                 AM_CONDITIONAL(WIN32_PKG, true)
77                 AM_CONDITIONAL(MACOSX_PKG, false)
78         ;;
79         *darwin*)
80                 AM_CONDITIONAL(WIN32_PKG, false)
81                 AM_CONDITIONAL(MACOSX_PKG, true)
82                 AC_DEFINE(USE_OPEN_FOR_URLS,[],[On MacOS X "open <URL>" works, on Linux it tries to open a virtual console.] )
83         ;;
84         *)
85                 AM_CONDITIONAL(WIN32_PKG, false)
86                 AM_CONDITIONAL(MACOSX_PKG, false)
87         ;;
88 esac
89 # -- L I B R A R I E S ----------------------------------------
90
91 PKG_CHECK_MODULES(GTKMM, gtkmm-2.4 gthread-2.0,[
92         AC_MSG_CHECKING([for Gtk::AboutDialog::set_program_name])
93         synfigstudio_save_cxxflags="$CXXFLAGS"
94         CXXFLAGS="$GTKMM_CFLAGS $CXXFLAGS"
95         AC_COMPILE_IFELSE(
96                 [
97                         AC_LANG_PROGRAM([
98                                 [#include <gtkmm/aboutdialog.h>]
99                         ],[
100                                 [Gtk::AboutDialog about; about.set_program_name(PACKAGE_NAME)]
101                         ])
102                 ],[
103                         AC_MSG_RESULT([yes])
104                         AC_DEFINE(HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME,[],[Define if GTKmm provides Gtk::AboutDialog::set_program_name()] )
105                         AM_CONDITIONAL(HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME,true)
106                 ],[
107                         AC_MSG_RESULT([no])
108                         AM_CONDITIONAL(HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME,false)
109                 ]
110         )
111         CXXFLAGS="$synfigstudio_save_cxxflags"
112 ],[
113         AC_MSG_ERROR([ ** Gtkmm-2.4 Is a required library, aborting.])
114 ])
115 AC_SUBST(GTKMM_CFLAGS)
116 AC_SUBST(GTKMM_LIBS)
117
118 PKG_CHECK_MODULES(SYNFIG, [synfig >= 0.61.07] [ETL >= 0.04.10] sigc++-2.0,,[
119         AC_MSG_ERROR([ ** Unable to set up dependent libraries (synfig >= 0.61.07, ETL >= 0.04.10)])
120 ])
121 AC_SUBST(SYNFIG_CFLAGS)
122 AC_SUBST(SYNFIG_LIBS)
123
124 windowsys="gtkmm"
125 AC_DEFINE(STUDIO_WINSYS_H,"gtkmm/winsys.h",[blah])
126 AM_CONDITIONAL(WINDOWSYS_GTKMM,true)
127
128 AC_ARG_WITH(userdir,[
129   --with-userdir=(dirname)         Relative path to user directory],[
130 ],[
131 case "$host" in
132         *mingw* | *cygwin*)
133                 with_userdir="Synfig"
134         ;;
135         *darwin*)
136                 with_userdir="Library/Synfig"
137         ;;
138         *)
139                 with_userdir=".synfig"
140         ;;
141 esac
142 ])
143 AC_DEFINE_UNQUOTED(SYNFIG_USER_APP_DIR,"$with_userdir",[Synfig User Data Directory])
144
145 # --- FMOD CHECK -------------
146 AC_ARG_WITH(libfmod,[
147   --with-libfmod         Enable support for FMOD],[
148 ],[
149         AC_CHECK_LIB(fmod, FSOUND_Init,[
150                 with_libfmod="yes"
151         ],[
152                 with_libfmod="no"
153         ])
154 ])
155 if test $with_libfmod = "yes" ; then {
156         AM_CONDITIONAL(WITH_FMOD,true)
157         FMOD_LIBS="/usr/lib/libfmod.so"
158         AC_DEFINE(WITH_FMOD,"I'm here damnit",[blah])
159 } else {
160         AM_CONDITIONAL(WITH_FMOD,false)
161         FMOD_LIBS=
162 } ; fi
163
164 # Check for unordered_map or hash_map headers
165 AC_MSG_CHECKING([for unordered_map<int,int>::const_iterator])
166 AC_COMPILE_IFELSE([
167         AC_LANG_PROGRAM([
168                 [#include <tr1/unordered_map>]
169         ],[
170                 [std::tr1::unordered_map<int,int>::const_iterator iter;]
171         ])],[
172         AC_MSG_RESULT([yes])
173         AC_DEFINE([HASH_MAP_CLASS],[HASH_MAP_NAMESPACE::unordered_map],[The template name for unordered maps.])
174         AC_DEFINE([HASH_MAP_H],[<tr1/unordered_map>],[The header file to include for unordered maps.])
175         AC_DEFINE([HASH_MAP_NAMESPACE],[std::tr1],[The namespace for unordered maps.])
176         AC_DEFINE([FUNCTIONAL_H],[<tr1/functional>],[The header file for hash<T>.])
177         AC_DEFINE([FUNCTIONAL_HASH_ON_STRING],[1],[Define to 1 if hash<T> needs to use T=String rather than T=char* to hash strings.])
178 ],[
179         AC_MSG_RESULT([no])
180         AC_CHECK_HEADERS([ext/hash_map],[
181                 AC_DEFINE([HASH_MAP_CLASS],[HASH_MAP_NAMESPACE::hash_map],[The template name for unordered maps.])
182                 AC_DEFINE([HASH_MAP_H],[<ext/hash_map>],[The header file to include for unordered maps.])
183                 AC_DEFINE([HASH_MAP_NAMESPACE],[__gnu_cxx],[The namespace for unordered maps.])
184                 AC_DEFINE([FUNCTIONAL_H],[<ext/functional>],[The header file for hash<T>.])
185         ],[
186                 AC_MSG_ERROR([C++ compiler does not seem to support unordered containers])
187         ])
188 ])
189
190 # Check for unordered_set or hash_set headers
191 AC_MSG_CHECKING([for unordered_set<int,int>::const_iterator])
192 AC_COMPILE_IFELSE([
193         AC_LANG_PROGRAM([
194                 [#include <tr1/unordered_set>]
195         ],[
196                 [std::tr1::unordered_set<int,int>::const_iterator iter;]
197         ])],[
198         AC_MSG_RESULT([yes])
199         AC_DEFINE([HASH_SET_CLASS],[HASH_SET_NAMESPACE::unordered_set],[The template name for unordered sets.])
200         AC_DEFINE([HASH_SET_H],[<tr1/unordered_set>],[The header file to include for unordered sets.])
201         AC_DEFINE([HASH_SET_NAMESPACE],[std::tr1],[The namespace for unordered sets.])
202 ],[
203         AC_MSG_RESULT([no])
204         AC_CHECK_HEADERS([ext/hash_set],[
205                 AC_DEFINE([HASH_SET_CLASS],[HASH_SET_NAMESPACE::hash_set],[The template name for unordered sets.])
206                 AC_DEFINE([HASH_SET_H],[<ext/hash_set>],[The header file to include for unordered sets.])
207                 AC_DEFINE([HASH_SET_NAMESPACE],[__gnu_cxx],[The namespace for unordered sets.])
208         ],[
209                 AC_MSG_ERROR([C++ compiler does not seem to support unordered containers])
210         ])
211 ])
212
213 # -- H E A D E R S --------------------------------------------
214
215 AC_CHECK_HEADERS([unistd.h signal.h fcntl.h])
216 AC_CHECK_HEADERS([sys/types.h sys/wait.h sys/stat.h sys/time.h sys/resource.h sys/errno.h])
217
218 # -- T Y P E S & S T R U C T S --------------------------------
219
220 # -- F U N C T I O N S ----------------------------------------
221
222 AC_CHECK_FUNCS([fork])
223 AC_CHECK_FUNCS([kill])
224 AC_CHECK_FUNCS([pipe])
225 AC_CHECK_FUNCS([setpriority mkfifo stat]) 
226
227 # -- A R G U M E N T S ----------------------------------------
228
229 # -- O U T P U T ----------------------------------------------
230
231 AC_SUBST(CFLAGS)
232 AC_SUBST(CPPFLAGS)
233 AC_SUBST(CXXFLAGS)
234 AC_SUBST(LDFLAGS)
235 AC_SUBST(SVN_REPOSITORY)
236
237 AC_SUBST(API_VERSION)
238
239 # fmod stuff...
240 AC_SUBST(FMOD_LIBS)
241
242 imageext=png
243 AC_SUBST(imageext)
244
245 imagedir="${datadir}/pixmaps/synfigstudio"
246 AC_SUBST(imagedir)
247
248 AC_OUTPUT(
249 Makefile
250 build_tools/Makefile
251 doxygen.cfg
252 po/Makefile.in
253 synfigstudio.desktop
254 synfigstudio.mime
255 synfigstudio.keys
256 synfigstudio.xml
257 synfigstudio-thumbnailer.schemas
258 src/Makefile
259 src/gtkmm/Makefile
260 src/synfigapp/Makefile
261 images/Makefile
262 win32inst.nsi
263 pkg-info/macosx/synfig-studio.info
264 )
265
266 # -- S U M M A R Y --------------------------------------------
267
268 echo "
269 $PACKAGE_NAME v.$VERSION
270 Configuration Summary
271 - - - - - -
272
273 Install Prefix -------------------> $prefix
274 Host Platform --------------------> $host
275 Icon Format ----------------------> $imageext
276 Debug Mode -----------------------> $debug
277 Profiling Mode -------------------> $profiling
278 Optimizations --------------------> $optimization
279 Window System --------------------> $windowsys
280 FMOD Enabled ---------------------> $with_libfmod
281
282 "'$'"CXX ------------------------------> '$CXX'
283 "'$'"CXXFLAGS -------------------------> '$CXXFLAGS'
284 "'$'"LDFLAGS --------------------------> '$LDFLAGS'
285 "'$'"SYNFIG_CFLAGS ---------------------> '$SYNFIG_CFLAGS'
286 "'$'"SYNFIG_LIBS -----------------------> '$SYNFIG_LIBS'
287 "'$'"GTKMM_CFLAGS ---------------------> '$GTKMM_CFLAGS'
288 "'$'"GTKMM_LIBS -----------------------> '$GTKMM_LIBS'
289 "