Add About box
[lxde/lxpanel.git] / configure.ac
1 AC_PREREQ(2.53)
2 AC_INIT(lxpanel, 0.4.1, http://lxde.org/)
3 AM_INIT_AUTOMAKE
4 AC_CONFIG_SRCDIR([src/bg.c])
5 AC_CONFIG_HEADER([config.h])
6
7 # Force to dynamic
8 AC_DISABLE_STATIC
9
10 # Checks for programs.
11 AC_PROG_CC
12 AC_PROG_INSTALL
13 AC_PROG_LN_S
14 AC_PROG_LIBTOOL
15 AC_PROG_INTLTOOL(, [no-xml])
16 AM_PROG_CC_C_O
17
18 # Checks for libraries.
19 pkg_modules="gtk+-2.0 >= 2.12.0 \
20              gthread-2.0"
21 #             libstartup-notification-1.0"
22 PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
23 AC_SUBST(PACKAGE_CFLAGS)
24 AC_SUBST(PACKAGE_LIBS)
25
26 pkg_modules="libmenu-cache"
27 PKG_CHECK_MODULES(MENU_CACHE, [$pkg_modules],
28                   enable_menu_cache=yes, enable_menu_cache=no)
29 if test x"$enable_menu_cache" = "xno"; then
30         AC_WARN([No libmenu-cache found.  All menu related routines are not built.])
31         AC_DEFINE(DISABLE_MENU, [1], [Disable menu related routines])
32 fi
33 AC_SUBST(MENU_CACHE_CFLAGS)
34 AC_SUBST(MENU_CACHE_LIBS)
35 AM_CONDITIONAL(ENABLE_MENU_CACHE, test x"$enable_menu_cache" = x"yes") 
36
37 PACKAGE_CFLAGS="$PACKAGE_CFLAGS $MENU_CACHE_CFLAGS"
38 PACKAGE_LIBS="$PACKAGE_LIBS $MENU_CACHE_LIBS"
39
40 # Gtk Builder
41 #AC_PATH_PROG([GTK_BUILDER_CONVERT],[gtk-builder-convert],[false])
42 #if test "$GTK_BUILDER_CONVERT" = "false"; then
43 #  AC_MSG_ERROR([gtk-builder-convert not found])
44 #fi
45
46 AC_ARG_ENABLE([cast-checks],
47     AS_HELP_STRING([--enable-cast-checks],
48                [enable Glib casting checks (default: disable)]),
49                cast_checks=$enableval, cast_checks="no")
50 G_CAST_CHECKS=""
51 if test x"$cast_checks" = "xno"; then
52     G_CAST_CHECKS="-DG_DISABLE_CAST_CHECKS"
53 fi
54 AC_SUBST(G_CAST_CHECKS)
55
56 dnl linker tweaking
57 # The function of the link flag --as-needed is to prevent unnecesary linking.
58 # Example: A -> B -> C
59 # Normally, A would link to B and also depend on C, this is of cource
60 # unnecesary. In this situation, however we do need to link to C, so this
61 # must be done explicitly. This flag comes in handy when a library ABI
62 # is changed, minimizing the amount of recompilations needed.
63 AC_MSG_CHECKING([whether $LD accepts --as-needed])
64 case `$LD --as-needed -v 2>&1 </dev/null` in
65 *GNU* | *'with BFD'*)
66     LDFLAGS="$LDFLAGS -Wl,--as-needed"
67     AC_MSG_RESULT([yes])
68     ;;
69 *)
70     AC_MSG_RESULT([no])
71     ;;
72 esac
73
74 dnl linker optimizations
75 AC_MSG_CHECKING([whether $LD accepts -O1])
76 case `$LD -O1 -v 2>&1 </dev/null` in
77 *GNU* | *'with BFD'*)
78   LDFLAGS="$LDFLAGS -Wl,-O1"
79   AC_MSG_RESULT([yes])
80   ;;
81 *)
82   AC_MSG_RESULT([no])
83   ;;
84 esac
85 AC_MSG_CHECKING([whether $LD accepts -Bsymbolic-functions])
86 case `$LD -Bsymbolic-functions -v 2>&1 </dev/null` in
87 *GNU* | *'with BFD'*)
88   LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions"
89   AC_MSG_RESULT([yes])
90   ;;
91 *)
92   AC_MSG_RESULT([no])
93   ;;
94 esac
95 AC_MSG_CHECKING([whether $LD accepts --sort-common])
96 case `$LD --sort-common -v 2>&1 </dev/null` in
97 *GNU* | *'with BFD'*)
98   LDFLAGS="$LDFLAGS -Wl,--sort-common"
99   AC_MSG_RESULT([yes])
100   ;;
101 *)
102   AC_MSG_RESULT([no])
103   ;;
104 esac
105
106 dnl FIXME: filter for undefined symbols in plugins
107 # when passing "-z defs" to linker, we would better to make sure
108 # there are no undefined references.  However, we intend not to
109 # fix at the moment since we don't have spin-off libraray containing
110 # the necessary functions.
111 if test ! -z "$LDFLAGS"; then
112     LDFLAGS=`echo "$LDFLAGS" | sed -e 's/-Wl,-z,defs//'`
113 fi
114
115 LXPANEL_MODULE="-avoid-version \
116 -rpath \$(libdir)/lxpanel/plugins \
117 -no-undefined "'-export-symbols-regex "^[[^_]].*"'
118 AC_SUBST(LXPANEL_MODULE)
119
120 AC_ARG_ENABLE([alsa],
121     AS_HELP_STRING([--disable-alsa],
122                     [compile ALSA providers (default: enable)]),
123             compile_alsa=$enableval, compile_alsa="yes")
124 if test x"$compile_alsa" = "xyes"; then
125     AC_CHECK_HEADERS([alsa/asoundlib.h],
126                      [AC_CHECK_LIB([asound],
127                                    [snd_seq_open],
128                                    compile_alsa=yes,compile_alsa=no)],
129                           compile_alsa=no)
130 fi
131 AM_CONDITIONAL(BUILD_ALSA_PLUGINS, test x$compile_alsa = xyes)
132 dnl FIXME: check OSS existence
133 AM_CONDITIONAL(BUILD_OSS_PLUGINS, test x$compile_alsa = xno)
134
135 # check libiw for netstat plugin
136 AC_ARG_ENABLE([libiw],
137     AS_HELP_STRING([--disable-libiw],
138                     [compile libiw-based netstat plugin (default: disable)]),
139             compile_libiw=$enableval, compile_libiw="no")
140 if test x"$compile_libiw" = "xyes"; then
141     AC_CHECK_HEADERS(iwlib.h,
142                      [AC_CHECK_LIB(iw,
143                                    iw_sockets_open,
144                                    compile_libiw=yes,
145                                    compile_libiw=no)],
146                                    compile_libiw=no)
147 fi
148 AM_CONDITIONAL(BUILD_LIBIW_PLUGINS, test x$compile_libiw = xyes)
149
150 AC_ARG_ENABLE([plugins-loading],
151     AS_HELP_STRING([--disable-plugins-loading],
152                [disable plugin loading (default: enable)]),
153                plugins_loading=$enableval, plugins_loading="yes")
154
155 AM_CONDITIONAL(BUILD_PLUGIN_LOADER, test x$plugins_loading = xyes)
156
157 if test x"$plugins_loading" = "xno"; then
158     AC_DEFINE(DISABLE_PLUGINS_LOADING, [1], [Disable plugin loading])
159 fi
160
161 dnl Here are plugin listing.
162 plugin_netstatus=
163 plugin_netstat=
164 plugin_volume=
165 plugin_volumealsa=
166 plugin_cpu=
167 plugin_deskno=
168 plugin_batt=
169 plugin_xkb=
170 plugin_kbled=
171 plugin_thermal=
172
173 AC_MSG_CHECKING([which plugins should be built dynamically])
174 AC_ARG_WITH(plugins,
175 [  --with-plugins=<list>  compile dynamic plugins in <list> ]
176 [                         plugins may be comma separated ]
177 [                         'all' builds all plugins (default), 'none' builds none ]
178 [                         Possible plugins are: ]
179 [                         netstatus, netstat, volume, volumealsa, cpu, deskno, batt, kbled, xkb, thermal], plugins="$withval",[plugins="all"])
180
181 if test x"$plugins" != xall -a x"$plugins" != xnone; then
182     if test x"$plugins_loading" = xno; then
183         AC_MSG_ERROR(
184         [--disable-plugins-loading and --with-plugins conflict each other.])
185     fi
186 fi
187
188 ALL_PLUGINS_LIST="netstatus netstat volume volumealsa cpu deskno batt kbled xkb thermal"
189 AC_SUBST(ALL_PLUGINS_LIST)
190
191 if test x"$plugins" = xall; then
192 dnl    for name in $ALL_PLUGINS
193 dnl    do
194 dnl        export plugin_$name="$name"
195 dnl    done
196
197     plugin_netstatus=netstatus
198     plugin_netstat=
199     plugin_volume=volume
200     plugin_volumealsa=volumealsa
201     plugin_cpu=cpu
202     plugin_deskno=deskno
203     plugin_batt=batt
204     plugin_kbled=kbled
205     plugin_xkb=
206     plugin_thermal=thermal
207
208     AC_MSG_RESULT(all)
209 else
210     if test "$plugins" != "none"; then
211         plugins=`echo $plugins | sed 's/,/ /g'`
212         for plugin in $plugins
213         do
214         case "$plugin" in
215             netstatus)
216                 plugin_netstatus=netstatus
217                 ;;
218             netstat)
219                 plugin_netstat=netstat
220                 ;;
221             volume)
222                 plugin_volume=volume
223                 ;;
224             volumealsa)
225                 plugin_volumealsa=volumealsa
226                 ;;
227             cpu)
228                 plugin_cpu=cpu
229                 ;;
230             deskno)
231                 plugin_deskno=deskno
232                 ;;
233             batt)
234                 plugin_batt=batt
235                 ;;
236             kbled)
237                 plugin_kbled=kbled
238                 ;;
239             xkb)
240                 plugin_xkb=xkb
241                 ;;
242             thermal)
243                 plugin_thermal=thermal
244                 ;;
245             *)
246                 echo "Unknown plugin $plugin."
247                 exit 1
248                 ;;
249         esac
250         done
251         AC_MSG_RESULT($plugins)
252     fi
253 fi
254
255 dnl FIXME: OSS/ALSA checking
256 if test x"$compile_alsa" = "xno"; then
257     if test ! -z $plugin_volumealsa; then
258         AC_MSG_RESULT([no ALSA headers/libraries found!])
259         plugin_volumealsa=
260     fi
261 else
262     dnl force OSS plugin to <null>
263     plugin_volume=
264 fi
265 if test x"$compile_libiw" = "xno"; then
266    if test ! -z $plugin_netstat; then
267        AC_MSG_RESULT([no libiw headers/libraries found!])
268    fi
269    plugin_netstat=
270 fi
271 PLUGINS_LIST="\
272     $plugin_netstatus \
273     $plugin_netstat \
274     $plugin_volume \
275     $plugin_volumealsa \
276     $plugin_cpu \
277     $plugin_deskno \
278     $plugin_batt \
279     $plugin_kbled \
280     $plugin_xkb \
281     $plugin_thermal"
282
283 AC_SUBST(PLUGINS_LIST)
284
285
286 # Checks for header files.
287 AC_PATH_X
288 AC_HEADER_STDC
289 AC_HEADER_SYS_WAIT
290 AC_CHECK_HEADERS([locale.h stdlib.h string.h sys/time.h unistd.h])
291
292 # Checks for typedefs, structures, and compiler characteristics.
293 AC_C_CONST
294 AC_C_INLINE
295 AC_STRUCT_TM
296
297 # Checks for library functions.
298 AC_FUNC_MALLOC
299 AC_FUNC_MEMCMP
300 AC_TYPE_SIGNAL
301 AC_FUNC_STAT
302 AC_FUNC_STRFTIME
303 AC_CHECK_FUNCS([bzero memset mkdir setlocale strchr])
304
305
306 GETTEXT_PACKAGE=lxpanel
307 #AM_GNU_GETTEXT([external])
308 AM_GNU_GETTEXT_VERSION(0.14.1)
309 AC_SUBST(GETTEXT_PACKAGE)
310 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
311
312 ALL_LINGUAS="af ar cs da de es et eu fa fi fr gl hu hr id it ja ko lt ml ms nb nl nn pl ps pt pt_BR ru sk sl sv tr uk ur ur_PK vi zh_CN zh_TW"
313 AM_GLIB_GNU_GETTEXT
314
315 AC_CONFIG_FILES([
316     lxpanel.pc
317     Makefile
318     src/Makefile
319     src/plugins/Makefile
320     src/plugins/netstatus/Makefile
321     src/plugins/netstat/Makefile
322     src/plugins/volume/Makefile
323     src/plugins/volumealsa/Makefile
324     src/plugins/cpu/Makefile
325     src/plugins/deskno/Makefile
326     src/plugins/batt/Makefile
327     src/plugins/kbled/Makefile
328     src/plugins/xkb/Makefile
329     src/plugins/thermal/Makefile
330     po/Makefile.in
331     data/Makefile
332     data/default/panels/panel
333     man/Makefile
334 ])
335 AC_OUTPUT
336
337 echo
338 echo lxpanel ......................... : Version $VERSION
339 echo
340 echo Prefix........................... : $prefix
341 if test x$plugins_loading = xyes; then
342 echo Building dynamic plugins:
343     if test x"$plugin_netstatus" != x; then
344         AC_MSG_RESULT([    netstatus - Monitor networking status])
345     fi
346     if test x"$plugin_netstat" != x; then
347         AC_MSG_RESULT([    netstat - Monitor networking status (Linux Only)])
348     fi
349     if test x"$plugin_volume" != x; then
350         AC_MSG_RESULT([    volume - Display and adjust volume of sound card])
351     fi
352     if test x"$plugin_volumealsa" != x; then
353         AC_MSG_RESULT([    volumealsa - Display and adjust volume of sound card for ALSA])
354     fi
355     if test x"$plugin_cpu" != x; then
356         AC_MSG_RESULT([    cpu - Display CPU loading])
357     fi
358     if test x"$plugin_deskno" != x; then
359         AC_MSG_RESULT([    deskno - Display desktop number])
360     fi
361     if test x"$plugin_batt" != x; then
362         AC_MSG_RESULT([    batt - Monitor battery status])
363     fi
364     if test x"$plugin_kbled" != x; then
365         AC_MSG_RESULT([    kbled - Indicator for CapsLock, NumLock, and ScrLock])
366     fi
367     if test x"$plugin_xkb" != x; then
368         AC_MSG_RESULT([    xkb - Keyboard layout switcher])
369     fi
370     if test x"$plugin_thermal" != x; then
371         AC_MSG_RESULT([    thermal - Temperature monitor])
372     fi
373 else
374 echo Dynamic loader for plugins....... : disabled.
375 fi
376
377 echo
378 echo 'LXPanel requires menu-cache and lxmenu-data packages since'
379 echo 'version 0.4.0. Please make sure they are correctly installed.'
380 echo 'Otherwise, you will not be able to use applications menu.'
381 echo
382