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