optimize_platform $GCCVER 
  CFLAGS=`echo $CFLAGS | sed s/-funroll-loops//`
  CFLAGS=`echo $CFLAGS | sed s/-ffast-math//`
echo $CFLAGS

build_checklist()  {

  STATUS=$1
  LABEL=$2
  shift  2

  for  ITEM  in  $@;  do
    echo  $ITEM  $LABEL  $STATUS
  done

}


select_card_drivers()  {

  TITLE="Graphics Card Driver Selection Menu"
  HELP="Key:  [X] = on, [ ] = off"

  CHECKLIST="`build_checklist ON   Graphics   $ON_CARD_DRIVERS`
             `build_checklist OFF  Grahpics  $OFF_CARD_DRIVERS`"

  if  XF86CardDrivers=`dialog  --backtitle  "$BACKTITLE"  \
                               --title      "$TITLE"      \
                               --stdout                   \
                               --separate-output          \
                               --checklist  "$HELP"       \
                               18 55 10                   \
                               $CHECKLIST`
  then
     ON_CARD_DRIVERS=$XF86CardDrivers
    OFF_CARD_DRIVERS=$CARD_DRIVERS

    for  ITEM  in  $ON_CARD_DRIVERS;  do
      OFF_CARD_DRIVERS=`echo  $OFF_CARD_DRIVERS  |  sed  s/$ITEM//`
    done
  fi

}


select_dridrivers()  {

  TITLE="DRI Driver Selection Menu"
  HELP="Not all XFree86 supported graphics cards have DRI.
Key:  [X] = on, [ ] = off"

    CHECKLIST="`build_checklist  ON   DRI   $ON_DRI`
               `build_checklist  OFF  DRI  $OFF_DRI`"

  if  DriDrivers=`dialog  --backtitle  "$BACKTITLE"  \
                          --title      "$TITLE"      \
                          --stdout                   \
                          --separate-output          \
                          --checklist  "$HELP"       \
                          18 55 10                   \
                          $CHECKLIST`
  then
     ON_DRI=$DriDrivers
    OFF_DRI=$DRI

    for  ITEM  in  $ON_DRI;  do
      OFF_DRI=`echo  $OFF_DRI  |  sed  s/$ITEM//`
    done
  fi

}


select_input_drivers()  {

  TITLE="Input Driver Selection Menu"
  HELP="Key:  [X] = on, [ ] = off"

  CHECKLIST="`build_checklist  ON   Input   $ON_INPUT_DRIVERS`
             `build_checklist  OFF  Input  $OFF_INPUT_DRIVERS`"

  if  XInputDrivers=`dialog  --backtitle  "$BACKTITLE"  \
                             --title      "$TITLE"      \
                             --stdout                   \
                             --separate-output          \
                             --checklist  "$HELP"       \
                             18 55 10                   \
                             $CHECKLIST`
  then
     ON_INPUT_DRIVERS=$XInputDrivers
    OFF_INPUT_DRIVERS=$INPUT_DRIVERS

    for  ITEM  in  $ON_INPUT_DRIVERS;  do
      OFF_INPUT_DRIVERS=`echo  $OFF_INPUT_DRIVERS  |  sed  s/$ITEM//`
    done
  fi

}


initialize()  {

  BACKTITLE="lunar XFree86 host.def Configuration Menu"

   ON_CARD_DRIVERS="vga vesa v4l"
  OFF_CARD_DRIVERS="mga glint nv tga s3virge sis rendition neomagic i740
                    tdfx savage cirrus vmware tseng trident chips apm
                    GlideDriver fbdev i128 ati ark cyrix 
                    siliconmotion"
      CARD_DRIVERS="$ON_CARD_DRIVERS  $OFF_CARD_DRIVERS"


   ON_DRI=""
  OFF_DRI="gamma TdfxDriDriver mga r128 radeon sis"
      DRI="$ON_DRI  $OFF_DRI"


   ON_INPUT_DRIVERS="mouse"
  OFF_INPUT_DRIVERS="dynapro elographics magellan microtouch mutouch 
                     spaceorb wacom void citron"
      INPUT_DRIVERS="$ON_INPUT_DRIVERS  $OFF_INPUT_DRIVERS"


  YES_FONT_OPTIONS="MakeLocalFontDir Build75DpiFonts Build100DpiFonts"
   NO_FONT_OPTIONS="BuildCIDFonts      BuildCyrillicFonts
                    BuildLatin2Fonts   UseKoi8RForCyrillic
		    BuildArabicFonts   BuildISO8859_6Fonts
		    BuildGreekFonts    BuildISO8859_7Fonts
		    BuildHebrewFonts   BuildISO8859_8Fonts
		    BuildKOI8_RFonts   BuildJapaneseFonts
		    BuildJISX0201Fonts BuildKoreanFonts
		    BuildChineseFonts  BuildFontServer
		    InstallFSConfig    SharedLibFont
		    CompressAllFonts   GzipFontCompression"
      FONT_OPTIONS="$YES_FONT_OPTIONS  $NO_FONT_OPTIONS"

  YES_MISC_OPTIONS="HasShm BuildXF86DRI BuildXF86DRM BuildGLULibrary BuildGLXLibrary BuildGlxExt InstallXinitConfig InstallXdmConfig XprtServer ThreadedX"
   NO_MISC_OPTIONS="BuildServersOnly  BuildPexExt  XnestServer
                    LinuxFBDevSupport XVirtualFramebufferServer"
      MISC_OPTIONS="$YES_MISC_OPTIONS  $NO_MISC_OPTIONS"

}


generate_host_def()  {


  echo  "#define DefaultCCOptions      $CFLAGS $LDFLAGS"
  echo  "#define DefaultGcc2i386Opt    $CFLAGS $LDFLAGS"
  echo  "#define LibraryCDebugFlags    $CFLAGS $LDFLAGS"
  echo  "#define DefaultCDebugFlags    $CFLAGS $LDFLAGS"
  echo  "#define OptimizedCDebugFlags  $CFLAGS $LDFLAGS"

  if [[ $COPT != "" ]]; then
    echo "#define GccWarningOptions $COPT"
  fi

  if [[ -f /proc/mtrr ]]; then
    echo "#define HasMTRRSupport         YES"
  fi

  case $CPU in
  Pentium*)echo "#define HasMMXSupport   YES"
           echo "#define HasSSESupport   YES"
	   echo "#define MesaUseKatmai   YES"
#           if [[ CPU == "Pentium4" ]]; 
#             echo "#define HasSSE2Support YES"
#           fi
           ;;
   Athlon*)echo "#define HasMMXSupport   YES"
           echo "#define Has3DNowSupport YES"
	   echo "#define MesaUse3DNow    YES"
           ;;
  esac 

  if  [  -z  "$XF86CardDrivers"  ];  then
    XF86CardDrivers="$ON_CARD_DRIVERS"
  fi

  XF86CardDrivers=`echo  $XF86CardDrivers  |  tr  '
' ' '`
  echo  "#define XF86CardDrivers $XF86CardDrivers"


  if  [  -z  "$DriDrivers"  ];  then
    echo  "#define DriDrivers /**/"
  else
    DriDrivers=`echo  $DriDrivers  |  tr  '
' ' '`
    echo  "#define DriDrivers $DriDrivers"
  fi

  if  [  -z  "$XInputDrivers"  ];  then
    echo  "#define XInputDrivers mouse"
  else
    XInputDrivers=`echo  $XInputDrivers  |  tr  '
' ' '`
    echo  "#define XInputDrivers $XInputDrivers"
  fi

  for  ITEM  in   $YES_FONT_OPTIONS;  do
    echo  "#define $ITEM  YES"
  done

  for  ITEM  in  $NO_FONT_OPTIONS;  do
    echo  "#define $ITEM  NO"
  done

  if module_installed freetype2; then
    echo "#define HasFreetype2              YES"
    echo "#define BuildFreetype2Library     NO"
    echo "#define Freetype2Dir              /usr"
  fi

  for  ITEM  in   $YES_MISC_OPTIONS;  do
    echo  "#define $ITEM  YES"
  done

  for  ITEM  in  $NO_MISC_OPTIONS;  do
    echo  "#define $ITEM  NO"
  done

}


save_host_def()  {


  TARGET1="$CONFIG_CACHE/host.def"

  dialog  --backtitle  "$BACKTITLE"                        \
          --msgbox     "Saving Configuration to $TARGET1"  \
          6 40

  generate_host_def  >  "$TARGET1"

}


select_font_options() {

  TITLE="Select Font Options"
  CHECKLIST="`build_checklist  ON   Option  $YES_FONT_OPTIONS`
             `build_checklist  OFF  Option   $NO_FONT_OPTIONS`"
  HELP="Key:  [X] = on, [ ] = off"

  if  ON_FONT_OPTIONS=`dialog  --backtitle  "$BACKTITLE"  \
                               --title      "$TITLE"      \
                               --stdout                   \
                               --separate-output          \
                               --checklist  "$HELP"       \
                               18 55 10                   \
                              $CHECKLIST`
  then
    YES_FONT_OPTIONS=$ON_FONT_OPTIONS
     NO_FONT_OPTIONS=$FONT_OPTIONS

    for  ITEM  in  $YES_FONT_OPTIONS;  do
      NO_FONT_OPTIONS=`echo  $NO_FONT_OPTIONS  |  sed  s/$ITEM//`
    done
  fi

}  


select_misc_options() {

  TITLE="Select Misc Options"
  CHECKLIST="`build_checklist  ON   Option  $YES_MISC_OPTIONS`
             `build_checklist  OFF  Option   $NO_MISC_OPTIONS`"
  HELP="Key:  [X] = on, [ ] = off"

  if  ON_MISC_OPTIONS=`dialog  --backtitle  "$BACKTITLE"  \
                               --title      "$TITLE"      \
                               --stdout                   \
                               --separate-output          \
                               --checklist  "$HELP"       \
                               18 55 10                   \
                               $CHECKLIST`
  then
    YES_MISC_OPTIONS=$ON_MISC_OPTIONS
     NO_MISC_OPTIONS=$MISC_OPTIONS

    for  ITEM  in  $YES_MISC_OPTIONS;  do
      NO_MISC_OPTIONS=`echo  $NO_MISC_OPTIONS  |  sed  s/$ITEM//`
    done
  fi

}


configure_host_def()  {

  initialize

  while  

    COMMAND=`dialog  --backtitle  "$BACKTITLE"                        \
                     --stdout                                         \
                     --title  "Main Menu"                             \
                     --default-item  $COMMAND                         \
                     --nocancel                                       \
                     --menu                                           \
                     ""                                               \
                     18 55 10                                         \
                     "XF86CardDrivers"  "Select Video Card Drivers"   \
                     "DriDrivers"       "Select Direct DRI Drivers"   \
                     "XInputDrivers"    "Select Input Drivers"        \
                     "Fonts"            "Select Font Options"         \
                     "Misc"             "Set other Options"           \
                     "Save"             "Save current configuration"  \
                     "Edit"             "Edit host.def"               \
                     "Exit"             "Done here.  Start building"`
  do

    case  $COMMAND  in
                 Exit)  break                        ;;
                 Save)  save_host_def                ;;
                 Edit)  [  -n   "$EDITOR"  ]         &&
                        $EDITOR  /etc/lunar/local/host.def  ||
                        nano     /etc/lunar/local/host.def  ;;
      XF86CardDrivers)  select_card_drivers          ;;
           DriDrivers)  select_dridrivers            ;;
        XInputDrivers)  select_input_drivers         ;;
                Fonts)  select_font_options          ;;
                 Misc)  select_misc_options          ;;
    esac
  done

}

message  "${MESSAGE_COLOR}The DRI/DRM in xfree86 4.2.0 is not"  \
         "compatibile with the DRI/DRM in linux-2.4.19."
message  "If you use DRI/DRM please enable DRM in the"     \
         "linux configuration"
message  "and disable it in the xfree86 configuration.${DEFAULT_COLOR}"


if    [  -f  $CONFIG_CACHE/host.def  ]
then  message  "Reconfiguration is optional."
fi

if    query  "Configure host.def?"  n
then  configure_host_def
fi
