configure.ac

Sat, 27 Jun 2020 19:28:10 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 27 Jun 2020 19:28:10 +0200
changeset 607
021338fc4e4f
parent 606
798dd0c4fd00
child 609
ee433a47fc13
permissions
-rw-r--r--

Better logging for locking the daemon and fixed stale lock recovery.

dnl Process this file with autoconf to produce a configure script.

AC_INIT(thermferm/thermferm.c)
AM_CONFIG_HEADER(config.h)
SUBDIRS="thermferm brewpanel tools"
AC_SUBST(SUBDIRS)

dnl General settings
dnl After changeing the version number, run autoconf!
PACKAGE="mbsePi-apps"
VERSION="0.9.9"
COPYRIGHT="Copyright (C) 2014-2020 Michiel Broek, All Rights Reserved"
CYEARS="2014-2020"
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(COPYRIGHT)
AC_SUBST(CYEARS)
AC_PREFIX_DEFAULT(/usr/local)
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_DEFINE_UNQUOTED(COPYRIGHT, "$COPYRIGHT")
TARGET="$target"


dnl Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
dnl Try to find GNU install
AC_CHECK_PROG(INSTALL, ginstall, ginstall)
AC_CHECK_PROG(INSTALL, install, install)
AC_CHECK_PROG(TAR, tar, tar)

#
# Libraries for mbsePi-apps
#
AC_CHECK_LIB(mosquitto,mosquitto_lib_init,result=yes,result=no)
if test "$result" = "yes"; then
  AC_CHECK_HEADERS(mosquitto.h)
  LIBS="$LIBS -lmosquitto"
else
  AC_MSG_ERROR(mosquitto not found)
fi

WIRINGPI=No
AC_CHECK_LIB(wiringPi,wiringPiSetup,result=yes,result=no)
if test "$result" = "yes"; then
  LIBS="$LIBS -lwiringPi -lwiringPiDev"
  AC_CHECK_HEADERS(wiringPi.h,WIRINGPI=Yes,WIRINGPI=No)
fi

AC_CHECK_LIB(json-c,json_object_iter_init_default,result=yes,result=no)
if test "$result" = "yes"; then
  LIBS="$LIBS -ljson-c"
  AC_CHECK_HEADERS(json-c/json.h)
else
  AC_MSG_ERROR(json-c not found)
fi

#
# Additional commandline switches
#
AC_ARG_ENABLE(experiment,  [  --enable-experiment     Compile experimental code],     [ experiment=$enableval ], [ experiment=no ])
if test "$experiment" = "yes"; then
  AC_DEFINE(USE_EXPERIMENT)
fi

SIMULATOR=No
AC_ARG_ENABLE(simulator,  [  --enable-simulator      Compile simulator code], [ simulator=$enableval ], [ simulator=no ])
if test "$simulator" = "yes"; then
  AC_DEFINE(USE_SIMULATOR)
  SIMULATOR=Yes
fi

AC_ARG_ENABLE(debugging,   [  --enable-debugging      Compile for debugging], [ debugging=$enableval ], [ debugging=no ])
if test "$debugging" = "yes"; then
  CFLAGS="-O -g -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -Winline"    
else
  CFLAGS="-g -O2 -fomit-frame-pointer -fno-strict-aliasing -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -Winline"
fi
LIBS="$LIBS -lm"


AC_CHECK_LIB(xml2,xmlParseFile,result=yes,result=no)
if test "$result" = "yes"; then
  LIBS="$LIBS -lxml2"
  CFLAGS="$CFLAGS $(xml2-config --cflags)"
  AC_CHECK_HEADERS(libxml/xmlmemory.h)
else
  AC_MSG_ERROR(libxml2 not found)
fi

AC_CHECK_LIB(uuid,uuid_generate,result=yes,result=no)
if test "$result" = "yes"; then
  LIBS="$LIBS $(pkg-config --libs uuid)"
  CFLAGS="$CFLAGS $(pkg-config --cflags uuid)"
  AC_CHECK_HEADERS(uuid/uuid.h)
else
  AC_MSG_ERROR(libuuid not found)
fi

# Check for SDL
SDL_CFLAGS=""
SDL_LIBS=""
SDL="No"
AC_MSG_CHECKING(SDL library)
pkg-config --exists sdl
if test "$?" = "0"; then
  AC_MSG_RESULT(yes)
  AC_MSG_CHECKING(sdl library v1.2.0 or newer)
  pkg-config --atleast-version=1.2.0 sdl
  if test "$?" = "0"; then
    AC_MSG_RESULT(found)
  else
    AC_MSG_ERROR(not found)
  fi
  SDL_CFLAGS="$(pkg-config --cflags sdl)"
  SDL_LIBS="$(pkg-config --libs sdl)"
  AC_CHECK_HEADERS(SDL/SDL.h)
  SDL="Yes"
else
  AC_MSG_RESULT(no)
fi

# Check for SDL_ttf
AC_MSG_CHECKING(SDL_ttf library)
pkg-config --exists SDL_ttf
if test "$?" = "0"; then
  AC_MSG_RESULT(yes)
  AC_MSG_CHECKING(sdl library v2.0.0 or newer)
  pkg-config --atleast-version=2.0.0 SDL_ttf
  if test "$?" = "0"; then
    AC_MSG_RESULT(found)
  else
    AC_MSG_ERROR(not found)
  fi
  # Override flags
  SDL_CFLAGS="$(pkg-config --cflags SDL_ttf)"
  SDL_LIBS="$(pkg-config --libs SDL_ttf)"
else
  AC_MSG_RESULT(no)
fi

dnl Checks for header files.
AC_HEADER_STDC

AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)


AC_OUTPUT(
    Makefile.global
)

AC_MSG_RESULT([
-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=-

  Configuration summary :

    Version : ............ ${VERSION}
    Main directory : ..... ${prefix}
    WiringPi : ........... ${WIRINGPI}
    SDL library : ........ ${SDL}
    Simulator : .......... ${SIMULATOR}

  Now type 'make' and 'sudo make install'
])

mercurial