Skip to content

Commit

Permalink
configure: Try to detect LZO with pkg-config
Browse files Browse the repository at this point in the history
On most systems this should work just fine.

v2:
 - simplify code by removing -llzo special handling
v3:
 - reintroduce support for autodetection without pkg-config,
   no need to break backwards compatibility right now
v7:
 - Handle case correctly where lzo/lzo1x.h can not be included
   at all. On most distros this works even though the .pc
   file suggests to use it without. We had some partly
   solution for that but it wasn't really working.
v8:
 - Handle systems that do not implicitly include limits.h
   in configure test builds.
   lzodefs.h usually relies on lzoconf.h to include it.

Change-Id: I1c038dc4ec80d3499582d81eee61fee74f26e693
Signed-off-by: Frank Lichtenheld <[email protected]>
Acked-by: Gert Doering <[email protected]>
Message-Id: <[email protected]>
URL: https://www.mail-archive.com/[email protected]/msg28848.html
Signed-off-by: Gert Doering <[email protected]>
  • Loading branch information
flichtenheld authored and cron2 committed Jun 26, 2024
1 parent 3cfd6f9 commit 0ea5126
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
3 changes: 0 additions & 3 deletions config.h.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -178,9 +178,6 @@ don't. */
/* Define to 1 if you have the <linux/types.h> header file. */
#cmakedefine HAVE_LINUX_TYPES_H

/* Define to 1 if you have the <lzoconf.h> header file. */
#define HAVE_LZO_CONF_H

/* Define to 1 if you have the <lzo1x.h> header file. */
#define HAVE_LZO1X_H 1

Expand Down
24 changes: 20 additions & 4 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1143,8 +1143,17 @@ fi

AC_ARG_VAR([LZO_CFLAGS], [C compiler flags for lzo])
AC_ARG_VAR([LZO_LIBS], [linker flags for lzo])
have_lzo="yes"
if test -z "${LZO_LIBS}"; then
if test -z "${LZO_CFLAGS}" -a -z "${LZO_LIBS}"; then
# if the user did not explicitly specify flags, try to autodetect
PKG_CHECK_MODULES([LZO],
[lzo2],
[have_lzo="yes"],
[]
)

if test "${have_lzo}" != "yes"; then
# try to detect without pkg-config
have_lzo="yes"
AC_CHECK_LIB(
[lzo2],
[lzo1x_1_15_compress],
Expand All @@ -1156,6 +1165,10 @@ if test -z "${LZO_LIBS}"; then
[have_lzo="no"]
)]
)
fi
else
# assume the user configured it correctly
have_lzo="yes"
fi
if test "${have_lzo}" = "yes"; then
saved_CFLAGS="${CFLAGS}"
Expand All @@ -1166,8 +1179,11 @@ if test "${have_lzo}" = "yes"; then
[AC_CHECK_HEADERS(
[lzo1x.h],
,
[AC_MSG_ERROR([lzo1x.h is missing])]
)]
[AC_MSG_ERROR([lzo1x.h is missing])],
[#include <limits.h>
#include <lzodefs.h>
#include <lzoconf.h>]
)],
)
CFLAGS="${saved_CFLAGS}"
fi
Expand Down
8 changes: 3 additions & 5 deletions src/openvpn/lzo.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,15 @@
* @addtogroup compression
* @{
*/
#if defined(HAVE_LZO_CONF_H)
#if defined(HAVE_LZO_LZO1X_H)
#include <lzo/lzo1x.h>
#elif defined(HAVE_LZO1X_H)
/* The lzo.h magic gets confused and still wants
* to include lzo/lzoconf.h even if our include paths
* are setup to include the paths without lzo/
*/
#include <lzodefs.h>
#include <lzoconf.h>
#endif
#if defined(HAVE_LZO_LZO1X_H)
#include <lzo/lzo1x.h>
#elif defined(HAVE_LZO1X_H)
#include <lzo1x.h>
#endif

Expand Down

0 comments on commit 0ea5126

Please sign in to comment.