allow deselecting previously selected drivers: e.g. --enable-drivers='all,!hd44780'

This commit is contained in:
marschap
2006-04-05 20:19:50 +00:00
parent 17914dfbf6
commit afc8c4d6c4
2 changed files with 34 additions and 18 deletions
+28 -10
View File
@@ -10,18 +10,36 @@ AC_ARG_ENABLE(drivers,
[ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,] [ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,]
[ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,] [ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,]
[ sli,stv5730,svga,t6963,text,tyan,ula200,xosd] [ sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
[ \"all\" compiles all drivers], [ 'all' compiles all drivers;]
[ 'all,!xxx,!yyy' de-selects previously selected drivers],
drivers="$enableval", drivers="$enableval",
drivers=[bayrad,CFontz,CFontz633,curses,CwLnx,glk,lb216,lcdm001,MtxOrb,pylcd,text]) drivers=[bayrad,CFontz,CFontz633,curses,CwLnx,glk,lb216,lcdm001,MtxOrb,pylcd,text])
if test "$drivers" = "all"; then allDrivers=[bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
drivers=[bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
fi
drivers=`echo $drivers | sed 's/,/ /g'` drivers=`echo $drivers | sed -e 's/,/ /g'`
for driver in $drivers
do
dnl replace special keyword "all" in a secure manner
drivers=[" $drivers "]
drivers=`echo " $drivers " | sed -e "s/ all / ${allDrivers} /"`
drivers=`echo $drivers | sed -e 's/,/ /g'`
dnl ignore unwanted drivers
selectdrivers=" "
for driver in $drivers ; do
case $driver in
!*)
driver=`echo $driver | sed -e 's/^.//'`
selectdrivers=[`echo $selectdrivers | sed -r -e "s/ $driver / /"`]
;;
*)
selectdrivers=["$selectdrivers $driver "]
;;
esac
done
dnl check for wanted drivers and their dependencies
for driver in $selectdrivers ; do
case "$driver" in case "$driver" in
bayrad) bayrad)
DRIVERS="$DRIVERS bayrad${SO}" DRIVERS="$DRIVERS bayrad${SO}"
@@ -318,10 +336,10 @@ dnl else
*) *)
AC_MSG_ERROR([Unknown driver $driver]) AC_MSG_ERROR([Unknown driver $driver])
;; ;;
esac esac
done done
actdrivers=`echo $actdrivers | sed 's/ /,/g'` actdrivers=`echo $actdrivers | sed -e 's/ /,/g'`
AC_MSG_RESULT([Will compile drivers: $actdrivers]) AC_MSG_RESULT([Will compile drivers: $actdrivers])
AC_SUBST(LIBCURSES) AC_SUBST(LIBCURSES)
+6 -8
View File
@@ -51,7 +51,8 @@ AC_ARG_ENABLE(drivers,
[ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,] [ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,]
[ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,] [ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,]
[ sli,stv5730,svga,t6963,text,tyan,ula200,xosd] [ sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
[ \"all\" compiles all drivers], [ 'all' compiles all drivers;]
[ 'all,!xxx,!yyy' de-selects previously selected drivers],
drivers="$enableval", drivers="$enableval",
</screen> </screen>
<para>becomes:</para> <para>becomes:</para>
@@ -65,7 +66,8 @@ AC_ARG_ENABLE(drivers,
[ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,] [ joy,lb216,lcdm001,lcterm,lirc,ms6931,mtc_s16209x,]
[ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,] [ MtxOrb,NoritakeVFD,pylcd,sed1330,sed1520,serialVFD,]
[ sli,stv5730,svga,t6963,text,tyan,ula200,xosd,<emphasis>myDriver</emphasis>] [ sli,stv5730,svga,t6963,text,tyan,ula200,xosd,<emphasis>myDriver</emphasis>]
[ \"all\" compiles all drivers], [ 'all' compiles all drivers;]
[ 'all,!xxx,!yyy' de-selects previously selected drivers],
drivers="$enableval", drivers="$enableval",
</screen> </screen>
</sect3> </sect3>
@@ -77,15 +79,11 @@ AC_ARG_ENABLE(drivers,
<para>This:</para> <para>This:</para>
<screen> <screen>
if test "$drivers" = "all"; then allDrivers=[bayrad,CFontz,CFontz633,...(big list)...,tyan,ula200,xosd]
drivers=[bayrad,CFontz,...(big list)...,ula200,xosd]
fi
</screen> </screen>
<para>becomes:</para> <para>becomes:</para>
<screen> <screen>
if test "$drivers" = "all"; then allDrivers=[bayrad,CFontz,CFontz633,...(big list)...,tyan,ula200,xosd,<emphasis>myDriver</emphasis>]
drivers=[bayrad,CFontz,...(big list)...,ula200,xosd,<emphasis>myDriver</emphasis>]
fi
</screen> </screen>
</sect3> </sect3>