@ -1,5 +1,5 @@
#
#
# Copyright (C) 2006-2007 OpenWrt.org
# Copyright (C) 2006-2015 OpenWrt.org
#
#
# This is free software, licensed under the GNU General Public License v2.
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
# See /LICENSE for more information.
@ -20,12 +20,16 @@ prereq:
.SILENT : prereq
.SILENT : prereq
e n d i f
e n d i f
PREREQ_PREV =
# 1: display name
# 2: error message
d e f i n e R e q u i r e
d e f i n e R e q u i r e
export PREREQ_CHECK = 1
export PREREQ_CHECK = 1
ifeq ( $$ ( CHECK_$( 1) ) ,)
ifeq ( $$ ( CHECK_$( 1) ) ,)
prereq: prereq-$( 1)
prereq: prereq-$( 1)
prereq-$( 1) : FORCE
prereq-$( 1) : $( if $( PREREQ_PREV) ,prereq-$( PREREQ_PREV) ) FORCE
echo -n " Checking ' $( 1) '... "
echo -n " Checking ' $( 1) '... "
if $( NO_TRACE_MAKE) -f $( firstword $( MAKEFILE_LIST) ) check-$( 1) >/dev/null 2>/dev/null; then \
if $( NO_TRACE_MAKE) -f $( firstword $( MAKEFILE_LIST) ) check-$( 1) >/dev/null 2>/dev/null; then \
echo 'ok.' ; \
echo 'ok.' ; \
@ -41,6 +45,8 @@ define Require
.SILENT: prereq-$( 1) check-$( 1)
.SILENT: prereq-$( 1) check-$( 1)
.NOTPARALLEL:
.NOTPARALLEL:
endif
endif
PREREQ_PREV = $( 1)
e n d e f
e n d e f
@ -60,3 +66,41 @@ define RequireHeader
$$ ( eval $$ ( call Require,$( 1) ,$( 2) ) )
$$ ( eval $$ ( call Require,$( 1) ,$( 2) ) )
e n d e f
e n d e f
d e f i n e Q u o t e H o s t C o m m a n d
'$(subst ' , '"' " ',$(strip $(1)))'
e n d e f
# 1: display name
# 2: failure message
# 3: test
d e f i n e T e s t H o s t C o m m a n d
define Require/$( 1)
( $( 3) ) >/dev/null 2>/dev/null
endef
$$ ( eval $$ ( call Require,$( 1) ,$( 2) ) )
e n d e f
# 1: canonical name
# 2: failure message
# 3+: candidates
d e f i n e S e t u p H o s t C o m m a n d
define Require/$( 1)
for cmd in $( call QuoteHostCommand,$( 3) ) $( call QuoteHostCommand,$( 4) ) \
$( call QuoteHostCommand,$( 5) ) $( call QuoteHostCommand,$( 6) ) \
$( call QuoteHostCommand,$( 7) ) $( call QuoteHostCommand,$( 8) ) ; do \
if [ -n " $$ $$ $$ $$ cmd " ] ; then \
bin = " $$ $$ $$ $$ (PATH= " $( subst $( space) ,:,$( filter-out $( STAGING_DIR_HOST) /%,$( subst :,$( space) ,$( PATH) ) ) ) " \
which " $$ $$ $$ $$ {cmd%% *} " ) " ; \
if [ -x " $$ $$ $$ $$ bin " ] && eval " $$ $$ $$ $$ cmd " >/dev/null 2>/dev/null; then \
mkdir -p " $( STAGING_DIR_HOST) /bin " ; \
ln -sf " $$ $$ $$ $$ bin " " $( STAGING_DIR_HOST) /bin/ $( strip $( 1) ) " ; \
exit 0; \
fi ; \
fi ; \
done ; \
exit 1
endef
$$ ( eval $$ ( call Require,$( 1) ,$( if $( 2) ,$( 2) ,Missing $( 1) command ) ) )
e n d e f