Release v.1.0.2.
[lxde/pcmanfm.git] / configure.ac
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ([2.63])
5 AC_INIT([pcmanfm], [1.0.2], [http://pcmanfm.sf.net/])
6 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
7
8 AC_CONFIG_HEADERS([config.h])
9
10 # Checks for programs.
11 AC_ISC_POSIX
12 AC_PROG_CC
13 AM_PROG_CC_STDC
14 AM_PROG_CC_C_O
15
16 # Checks for header files.
17 AC_HEADER_STDC
18
19 # Checks for typedefs, structures, and compiler characteristics.
20
21 # Checks for library functions.
22 AC_SEARCH_LIBS([floor], [m])
23
24 # Large file support
25 AC_ARG_ENABLE([largefile],
26     AS_HELP_STRING([--enable-largefile],
27         [enable Large file support (default: yes)]),
28     largefile=$enableval, largefile="yes")
29
30 if test x"$largefile" = x"yes"; then
31   CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
32   AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
33   AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
34 fi
35
36 AC_ARG_ENABLE(
37     [cast-checks],
38     AS_HELP_STRING([--enable-cast-checks],
39                    [enable Glib casting checks (default: disable)]),
40     cast_checks=$enableval, cast_checks="no")
41
42 AC_ARG_ENABLE(debug,
43     [AC_HELP_STRING([--enable-debug],
44         [build pcmanfm with debug support @<:@default=no@:>@])],
45     [enable_debug="${enableval}"],
46     [enable_debug=no])
47
48 if test "$enable_debug" = "yes"; then
49     # turn on debug and disable optimization
50     CPPFLAGS="$CPPFLAGS -DG_ENABLE_DEBUG -O0 -g"
51     case "$CC" in
52     gcc*)
53         CPPFLAGS="$CPPFLAGS -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers"
54         ;;
55     *)
56         ;;
57     esac
58     dnl Be more strict on compatibility
59     CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=700"
60     dnl debug should enforce cast checks
61     cast_checks=yes
62 else
63     # turn off glib debug checks
64     # G_DISABLE_CAST_CHECKS is already handled by $(G_CAST_CHECKS)
65     CPPFLAGS="$CPPFLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
66 fi
67
68 G_CAST_CHECKS=""
69 if test x"$cast_checks" = "xno"; then
70     G_CAST_CHECKS="-DG_DISABLE_CAST_CHECKS"
71 fi
72 AC_SUBST(G_CAST_CHECKS)
73
74 # intltool
75 IT_PROG_INTLTOOL([0.40.0])
76
77 dnl libgtk version
78 AC_ARG_WITH(gtk,
79     [AC_HELP_STRING([--with-gtk=VER],
80         [choose Gtk+ version for libfm-gtk build (default=2)])],
81     [ac_with_gtk="${withval}"],
82     [ac_with_gtk=2])
83
84 # Checks for libraries.
85
86 PKG_CHECK_MODULES(XLIB, "x11")
87 AC_SUBST(XLIB_CFLAGS)
88 AC_SUBST(XLIB_LIBS)
89
90 gio_modules="gthread-2.0 gio-unix-2.0 >= 2.18.0"
91 PKG_CHECK_MODULES(GIO, [$gio_modules])
92 AC_SUBST(GIO_CFLAGS)
93 AC_SUBST(GIO_LIBS)
94
95 fm_modules="$gio_modules glib-2.0 pango >= 1.20.0 libfm >= 1.0"
96 case "$ac_with_gtk" in
97     3|3.*)
98         fm_modules="$fm_modules gtk+-3.0 libfm-gtk3 >= 1.0.1"
99         ;;
100     *)
101         fm_modules="$fm_modules gtk+-2.0 libfm-gtk >= 1.0.1"
102         ;;
103 esac
104 PKG_CHECK_MODULES(FM, [$fm_modules])
105 AC_SUBST(FM_CFLAGS)
106 AC_SUBST(FM_LIBS)
107
108 GETTEXT_PACKAGE=pcmanfm
109 AC_SUBST(GETTEXT_PACKAGE)
110
111 # Generate po/LINGUAS on the fly rather than relying on translators
112 # to maintain it manually. This also overcome the problem that Transifex
113 # cannot add a language to po/LINGUAS if a new po file is submitted.
114 rm -f $srcdir/po/LINGUAS
115 for po_file in `ls $srcdir/po/*.po | sort`;
116 do
117     lang=`echo "$po_file" | sed "s|.*/po/\(.*\)\.po|\1|g"`
118     echo $lang >> $srcdir/po/LINGUAS
119 done
120
121 AM_GLIB_GNU_GETTEXT
122 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
123
124 dnl Fix invalid sysconfdir when --prefix=/usr
125 if test `eval "echo $sysconfdir"` = /usr/etc
126 then
127     sysconfdir=/etc
128 fi
129
130 AC_CONFIG_FILES([
131     Makefile
132     src/Makefile
133     po/Makefile.in
134     data/Makefile
135     data/pcmanfm.1
136     data/ui/Makefile
137     data/ui/about.glade
138 ])
139
140 AC_OUTPUT
141
142 echo Ready to make pcmanfm