converted image loader to a GObject and use signals for notification
[geeqie.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.  -*- Autoconf
2  -*-
3
4 dnl This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
5 dnl Copyright (C) 2008 The Geeqie team
6 dnl
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16
17 AC_PREREQ(2.57)
18 AC_INIT(geeqie, 1.0alpha2, geeqie-devel@lists.sourceforge.net)
19
20 # Check for rightly dirs
21 AC_CONFIG_SRCDIR([src/main.c])
22
23 AC_CONFIG_AUX_DIR(auxdir)
24 AM_INIT_AUTOMAKE
25
26 AC_CONFIG_HEADER([config.h])
27
28 # Only for developers
29 AM_MAINTAINER_MODE
30
31 AC_ARG_ENABLE(developer, [
32 Development options:
33 AC_HELP_STRING([--enable-developer], [turn on developers mode [default=no]])],
34 [
35   __IS_DEVELOPER=yes
36 ],
37 [
38 if test "x${enable_developer}" != "xyes"
39 then
40   __IS_DEVELOPER=no
41 else
42   __IS_DEVELOPER=yes
43 fi
44 ])
45
46 #  Debug support
47 # ----------------------------------------------------------------------
48
49 dnl Debugging option
50 dnl FIXME: official release convert default to 'no'
51 dnl
52
53 AC_ARG_ENABLE([debug-flags], [
54 Development options:
55 AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
56 [
57 if test "x${enable_developer}" != "xyes"
58 then
59   enable_debug_flags="no"
60 else
61   enable_debug_flags="yes"
62 fi
63 ])
64
65 AC_ARG_ENABLE([debug-log], [
66 Development options:
67 AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
68
69 if test "x${enable_debug_flags}" != "xno"
70 then
71   CXXFLAGS="${CXXFLAGS} -g -O0 -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -W"
72   CFLAGS="${CFLAGS} -g -O0 -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wimplicit-int -Werror-implicit-function-declaration -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -W"
73   if test "x${enable_developer}" == "xyes"
74   then
75   CXXFLAGS="${CXXFLAGS} -Wall"
76   CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
77   fi
78   __IS_DEBUG_FLAGS=yes
79 else
80   __IS_DEBUG_FLAGS=no
81 fi
82
83 if test "x${enable_debug_log}" != "xno"
84 then
85   AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
86   __IS_DEBUG_LOG=yes
87 else
88   __IS_DEBUG_LOG=no
89 fi
90
91 AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
92
93 AC_ARG_ENABLE(deprecated, [
94 AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [], 
95 [
96 if test "x${enable_developer}" != "xyes"
97 then
98   enable_deprecated="no"
99 else
100   enable_deprecated="yes"
101 fi
102 ])
103
104 if test "x${enable_deprecated}" != "xno"
105 then
106   CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
107   CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
108   __IS_DEPRECATED=yes
109 else
110   __IS_DEPRECATED=no
111 fi
112
113
114 AC_ISC_POSIX
115 AC_PROG_CC
116 AC_PROG_CXX
117 AC_STDC_HEADERS
118 AC_ARG_PROGRAM
119
120 dnl checks for functions
121 AC_CHECK_FUNCS(strverscmp access fsync fflush)
122
123
124 # Check target architecture
125
126 # Check for Win32
127 AC_MSG_CHECKING([for some Win32 platform])
128 case "$target_os" in
129   mingw* | cygwin*)
130     platform_win32=yes
131     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
132     ;;
133   *)
134     platform_win32=no
135     ;;
136 esac
137 AC_MSG_RESULT([$platform_win32])
138 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
139
140 AC_MSG_CHECKING([for native Win32])
141 case "$target_os" in
142   mingw*)
143     os_win32=yes
144     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
145     os_unix=no
146     PATHSEP=';'
147     ;;
148   *)
149     os_win32=no
150     os_unix=yes
151     PATHSEP=':'
152     ;;
153 esac
154 AC_MSG_RESULT([$os_win32])
155 AC_SUBST(PATHSEP)
156 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
157 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
158
159 if test "$os_win32" = "yes"; then
160   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
161   AC_CHECK_TOOL(WINDRES, windres, :)
162 else
163   WINDRES=":"
164 fi
165
166 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
167 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
168 AC_SUBST(WINDRES)
169
170 have_libpthread=no
171 AC_CHECK_LIB([pthread], [main],
172   [AC_CHECK_HEADER([pthread.h],
173      have_libpthread=yes,
174      have_libpthread=no)],
175   [AC_MSG_ERROR([Can't find the POSIX thread libraries])], [-lpthread])
176 if test "x${have_libpthread}" = "xyes"; then
177         LIBPTHREAD='-lpthread'
178         AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if pthread is available])
179 else
180   AC_MSG_WARN([POSIX thread header not installed])
181 fi
182 AC_MSG_CHECKING(for libpthread)
183 AC_MSG_RESULT([${have_libpthread}])
184
185 dnl reasonable guesses for where stuff is installed
186 if test "x$prefix" = "xNONE"; then
187   prefix="/usr/local"
188 else
189   prefix=$prefix
190 fi
191
192 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
193 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
194 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
195
196 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
197             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
198 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
199             htmldir=$withval, htmldir="$readmedir/html")
200
201 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
202 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
203
204 AC_SUBST(readmedir)
205 AC_SUBST(htmldir)
206
207 #  LIRC support
208 # ----------------------------------------------------------------------
209
210 dnl Check for LIRC client support
211 AC_MSG_CHECKING(if LIRC support is enabled)
212 lirc=no
213 AC_ARG_ENABLE([lirc],
214   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
215 [
216 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
217   AC_MSG_RESULT(yes)
218   lirc=yes
219 else
220   AC_MSG_RESULT(no)
221   lirc=no
222 fi], AC_MSG_RESULT(no))
223
224
225 AC_ARG_WITH(lirc-prefix,
226 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
227 [
228 for dir in `echo "$withval" | tr : ' '`; do
229   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
230   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
231   done
232 ])
233
234 HAVE_LIRC=no
235 if test "x${lirc}" != "xno" ; then
236   AC_CHECK_HEADER(lirc/lirc_client.h,
237     [AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=yes;LIBS=-llirc_client $LIBS;AC_DEFINE([HAVE_LIRC],[],[Define to 1 if LIRC must be used])],,)],)
238 fi
239 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
240
241
242 #  LCMS support
243 # ----------------------------------------------------------------------
244
245 AC_ARG_ENABLE([lcms],
246   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
247     [liblcms=$enableval], [liblcms=auto])
248
249 if test "x${liblcms}" != "xno"; then
250   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
251     [
252       HAVE_LCMS=yes
253       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
254     ],
255     [
256       HAVE_LCMS=no
257       AC_MSG_WARN([$LCMS_PKG_ERRORS])
258     ])
259 else
260   HAVE_LCMS=disabled
261 fi
262         
263 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
264 AC_SUBST(LCMS_CFLAGS)
265 AC_SUBST(LCMS_LIBS)
266
267
268 #  Exiv2 support
269 # ----------------------------------------------------------------------
270
271 AC_ARG_ENABLE([exiv2],
272   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
273     [libexiv2=$enableval], [libexiv2=auto])
274
275 if test "x${libexiv2}" != "xno"; then
276   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
277     [
278       HAVE_EXIV2=yes
279       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
280     ],
281     [
282       HAVE_EXIV2=no
283       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
284     ])
285 else
286   HAVE_EXIV2=disabled
287 fi
288         
289 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
290 AC_SUBST(EXIV2_CFLAGS)
291 AC_SUBST(EXIV2_LIBS)
292
293
294 #  Gettext support
295 # ----------------------------------------------------------------------
296
297 dnl Set of available languages
298 ALL_LINGUAS="ar be bg ca cs da de eo es et eu fi fr hu id it ja ko nl nb pl pt_BR ro ru sk sl sv th tr uk vi zh_CN.GB2312 zh_TW"
299
300 GETTEXT_PACKAGE=$PACKAGE
301 AC_SUBST(GETTEXT_PACKAGE)
302 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
303 AM_GLIB_GNU_GETTEXT
304 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
305
306 AC_SUBST(CFLAGS)
307 AC_SUBST(CXXFLAGS)
308 AC_SUBST(CPPFLAGS)
309 AC_SUBST(LDFLAGS)
310
311
312 AH_TOP([
313 /** @file config.h
314  * autogenerated definition by autoheader.
315  * @author Bruclik
316  */
317  
318 /*
319  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
320  *  Copyright (C) 2008 The Geeqie team
321  *  
322  *  This program is free software; you can redistribute it and/or modify
323  *  it under the terms of the GNU General Public License as published by
324  *  the Free Software Foundation; either version 2 of the License, or 
325  *  (at your option) any later version.
326  *  
327  *  This program is distributed in the hope that it will be useful,
328  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
329  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
330  *  GNU General Public License for more details.
331  */ 
332  
333 #ifndef _INCLUDE_CONFIG_H
334 #define _INCLUDE_CONFIG_H
335 ])
336
337 AH_BOTTOM([#endif])
338
339 dnl Write the output
340 dnl
341
342 AC_CONFIG_FILES([
343     Makefile
344     src/Makefile
345     src/icons/Makefile
346     src/icons/svg/Makefile
347     po/Makefile.in
348     doc/Makefile
349     geeqie.spec
350 ])
351
352 AC_OUTPUT
353 dnl Print the results
354 dnl
355
356 cat > config.report << END
357
358      Config results:
359     -=-=-=-=-=-=-=-=-
360
361 Package:
362   Name:          $PACKAGE_NAME
363   Version:       $PACKAGE_VERSION
364   Patch version: $GQ_PATCH_VERSION
365   Date:          $GQ_PATCH_DATE
366
367 Architecture:
368   UNIX:          $os_unix
369   Win32:         $platform_win32 (native: $os_win32)
370
371 Flags:
372   Geeqie:        $GQ_CFLAGS
373   DEFS:          $DEFS
374   CPPFLAGS:      $__CPPFLAGS
375   CFLAGS:        $CFLAGS
376   CXXFLAGS:      $CXXFLAGS
377   Gtk:           $GTK_CFLAGS
378   Glib:          $GLIB_CFLAGS
379   Thread:        $LIBPTHREAD
380   Others:        $LCMS_LIBS $EXIV2_LIBS
381
382 Localization:
383   NLS support:   $USE_NLS
384   LINGUAS:       $LINGUAS
385
386 Settings:
387   Developer:     $__IS_DEVELOPER
388   Debug flags:   $__IS_DEBUG_FLAGS
389   Debug log:     $__IS_DEBUG_LOG
390   Deprecated:    $__IS_DEPRECATED
391
392 Support:
393   LCMS:          $HAVE_LCMS
394   Exiv2:         $HAVE_EXIV2
395   Lirc:          $HAVE_LIRC
396
397 Documentation:
398   Doxygen:       $DOXYGEN
399   Formats:       $doxy_formats_report
400 END
401
402 cat config.report
403 cat <<EOF
404
405   Now you can type "make" to build Geeqie
406   (or you take blue pill and the story ends :)
407
408 EOF
409