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