Updated gr-howto-write-a-block; mostly the .m4 macros and configure.ac.
[debian/gnuradio] / gr-howto-write-a-block / config / usrp_sdcc.m4
index 37ce7c35e414e0fba6a2cc68f8f37211e998c2c0..86f6429e540b2f6269815f2b36c6d0e906f4efad 100644 (file)
 
 AC_DEFUN([USRP_SDCC],
 [
+       sdccok=yes
        AC_CHECK_PROG(XCC, sdcc, sdcc -mmcs51 --no-xinit-opt,no)
        AC_CHECK_PROG(XAS, asx8051, asx8051 -plosgff,no)
 
        if test "$XCC" = "no" -o "$XAS" = "no" ; then
-               AC_MSG_ERROR([USRP requires sdcc. sdcc not found, stop. See http://sdcc.sf.net])
-       fi
+               AC_MSG_RESULT([USRP requires sdcc. sdcc not found. See http://sdcc.sf.net])
+               sdccok=no
+       else
+               sdcc_version_min=$1
 
-       sdcc_version_min=$1
+               sdcc_version=`sdcc --version 2>&1 | \
+                       sed  's/\(SDCC.* \)\([[0-9]]*\.[[0-9]]*\.[[0-9]]*\)\( .*$\)/\2/'`
 
-       sdcc_version=`sdcc --version 2>&1 | \
-               sed  's/\(SDCC.* \)\([[0-9]]*\.[[0-9]]*\.[[0-9]]*\)\( .*$\)/\2/'`
+               AC_MSG_CHECKING([sdcc_version "$sdcc_version"])
 
-        AC_MSG_CHECKING([sdcc_version "$sdcc_version"])
+               sdcc_major_version=`echo $sdcc_version | \
+                       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+               sdcc_minor_version=`echo $sdcc_version | \
+                       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+               sdcc_micro_version=`echo $sdcc_version | \
+                       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 
-       sdcc_major_version=`echo $sdcc_version | \
-               sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-       sdcc_minor_version=`echo $sdcc_version | \
-               sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-       sdcc_micro_version=`echo $sdcc_version | \
-               sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+               sdcc_major_min=`echo $sdcc_version_min | \
+                       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+               sdcc_minor_min=`echo $sdcc_version_min | \
+                       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+               sdcc_micro_min=`echo $sdcc_version_min | \
+                       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 
-       sdcc_major_min=`echo $sdcc_version_min | \
-               sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-       sdcc_minor_min=`echo $sdcc_version_min | \
-               sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-       sdcc_micro_min=`echo $sdcc_version_min | \
-               sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+               sdcc_version_proper=`expr \
+                       "$sdcc_major_version" \> "$sdcc_major_min" \| \
+                       "$sdcc_major_version" \= "$sdcc_major_min" \& \
+                       "$sdcc_minor_version" \> "$sdcc_minor_min" \| \
+                       "$sdcc_major_version" \= "$sdcc_major_min" \& \
+                       "$sdcc_minor_version" \= "$sdcc_minor_min" \& \
+                       "$sdcc_micro_version" \>= "$sdcc_micro_min" `
 
-       sdcc_version_proper=`expr \
-               "$sdcc_major_version" \> "$sdcc_major_min" \| \
-               "$sdcc_major_version" \= "$sdcc_major_min" \& \
-               "$sdcc_minor_version" \> "$sdcc_minor_min" \| \
-               "$sdcc_major_version" \= "$sdcc_major_min" \& \
-               "$sdcc_minor_version" \= "$sdcc_minor_min" \& \
-               "$sdcc_micro_version" \>= "$sdcc_micro_min" `
+               if test "$sdcc_version_proper" = "1" ; then
+                       AC_MSG_RESULT([$sdcc_major_version.$sdcc_minor_version.$sdcc_micro_version])
+               else
+                       sdccok=no
+                       AC_MSG_RESULT([USRP requires sdcc >= $sdcc_version_min. sdcc not found. See http://sdcc.sf.net])
+               fi
 
-       if test "$sdcc_version_proper" = "1" ; then
-               AC_MSG_RESULT([$sdcc_major_version.$sdcc_minor_version.$sdcc_micro_version])
-       else
-               AC_MSG_ERROR([USRP requires sdcc >= $sdcc_version_min. sdcc not found, stop. See http://sdcc.sf.net])
+               AC_SUBST(XCC)
+               AC_SUBST(XAS)
        fi
 
-       AC_SUBST(XCC)
-       AC_SUBST(XAS)
-
+       if test $sdccok = yes; then
+               ifelse([$2], , :, [$2])
+       else
+               ifelse([$3], , :, [$3])
+       fi
 ])