From: Joan Lledó <[email protected]>
It tests for dependencies and defines the proper variables for config.h
---
configure | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/configure b/configure
index 07d68349..668db8b6 100755
--- a/configure
+++ b/configure
@@ -508,6 +508,11 @@ solaris*|sunos*)
echo "DHCPCD_SRCS+= if-sun.c" >>$CONFIG_MK
echo "LDADD+= -ldlpi -lkstat" >>$CONFIG_MK
;;
+hurd*)
+ echo "CSTD=gnu99" >>$CONFIG_MK
+ echo "CPPFLAGS+= -D_GNU_SOURCE" >>$CONFIG_MK
+ echo "DHCPCD_SRCS+= if-pcap.c if-hurd.c" >>$CONFIG_MK
+;;
*)
echo "DHCPCD_SRCS+= if-bsd.c" >>$CONFIG_MK
;;
@@ -606,6 +611,7 @@ if [ "$PRIVSEP" = yes ]; then
fi
;;
solaris*|sunos*) echo "PRIVSEP_SRCS+= privsep-sun.c" >>$CONFIG_MK;;
+ hurd*) ;;
*) echo "PRIVSEP_SRCS+= privsep-bsd.c" >>$CONFIG_MK;;
esac
else
@@ -1850,6 +1856,70 @@ EOF
$abort && exit 1
fi
+# Check for Hurd dependencies if OS is hurd
+abort=false
+if [ "$OS" = "hurd" ]; then
+ # Check for libpcap
+ printf "Testing for libpcap ... "
+ if $PKG_CONFIG --exists libpcap 2>/dev/null; then
+ PCAP_CFLAGS=$($PKG_CONFIG --cflags libpcap 2>/dev/null)
+ PCAP_LIBS=$($PKG_CONFIG --libs libpcap 2>/dev/null)
+ echo "yes"
+ echo "CFLAGS+= $PCAP_CFLAGS" >>$CONFIG_MK
+ echo "LDADD+= $PCAP_LIBS" >>$CONFIG_MK
+ else
+ # Check with -lpcap if pkg-config fails
+ cat >_pcap.c <<EOF
+#include <pcap/pcap.h>
+int main(void) { return pcap_lib_version() != NULL; }
+EOF
+ if $XCC _pcap.c -o _pcap -lpcap 2>&3; then
+ echo "yes"
+ echo "LDADD+= -lpcap" >>$CONFIG_MK
+ else
+ echo "no"
+ echo "libpcap is required for Hurd support" >&2
+ abort=true
+ fi
+ rm -f _pcap.c _pcap
+ $abort && exit 1
+ fi
+
+ # Check for lwIP headers using pkg-config first
+ printf "Testing for lwIP headers ... "
+ if $PKG_CONFIG --exists lwip 2>/dev/null; then
+ LWIP_CFLAGS=$($PKG_CONFIG --cflags lwip 2>/dev/null)
+ echo "yes"
+ echo "CFLAGS+= $LWIP_CFLAGS" >>$CONFIG_MK
+ echo "#include <lwip/arch/cc.h>">>$CONFIG_H
+ echo "#include <lwip/lwipopts.h>">>$CONFIG_H
+ echo "#include <lwip/posix/inet.h>">>$CONFIG_H
+ echo "#define PATH_MAX 4096" >>$CONFIG_H
+ else
+ # Check directly for lwIP headers
+ cat >_lwip.c <<EOF
+#include <lwip/arch/cc.h>
+#include <lwip/lwipopts.h>
+#include <lwip/posix/inet.h>
+int main(void) { return 0; }
+EOF
+ if $XCC $CFLAGS -I/usr/include/lwip _lwip.c -o _lwip 2>&3; then
+ echo "yes"
+ echo "CFLAGS+= -I/usr/include/lwip" >>$CONFIG_MK
+ echo "#include <lwip/arch/cc.h>">>$CONFIG_H
+ echo "#include <lwip/lwipopts.h>">>$CONFIG_H
+ echo "#include <lwip/posix/inet.h>">>$CONFIG_H
+ echo "#define PATH_MAX 4096" >>$CONFIG_H
+ else
+ echo "no"
+ echo "lwIP headers are required for Hurd support" >&2
+ abort=true
+ fi
+ rm -f _lwip.c _lwip
+ $abort && exit 1
+ fi
+fi
+
# Transform for a make file
SERVICEEXISTS=$(echo "$SERVICEEXISTS" | $SED \
-e 's:\\:\\\\:g' \
--
2.50.1