summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac169
1 files changed, 169 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..f057463
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,169 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([powertop], [2.15], [powertop@lists.01.org], [], [https://github.com/fenrus75/powertop])
+AM_INIT_AUTOMAKE([
+ -Wall
+ 1.12.2
+ foreign
+])
+AC_LANG([C++])
+AC_CONFIG_FILES([
+ Makefile
+ Doxyfile
+ src/Makefile
+ traceevent/Makefile
+ po/Makefile.in
+ doc/Makefile
+ scripts/bash-completion/Makefile
+])
+AC_CONFIG_SRCDIR([src/main.cpp])
+AC_CONFIG_MACRO_DIR([m4])
+AC_USE_SYSTEM_EXTENSIONS
+AC_CONFIG_HEADERS([config.h])
+GETTEXT_PACKAGE=powertop
+AC_SUBST([GETTEXT_PACKAGE])
+AM_SILENT_RULES([yes])
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.18.2])
+
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+AX_REQUIRE_DEFINED([AX_ADD_FORTIFY_SOURCE])
+AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX])
+AX_REQUIRE_DEFINED([AX_PTHREAD])
+# Checks for programs.
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+AC_PROG_CC
+AC_PROG_INSTALL
+AM_PROG_CC_C_O
+AX_ADD_FORTIFY_SOURCE
+AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
+PKG_PROG_PKG_CONFIG
+
+# Checks for libraries.
+AX_PTHREAD([
+ LIBS="$PTHREAD_LIBS $LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ CC="$PTHREAD_CC"
+ ], [
+ AC_MSG_ERROR([Could not configure pthreads support])
+])
+
+# Checks for header files.
+AC_CHECK_HEADERS([ \
+ fcntl.h \
+ libintl.h \
+ limits.h \
+ locale.h \
+ malloc.h \
+ ncurses.h \
+ stdint.h \
+ stdlib.h \
+ string.h \
+ sys/ioctl.h \
+ sys/socket.h \
+ sys/statfs.h \
+ sys/time.h \
+ termios.h \
+ unistd.h \
+])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_HEADER_STDBOOL
+AC_C_INLINE
+AC_TYPE_INT64_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_MMAP
+AC_FUNC_REALLOC
+AC_FUNC_STRERROR_R
+AC_FUNC_STRTOD
+AC_CHECK_FUNCS([ \
+ clock_gettime \
+ fdatasync \
+ getpagesize \
+ gettimeofday \
+ memmove \
+ memset \
+ mkdir \
+ munmap \
+ pow \
+ realpath \
+ regcomp \
+ select \
+ setlocale \
+ socket \
+ sqrt \
+ strcasecmp \
+ strchr \
+ strrchr \
+ strdup \
+ strerror \
+ strncasecmp \
+ strstr \
+ strtoul \
+ strtoull \
+])
+
+AC_SEARCH_LIBS([clock_gettime], [rt])
+
+PKG_CHECK_MODULES([NCURSES], [ncursesw ncurses], [LIBS="$LIBS $ncurses_LIBS"], [
+ AC_SEARCH_LIBS([delwin], [ncursesw ncurses], [], [
+ AC_MSG_ERROR([ncurses is required but was not found])
+ ], [])
+])
+
+has_libpci=0
+PKG_CHECK_MODULES([PCIUTILS], [libpci],[has_libpci=1], [
+ AC_SEARCH_LIBS([pci_get_dev], [pci],[has_libpci=1], [has_libpci=0])
+])
+
+
+has_libnl_ver=0
+dnl libnl-2 provides only libnl-2.0.pc file, so we check for separate
+dnl libnl-genl-3.0.pc pkg-config file just for libnl-3.0 case.
+PKG_CHECK_MODULES([LIBNL], [libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0], [has_libnl_ver=3], [
+ PKG_CHECK_MODULES([LIBNL], [libnl-2.0 >= 2.0], [has_libnl_ver=2], [
+ PKG_CHECK_MODULES([LIBNL], [libnl-1], [has_libnl_ver=1], [has_libnl_ver=0])
+ ])
+])
+AS_IF([test "$has_libnl_ver" -eq 0], [
+ AC_MSG_ERROR([libnl and libnl-genl are required but were not found])
+])
+AS_IF([test "$has_libnl_ver" -gt 1], [
+ AC_DEFINE([HAVE_LIBNL20], [1], [Define if you have libnl-2.0 or higher])
+])
+
+AS_IF([test "$has_libpci" -eq 0], [
+ AC_DEFINE([HAVE_NO_PCI], [1], [Define if pci is not supported])
+ AC_MSG_WARN([
+ ************* LIBPCI SUPPORT NOT CONFIGURED**************
+ If you need or want pci support, please install libpci
+ and re-configure PowerTOP.
+ *********************************************************
+ ])
+])
+
+AC_SEARCH_LIBS([inet_aton], [resolv], [], [
+ AC_MSG_ERROR([libresolv is required but was not found])
+], [])
+
+
+AS_IF([`${PKG_CONFIG} --exists bash-completion`], [
+ bashcompletiondir=`${PKG_CONFIG} --variable=completionsdir --define-variable=prefix=${prefix} bash-completion`
+], [
+ bashcompletiondir=${datadir}/bash-completion/completions
+])
+AC_SUBST([bashcompletiondir], [$bashcompletiondir])
+
+AC_OUTPUT