fix verbose output with dash as /bin/sh
[openwrt-10.03/.git] / include / host.mk
index 3a5fd9683e3592f4750a80964a321075e388cde7..8b2e56ce510bf7c5d9325c755d82a5b6196c9bfc 100644 (file)
@@ -5,11 +5,15 @@
 # See /LICENSE for more information.
 #
 
-include $(TOPDIR)/.host.mk
+-include $(TMP_DIR)/.host.mk
 
 export TAR
+TMP_DIR ?= $(TOPDIR)/tmp
 
-$(TOPDIR)/.host.mk: $(INCLUDE_DIR)/host.mk
+ifneq ($(__host_inc),1)
+__host_inc:=1
+$(TMP_DIR)/.host.mk: $(TOPDIR)/include/host.mk
+       @mkdir -p $(TMP_DIR)
        @( \
                HOST_OS=`uname`; \
                case "$$HOST_OS" in \
@@ -22,10 +26,21 @@ $(TOPDIR)/.host.mk: $(INCLUDE_DIR)/host.mk
                echo "HOST_OS:=$$HOST_OS" > $@; \
                echo "HOST_ARCH:=$$HOST_ARCH" >> $@; \
                echo "GNU_HOST_NAME:=$$GNU_HOST_NAME" >> $@; \
-               if tar --version 2>&1 | grep 'GNU' >/dev/null; then \
-                       echo "TAR_WILDCARDS:=--wildcards" >> $@; \
-               fi; \
-               TAR=`which gtar tar | head -n 1`; \
+               TAR=`which gtar 2>/dev/null`; \
+               [ -n "$$TAR" -a -x "$$TAR" ] || TAR=`which tar 2>/dev/null`; \
                echo "TAR:=$$TAR" >> $@; \
+               echo "BASH:=$(shell which bash)" >> $@; \
+               if find -L /tmp -maxdepth 0 >/dev/null 2>/dev/null; then \
+                       echo 'FIND_L=find -L $$(1)' >>$@; \
+               else \
+                       echo 'FIND_L=find $$(1) -follow' >> $@; \
+               fi; \
        )
 
+endif
+
+ifeq ($(HOST_OS),Linux)
+  XARGS:=xargs -r
+else
+  XARGS:=xargs
+endif