From 4bf33cc707cdcdd08ee4bd01878754ea238187b4 Mon Sep 17 00:00:00 2001 From: Romain Tartiere Date: Tue, 22 Dec 2009 20:48:13 +0000 Subject: [PATCH] Fix autotools on FreeBSD. Endianness fun is not provided by the same header file on GNU/Linux (endian.h) and FreeBSD (sys/endian.h). Add some magic for the autotools to detect the correct header file. While here, add AC_C_INLINE: it's reported as missing by autoscan(1). --- configure.ac | 9 +++++++++ mad.c | 1 + mifare_application.c | 2 ++ mifare_classic.c | 12 ++++++++++-- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index adca18e..cd8ef5c 100644 --- a/configure.ac +++ b/configure.ac @@ -7,11 +7,14 @@ AC_PROG_CXX AC_PROG_LIBTOOL +AC_CONFIG_HEADERS([config.h]) + AM_INIT_AUTOMAKE m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) # Checks for typedefs, structures, and compiler characteristics. +AC_C_INLINE AC_HEADER_STDBOOL AC_TYPE_INT16_T AC_TYPE_INT32_T @@ -25,6 +28,11 @@ AC_FUNC_MALLOC AC_FUNC_REALLOC AC_CHECK_FUNCS([memset]) +AC_CHECK_HEADERS([endian.h sys/endian.h]) +if test $ac_cv_header_endian_h = "no" -a $ac_cv_header_sys_endian_h = "no"; then + AC_MSG_ERROR([Can't locate header endian.h.]); +fi + # Checks for pkg-config modules. PKG_CHECK_MODULES([LIBNFC], [libnfc], [], [AC_MSG_ERROR([libnfc is mandatory.])]) @@ -32,3 +40,4 @@ PKG_CONFIG_REQUIRES="libnfc" AC_SUBST([PKG_CONFIG_REQUIRES]) AC_OUTPUT([Makefile libfreefare.pc]) + diff --git a/mad.c b/mad.c index d51584e..fa9ae14 100644 --- a/mad.c +++ b/mad.c @@ -25,6 +25,7 @@ * MIFARE Application Directory (MAD) * Rev. 04 - 5 March 2009 */ +#include "config.h" #include #include diff --git a/mifare_application.c b/mifare_application.c index f3dccda..4934c21 100644 --- a/mifare_application.c +++ b/mifare_application.c @@ -23,6 +23,8 @@ * * /dev/brain */ +#include "config.h" + #include #include diff --git a/mifare_classic.c b/mifare_classic.c index 2f2d6bc..27c84bd 100644 --- a/mifare_classic.c +++ b/mifare_classic.c @@ -29,8 +29,16 @@ * October 6, 2008 */ -#define _BSD_SOURCE -#include +#include "config.h" + +#if defined(HAVE_SYS_ENDIAN_H) +# include +#endif + +#if defined(HAVE_ENDIAN_H) +# define _BSD_SOURCE +# include +#endif #include #include #include