# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
-AC_PREREQ([2.64])
-AC_INIT([psensor], [0.7.0.0],[jeanfi@gmail.com],[psensor],[http://wpitchoune.net/psensor])
+AC_PREREQ([2.69])
+AC_INIT([psensor], [0.8.0.6],[jeanfi@gmail.com],[psensor],[http://wpitchoune.net/psensor])
AM_INIT_AUTOMAKE([-Wall -Werror gnu])
-AC_CONFIG_SRCDIR([src/compat.h])
+AC_CONFIG_SRCDIR([src/ui.c])
AC_CONFIG_HEADERS([config.h])
+# m4
+AC_CONFIG_MACRO_DIR([m4])
+
# Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
+AC_SYS_LARGEFILE
+
# Checks lib build
AC_PROG_RANLIB
+AM_PROG_AR
# Checks for header files.
AC_PATH_X
-AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h getopt.h])
+AC_CHECK_HEADERS([stdbool.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_SIZE_T
AM_GNU_GETTEXT_VERSION([0.16])
AM_GNU_GETTEXT([external])
+# Gconf
+AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
+AM_GCONF_SOURCE_2
+
############### common
+# Checks pthread
+AC_CHECK_LIB(pthread, pthread_create)
+PTHREAD_LIBS=-pthread
+AC_SUBST(PTHREAD_LIBS)
+
# Checks sensors, required by psensor and psensor-server
AC_CHECK_LIB(sensors, sensors_init)
AC_CHECK_HEADERS([sensors/sensors.h sensors/errors.h])
### Required
-PKG_CHECK_MODULES(X11, x11)
+PKG_CHECK_MODULES(X11, x11,,[AC_MSG_WARN("x11 missing psensor will not be built")])
+AM_CONDITIONAL(X11, test -n "$X11_LIBS")
AC_SUBST(X11_CFLAGS)
AC_SUBST(X11_LIBS)
-PKG_CHECK_MODULES(XEXT, xext)
+PKG_CHECK_MODULES(XEXT, xext,,[AC_MSG_WARN("xext missing psensor will not be built")])
+AM_CONDITIONAL(XEXT, test -n "$XEXT_LIBS")
AC_SUBST(XEXT_CFLAGS)
AC_SUBST(XEXT_LIBS)
-# Checks GTK
-GTK_LIBS=
-PKG_CHECK_MODULES(GTK,
- gtk+-3.0,
- [AC_DEFINE([HAVE_GTK3],[1],[Use GTK3])],
- [AC_MSG_WARN("GTK+ 3 not present")])
+# Checks GTK+ 3.0
+PKG_CHECK_MODULES(GTK, gtk+-3.0,,[AC_MSG_WARN("gtk missing psensor will not be built")])
AM_CONDITIONAL(GTK, test -n "$GTK_LIBS")
-GTK_CFLAGS+=-DGTK_DISABLE_SINGLE_INCLUDES
+# ensure that only allowed headers are included
+GTK_CFLAGS+=" -DGTK_DISABLE_SINGLE_INCLUDES "
+# ensure that no gtk deprecated symbols are used
+GTK_CFLAGS+=" -DGDK_DISABLE_DEPRECATED "
+GTK_CFLAGS+=" -DGTK_DISABLE_DEPRECATED "
+# ensure use of accessors
+GTK_CFLAGS+=" -DGSEAL_ENABLE "
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
-if test "$GTK_LIBS" == ""; then
- PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.18)
- AM_CONDITIONAL(GTK, test -n "$GTK_LIBS")
- AC_SUBST(GTK_CFLAGS)
- AC_SUBST(GTK_LIBS)
-fi
-
# Check GCONF
-PKG_CHECK_MODULES(GCONF, gconf-2.0)
+PKG_CHECK_MODULES(GCONF, gconf-2.0,
+ [AC_DEFINE([HAVE_GCONF2],[1],[Use gconf2])],
+ [AC_MSG_WARN("gconf2 missing psensor will not be built")])
+AM_CONDITIONAL(GCONF, test -n "$GCONF_LIBS")
AC_SUBST(GCONF_CFLAGS)
AC_SUBST(GCONF_LIBS)
# Check JSON, needed for remote monitoring
JSON_LIBS=
PKG_CHECK_MODULES(JSON,
- json,
- [AC_DEFINE([HAVE_JSON],[1],[Use JSON])],
- [AC_MSG_WARN("Remote monitoring disabled, json missing")])
+ json-c,
+ [AC_DEFINE([HAVE_JSON],[1],[Use JSON])],
+ [AC_MSG_WARN("json-c missing")])
+
+if test "$JSON_LIBS" == ""; then
+PKG_CHECK_MODULES(JSON,
+ json,
+ [AC_DEFINE([HAVE_JSON],[1],[Use JSON])
+ AC_DEFINE([HAVE_JSON_0],[1],[Use JSON0])],
+ [AC_MSG_WARN("json0 missing")])
+fi
+
AM_CONDITIONAL(JSON, test -n "$JSON_LIBS")
AC_SUBST(JSON_CFLAGS)
AC_SUBST(JSON_LIBS)
AC_CONFIG_FILES([
Makefile
+ doc/Makefile
src/Makefile
src/glade/Makefile
src/lib/Makefile
AC_CHECK_PROGS([HELP2MAN], [help2man])
+AC_CHECK_PROG(HAVE_CPPCHECK, cppcheck, yes)
+AM_CONDITIONAL(CPPCHECK, test -n "$HAVE_CPPCHECK")
+
AC_OUTPUT