From: Uwe Hermann Date: Thu, 14 Nov 2013 21:09:14 +0000 (+0100) Subject: pkg-config file: Use Requires.private to fix static build. X-Git-Tag: libserialport-0.1.0~128 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=e4bffe06c2fc62c9bbc681c4faf83d3a7ac7b880;p=libserialport.git pkg-config file: Use Requires.private to fix static build. Any libs needed when building static binaries must be listed in the 'Requires.private' field of the installed pkg-config file libserialport.pc. Currently, this is libudev (but only when building on/for Linux). --- diff --git a/configure.ac b/configure.ac index 488e283..3c7af88 100644 --- a/configure.ac +++ b/configure.ac @@ -76,16 +76,19 @@ AC_SUBST(SP_LIB_VERSION_AGE) AC_SUBST(SP_LIB_VERSION) AC_SUBST(SP_LIB_LDFLAGS) -# Checks for header files. -# These are already checked: inttypes.h dlfcn.h memory.h stdint.h stdlib.h -# string.h strings.h sys/types.h sys/stat.h unistd.h -AC_CHECK_HEADERS([errno.h fcntl.h stddef.h sys/ioctl.h termios.h]) +# Checks for libraries. + +# This variable collects the pkg-config names of all detected libs. +# It is then used to construct the "Requires.private:" field in the +# libserialport.pc file. +SP_PKGLIBS="" case $target_os in *linux*) # On Linux libudev is currently a hard requirement. PKG_CHECK_MODULES([libudev], [libudev >= 0], - [CFLAGS="$CFLAGS $libudev_CFLAGS"; LIBS="$LIBS $libudev_LIBS"]) + [CFLAGS="$CFLAGS $libudev_CFLAGS"; LIBS="$LIBS $libudev_LIBS"; + SP_PKGLIBS="$SP_PKGLIBS libudev"]) ;; *darwin*) LDFLAGS="$LDFLAGS -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation" @@ -93,6 +96,13 @@ case $target_os in ;; esac +AC_SUBST(SP_PKGLIBS) + +# Checks for header files. +# These are already checked: inttypes.h dlfcn.h memory.h stdint.h stdlib.h +# string.h strings.h sys/types.h sys/stat.h unistd.h +AC_CHECK_HEADERS([errno.h fcntl.h stddef.h sys/ioctl.h termios.h]) + # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_SIZE_T diff --git a/libserialport.pc.in b/libserialport.pc.in index 2fcb53e..b6ecdef 100644 --- a/libserialport.pc.in +++ b/libserialport.pc.in @@ -6,6 +6,7 @@ includedir=@includedir@ Name: libserialport Description: Cross-platform serial port access library. URL: http://github.com/martinling/libserialport +Requires.private: @SP_PKGLIBS@ Version: @VERSION@ Libs: -L${libdir} -lserialport Cflags: -I${includedir}