]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
make HAVE_FORK=yes|no should be used if cross compiling.
authorRoy Marples <roy@marples.name>
Wed, 7 Nov 2007 17:06:05 +0000 (17:06 +0000)
committerRoy Marples <roy@marples.name>
Wed, 7 Nov 2007 17:06:05 +0000 (17:06 +0000)
ChangeLog
Makefile
README

index c1ed1cfb0e2abc17c3b268c95c11645d3930b6dc..0d5109d003618081bb02a5004d970ecc9c8b6290 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+make HAVE_FORK=yes|no should be used if cross compiling.
 Implement an exponential NAK backoff.
 Clear the signal_pipe fd from the fdset when all signals have
 been read.
index 35c0f576d57c55af3c4c675d76c9fdbf44e92ade..1003a48c8f52edda183db1e3c960f57f7e27a683 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -45,16 +45,22 @@ _LIBRT != $(_LIBRT_SH)
 LIBRT = $(_LIBRT)$(shell $(_LIBRT_SH))
 
 # Work out if our fork() works or not
-_HAVE_FORK_SH = printf '\#include <stdlib.h>\n\#include <unistd.h>\nint main (void) { pid_t pid = fork(); if (pid == -1) exit (-1); exit (0); }\n' > .fork.c; \
-       $(CC) .fork.c -o .fork >/dev/null 2>&1; \
-       if ./.fork; then \
+_HAVE_FORK_SH = if [ "$(HAVE_FORK)" = "yes" ]; then \
                echo ""; \
-       else \
+       elif [ -n "$(HAVE_FORK)" ]; then \
                echo "-DTHERE_IS_NO_FORK"; \
-       fi; \
-       rm -f .fork.c .fork
+       else \
+               printf '\#include <stdlib.h>\n\#include <unistd.h>\nint main (void) { pid_t pid = fork(); if (pid == -1) exit (-1); exit (0); }\n' > .fork.c; \
+               $(CC) .fork.c -o .fork >/dev/null 2>&1; \
+               if ./.fork; then \
+                       echo ""; \
+               else \
+                       echo "-DTHERE_IS_NO_FORK"; \
+               fi; \
+               rm -f .fork.c .fork; \
+       fi;
 _HAVE_FORK != $(_HAVE_FORK_SH)
-HAVE_FORK = $(_HAVE_FORK)$(shell $(_HAVE_FORK_SH))
+FORK = $(_HAVE_FORK)$(shell $(_HAVE_FORK_SH))
 
 # pmake check for extra cflags 
 WEXTRA != for x in -Wdeclaration-after-statement -Wsequence-point -Wextra; do \
@@ -89,7 +95,7 @@ dhcpcd_OBJS = arp.o client.o common.o configure.o dhcp.o dhcpcd.o duid.o \
                          info.o interface.o ipv4ll.o logger.o signals.o socket.o
 
 $(dhcpcd_OBJS): 
-       $(CC) $(HAVE_FORK) $(CFLAGS) -c $*.c
+       $(CC) $(FORK) $(CFLAGS) -c $*.c
 
 dhcpcd: $(dhcpcd_H) .depend $(dhcpcd_OBJS)
        $(CC) $(LDFLAGS) $(dhcpcd_OBJS) $(LIBRESOLV) $(LIBRT) -o dhcpcd
diff --git a/README b/README
index 89a271826ec2f70c1da12f4c61b236ad34589d3e..f5a60849ca08674ba21171bf38f818debde83e6e 100644 (file)
--- a/README
+++ b/README
@@ -18,3 +18,9 @@ volatile, like say a LiveCD.
 Then just make; make install
 
 man dhcpcd for command line options
+
+
+Notes
+-----
+If you're cross compiling you may need to send HAVE_FORK=yes or HAVE_FORK=no
+to the make command to avoid to automatic test.