disabled the "unused parameter" warnings, they are harmless and nobody
[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"
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"
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 dnl reasonable guesses for where stuff is installed
171 if test "x$prefix" = "xNONE"; then
172   prefix="/usr/local"
173 else
174   prefix=$prefix
175 fi
176
177 AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.))
178 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
179
180 have_gthread="no"
181 AC_ARG_ENABLE([threads],
182   AC_HELP_STRING([--enable-threads], [enable thread support]),
183 [
184 if test "x${enableval}" = "xyes"; then
185   PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
186 fi
187 ], )
188
189
190 if test "x$have_gthread" != "xno"; then
191         AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
192         GLIB_CFLAGS="$GTHREAD_CFLAGS"
193         GLIB_LIBS="$GTHREAD_LIBS"
194 fi
195
196
197 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
198 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
199
200 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
201             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
202 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
203             htmldir=$withval, htmldir="$readmedir/html")
204
205 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
206 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
207
208 AC_SUBST(readmedir)
209 AC_SUBST(htmldir)
210
211 #  LIRC support
212 # ----------------------------------------------------------------------
213
214 dnl Check for LIRC client support
215 AC_MSG_CHECKING(if LIRC support is enabled)
216 lirc=no
217 AC_ARG_ENABLE([lirc],
218   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
219 [
220 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
221   AC_MSG_RESULT(yes)
222   lirc=yes
223 else
224   AC_MSG_RESULT(no)
225   lirc=no
226 fi], AC_MSG_RESULT(no))
227
228
229 AC_ARG_WITH(lirc-prefix,
230 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
231 [
232 for dir in `echo "$withval" | tr : ' '`; do
233   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
234   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
235   done
236 ])
237
238 HAVE_LIRC=no
239 if test "x${lirc}" != "xno" ; then
240   AC_CHECK_HEADER(lirc/lirc_client.h,
241     [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])],,)],)
242 fi
243 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
244
245
246 #  LCMS support
247 # ----------------------------------------------------------------------
248
249 AC_ARG_ENABLE([lcms],
250   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
251     [liblcms=$enableval], [liblcms=auto])
252
253 if test "x${liblcms}" != "xno"; then
254   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
255     [
256       HAVE_LCMS=yes
257       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
258     ],
259     [
260       HAVE_LCMS=no
261       AC_MSG_WARN([$LCMS_PKG_ERRORS])
262     ])
263 else
264   HAVE_LCMS=disabled
265 fi
266         
267 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
268 AC_SUBST(LCMS_CFLAGS)
269 AC_SUBST(LCMS_LIBS)
270
271
272 #  Exiv2 support
273 # ----------------------------------------------------------------------
274
275 AC_ARG_ENABLE([exiv2],
276   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
277     [libexiv2=$enableval], [libexiv2=auto])
278
279 if test "x${libexiv2}" != "xno"; then
280   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
281     [
282       HAVE_EXIV2=yes
283       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
284     ],
285     [
286       HAVE_EXIV2=no
287       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
288     ])
289 else
290   HAVE_EXIV2=disabled
291 fi
292         
293 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
294 AC_SUBST(EXIV2_CFLAGS)
295 AC_SUBST(EXIV2_LIBS)
296
297
298 #  Gettext support
299 # ----------------------------------------------------------------------
300
301 dnl Set of available languages
302 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"
303
304 GETTEXT_PACKAGE=$PACKAGE
305 AC_SUBST(GETTEXT_PACKAGE)
306 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
307 AM_GLIB_GNU_GETTEXT
308 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
309
310 AC_SUBST(CFLAGS)
311 AC_SUBST(CXXFLAGS)
312 AC_SUBST(CPPFLAGS)
313 AC_SUBST(LDFLAGS)
314
315
316 AH_TOP([
317 /** @file config.h
318  * autogenerated definition by autoheader.
319  * @author Bruclik
320  */
321  
322 /*
323  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
324  *  Copyright (C) 2008 The Geeqie team
325  *  
326  *  This program is free software; you can redistribute it and/or modify
327  *  it under the terms of the GNU General Public License as published by
328  *  the Free Software Foundation; either version 2 of the License, or 
329  *  (at your option) any later version.
330  *  
331  *  This program is distributed in the hope that it will be useful,
332  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
333  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
334  *  GNU General Public License for more details.
335  */ 
336  
337 #ifndef _INCLUDE_CONFIG_H
338 #define _INCLUDE_CONFIG_H
339 ])
340
341 AH_BOTTOM([#endif])
342
343 dnl Write the output
344 dnl
345
346 AC_CONFIG_FILES([
347     Makefile
348     src/Makefile
349     src/icons/Makefile
350     src/icons/svg/Makefile
351     po/Makefile.in
352     doc/Makefile
353     geeqie.spec
354 ])
355
356 AC_OUTPUT
357 dnl Print the results
358 dnl
359
360 cat > config.report << END
361
362      Config results:
363     -=-=-=-=-=-=-=-=-
364
365 Package:
366   Name:          $PACKAGE_NAME
367   Version:       $PACKAGE_VERSION
368   Patch version: $GQ_PATCH_VERSION
369   Date:          $GQ_PATCH_DATE
370
371 Architecture:
372   UNIX:          $os_unix
373   Win32:         $platform_win32 (native: $os_win32)
374
375 Flags:
376   Geeqie:        $GQ_CFLAGS
377   DEFS:          $DEFS
378   CPPFLAGS:      $__CPPFLAGS
379   CFLAGS:        $CFLAGS
380   CXXFLAGS:      $CXXFLAGS
381   Gtk:           $GTK_CFLAGS
382   Glib:          $GLIB_CFLAGS
383   Thread:        $GTHREAD_LIBS
384   Others:        $LCMS_LIBS $EXIV2_LIBS
385
386 Localization:
387   NLS support:   $USE_NLS
388   LINGUAS:       $LINGUAS
389
390 Settings:
391   Developer:     $__IS_DEVELOPER
392   Debug flags:   $__IS_DEBUG_FLAGS
393   Debug log:     $__IS_DEBUG_LOG
394   Deprecated:    $__IS_DEPRECATED
395
396 Support:
397   LCMS:          $HAVE_LCMS
398   Exiv2:         $HAVE_EXIV2
399   Lirc:          $HAVE_LIRC
400
401 Documentation:
402   Doxygen:       $DOXYGEN
403   Formats:       $doxy_formats_report
404 END
405
406 cat config.report
407 cat <<EOF
408
409   Now you can type "make" to build Geeqie
410   (or you take blue pill and the story ends :)
411
412 EOF
413