Major code reorganization
authorMarty Connor <mdc@etherboot.org>
Fri, 14 Aug 2009 00:42:41 +0000 (20:42 -0400)
committerMarty Connor <mdc@etherboot.org>
Fri, 14 Aug 2009 00:42:41 +0000 (20:42 -0400)
- Made documentation directory not dependent on $version
- Made everything more generic, so replaced ROM-o-matic.net with ROM-o-matic
- Provided local-config.php as a method to shadow settings
- Split globals and flag_table.

36 files changed:
bottom.php
build.php
configinfo.php
doc/AUTOBOOT_CMD.html [moved from doc-git/AUTOBOOT_CMD.html with 100% similarity]
doc/BANNER_TIMEOUT.html [moved from doc-git/BANNER_TIMEOUT.html with 100% similarity]
doc/COMCONSOLE.html [moved from doc-git/COMCONSOLE.html with 100% similarity]
doc/COMDATA.html [moved from doc-git/COMDATA.html with 100% similarity]
doc/COMPARITY.html [moved from doc-git/COMPARITY.html with 100% similarity]
doc/COMPRESERVE.html [moved from doc-git/COMPRESERVE.html with 100% similarity]
doc/COMSPEED.html [moved from doc-git/COMSPEED.html with 100% similarity]
doc/COMSTOP.html [moved from doc-git/COMSTOP.html with 100% similarity]
doc/CONFIG_CMD.html [moved from doc-git/CONFIG_CMD.html with 100% similarity]
doc/CONSOLE_FIRMWARE.html [moved from doc-git/CONSOLE_FIRMWARE.html with 100% similarity]
doc/CONSOLE_SERIAL.html [moved from doc-git/CONSOLE_SERIAL.html with 100% similarity]
doc/DHCP_CMD.html [moved from doc-git/DHCP_CMD.html with 100% similarity]
doc/DNS_RESOLVER.html [moved from doc-git/DNS_RESOLVER.html with 100% similarity]
doc/DOWNLOAD_PROTO_FTP.html [moved from doc-git/DOWNLOAD_PROTO_FTP.html with 100% similarity]
doc/DOWNLOAD_PROTO_HTTP.html [moved from doc-git/DOWNLOAD_PROTO_HTTP.html with 100% similarity]
doc/DOWNLOAD_PROTO_TFTP.html [moved from doc-git/DOWNLOAD_PROTO_TFTP.html with 100% similarity]
doc/IFMGMT_CMD.html [moved from doc-git/IFMGMT_CMD.html with 100% similarity]
doc/IMAGE_BZIMAGE.html [moved from doc-git/IMAGE_BZIMAGE.html with 100% similarity]
doc/IMAGE_CMD.html [moved from doc-git/IMAGE_CMD.html with 100% similarity]
doc/IMAGE_ELF.html [moved from doc-git/IMAGE_ELF.html with 100% similarity]
doc/IMAGE_MULTIBOOT.html [moved from doc-git/IMAGE_MULTIBOOT.html with 100% similarity]
doc/IMAGE_NBI.html [moved from doc-git/IMAGE_NBI.html with 100% similarity]
doc/IMAGE_PXE.html [moved from doc-git/IMAGE_PXE.html with 100% similarity]
doc/IMAGE_SCRIPT.html [moved from doc-git/IMAGE_SCRIPT.html with 100% similarity]
doc/NMB_RESOLVER.html [moved from doc-git/NMB_RESOLVER.html with 100% similarity]
doc/NVO_CMD.html [moved from doc-git/NVO_CMD.html with 100% similarity]
doc/ROUTE_CMD.html [moved from doc-git/ROUTE_CMD.html with 100% similarity]
doc/SANBOOT_CMD.html [moved from doc-git/SANBOOT_CMD.html with 100% similarity]
flag_table.php
flags.php
globals.php [new file with mode: 0644]
index.php
local-config.php [deleted file]

index e14c339..f287b93 100644 (file)
@@ -1,3 +1,9 @@
+<!--\r
+\r
+Helpful information for users downloading images\r
+\r
+-->\r
+\r
 <hr>\r
 \r
 <h4>\r
@@ -5,40 +11,34 @@ Notes:
 </h4>\r
 \r
 <ul>\r
+\r
   <li>\r
-    For help and information about getting your OS loaded with gPXE or Etherboot,<br>\r
-    Visit the Etherboot Home Page at \r
-    <a href="http://www.etherboot.org/" target="_blank">http://www.etherboot.org/</a><br>\r
-    and join the Etherboot-Discuss mailing list.<br>\r
-    Sign up at: <a href="http://lists.sourceforge.net/lists/listinfo/etherboot-discuss" \r
-    target="_blank">http://lists.sourceforge.net/lists/listinfo/etherboot-discuss</a>\r
+    Source code for gPXE images is available at \r
+    <a href="http://etherboot.org/wiki/download" target="_blank">\r
+    http://etherboot.org/wiki/download</a>\r
     <br><br>\r
   </li>\r
 \r
   <li>\r
-    Real-time help is often available on IRC on the #etherboot channel of\r
-    irc.freenode.net.\r
+    For general information about using gPXE, please visit the\r
+    <a href="http://www.etherboot.org/" target="_blank">\r
+    Etherboot Project Home Page</a>\r
     <br><br>\r
   </li>\r
-\r
-<!--\r
+    \r
   <li>\r
-    For help and information with what goes on <strong>after</strong> your kernel is loaded<br>\r
-    Visit the LTSP Home Page at <a href="http://www.ltsp.org/" \r
-    target="_blank">http://www.ltsp.org/</a><br>\r
-    and join the LTSP-discuss mailing list<br>\r
-    Sign up at: <a href="http://lists.sourceforge.net/lists/listinfo/ltsp-discuss" target="_blank">\r
-    http://lists.sourceforge.net/lists/listinfo/ltsp-discuss</a>\r
+    For Email-based support for gPXE please join the \r
+    <a href="http://etherboot.org/wiki/mailinglists" target="_blank">\r
+    project mailing lists.</a>\r
     <br><br>\r
   </li>\r
 \r
   <li>\r
-    Source code for gPXE and Etherboot images is available at \r
-    <a href="http://www.etherboot.org/" target="_blank">\r
-    http://www.etherboot.org/</a>\r
+    For real-time online gPXE support via IRC please visit the \r
+    <a href="irc://irc.freenode.net/%23etherboot"> #etherboot channel\r
+    of irc.freenode.net</a>.\r
     <br><br>\r
   </li>\r
--->\r
 \r
 </ul>\r
 \r
index 2637b1a..92e04ac 100644 (file)
--- a/build.php
+++ b/build.php
@@ -3,67 +3,67 @@
 // If user chose "Configure" option on form
 if ( $_GET['A'] == "Configure" ) {
 
-  // Enable  more extensive customization of options
-  include "flags.php";
+    // Enable  more extensive customization of options
+    require_once "flags.php";
+       
+    exit ();
 
-  exit ();
+// The next conditional includes all other cases except "Get ROM"
+//   particularly the explicit ($A == "Start Over") case
+//
+} else if ( $_GET['A'] != "Get ROM" ) { 
+       
+       // Note that this method of redirections discards all the
+       // configuration flags, which is intentional in this case.
+    // ( To pass through all the flags, we could just 
+    // 'include ( "index.php" );' here )
 
-//  The next conditional  includes all other cases except "Get ROM"
-//    particularly the explicit ($A == "Start Over") case
+       $dir = dirname ( $_SERVER['PHP_SELF'] );
 
-} elseif ( $_GET['A'] != "Get ROM" ) { 
+       if ( $dir == "." || $dir == "/" ) {
+               $dir = "";
+       }
 
-  // Note that this method of redirections discards all the configuration 
-  // flags, which is what I want to happen.
-  // ( To pass through all the flags, we could just 'include ( "index.php" );' here )
+       $isHTTPS = ( isset ( $_SERVER["HTTPS"] ) && $_SERVER["HTTPS"] == "on" );
+       $port = ( isset($_SERVER["SERVER_PORT"] ) && 
+                         ( ( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || 
+                               ( $isHTTPS  && $_SERVER["SERVER_PORT"] != "443" ) ) );
 
-  $dir = dirname ( $_SERVER['PHP_SELF'] );
+       $port = ( $port ) ? ':' . $_SERVER["SERVER_PORT"] : '';
 
-  if ( $dir == "." || $dir == "/" ) {
-    $dir = "";
-  }
+       $dest = ( $isHTTPS ? 'https://' : 'http://' ) .
+               $_SERVER["SERVER_NAME"] . $dir . "/";
 
-  $isHTTPS = ( isset ( $_SERVER["HTTPS"] ) && $_SERVER["HTTPS"] == "on" );
-  $port = ( isset($_SERVER["SERVER_PORT"] ) && 
-           ( ( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || 
-             ( $isHTTPS  && $_SERVER["SERVER_PORT"] != "443" ) ) );
+       header ( "Location: $dest" );
 
-  $port = ( $port ) ? ':' . $_SERVER["SERVER_PORT"] : '';
+       // This should normally not be seen, because the "header"
+       // statement above should cause immediate redirection
+       // but just in case...
 
-  $dest = ( $isHTTPS ? 'https://' : 'http://' ) .
-          $_SERVER["SERVER_NAME"] . $dir . "/";
-
-  header ( "Location: $dest" );
-
-  // This should normally not be seen, but just in case...
-  echo "Try this: <a href=\"$dest\">$dest</a>";
-
-  exit (); 
+       echo "Try this: <a href=\"$dest\">$dest</a>";
 
+       exit (); 
 }
 
 // OK, we're going to try to use whatever options have been set
 // to build an image.
 
-include "configinfo.php";
+require_once "configinfo.php";
 
 $flags = get_flags ();
 
 // (debug) show flags
-//echo "<p>Flags: </p>";
-//showflags ( $flags );
-//exit ();
+// echo "<p>Flags: </p>";
+// showflags ( $flags );
+// exit ();
 
-/*
-** Make temporary copy of src directory
-*/
+// Make temporary copy of src directory
 $dir = mktempcopy ( "$src_dir", "/tmp" );
 
+// For debugging
 // $dir = "/var/romtmp/src";
 
-/*
-** Create a config.h file for this build
-*/
+// Create a config.h file for this build
 write_config_file ( "$dir/config.h", "all", $flags );
 // exec ( "/bin/touch '$dir/config.h' 2>&1", $touchtxt, $status );
 
@@ -80,52 +80,55 @@ $target = "bin/$nicfile";
 exec ( "make -C '$dir' '$target' 2>&1", $maketxt, $status );
 
 // (debugging) take a look at the Make output
-// deltempdir ( $dir );
-// echo "<blockquote>"."<pre>";
-// echo htmlentities ( implode("\n", $maketxt ) );
-// echo "</pre>"."</blockquote>";
-// exit ();
+//echo "<blockquote>"."<pre>";
+//echo htmlentities ( implode("\n", $maketxt ) );
+//echo "</pre>"."</blockquote>";
+// Kill the temporary directory
+//deltempdir ( $dir );
+//exit ();
 
-/*
-** Send ROM to browser (with extreme prejudice)
-*/
+// Send ROM to browser (with extreme prejudice)
 
 if ( $status == 0 ) {
 
-  $fp = fopen("$dir/$target", "rb" );
-  if ( $fp > 0 ) {
+    $fp = fopen("$dir/$target", "rb" );
+    if ( $fp > 0 ) {
+
+        $len = filesize ( "$dir/$target" );
+        if ( $len > 0 ) {
 
-    $len = filesize ( "$dir/$target" );
-    if ( $len > 0 ) {
+            $buf = fread ( $fp, $len );
+            fclose ( $fp );
+            deltempdir ( $dir );
 
-      $buf = fread ( $fp, $len );
-      fclose ( $fp );
-      deltempdir ( $dir );
+               //echo "$nicfilename<br>"; exit ();
 
-      // Try to force IE to handle downloading right.
-      Header ( "Cache-control: private");
-      Header ( "Content-Type: application/x-octet-stream; " .
-            "name=$nicfilename");
-      Header ( "Content-Disposition: attachment; " .
-            "Filename=$nicfilename");
-      Header ( "Content-Location: $nicfilename");
-      Header ( "Content-Length: $len");
+            // Try to force IE to handle downloading right.
+            Header ( "Cache-control: private");
+            Header ( "Content-Type: application/x-octet-stream; " .
+                     "name=$nicfilename");
+            Header ( "Content-Disposition: attachment; " .
+                     "Filename=$nicfilename");
+            Header ( "Content-Location: $nicfilename");
+            Header ( "Content-Length: $len");
 
-      echo $buf;
+            echo $buf;
 
-      exit ();
+            exit ();
+        }
     }
-  }
 }
 
 // Remove build directory
 deltempdir ( $dir );
 
-$header_title = "ROM-o-matic.net: $nicfile Build Failed";
+// Announce failure if $status from make was non-zero
+
+$header_title = "ROM-o-matic: $nicfile Build Failed";
 $html_title   = "$nicfile Build Failed";
 $description  = "$nicfile ROM driver build failed";
 
-include ( $top_inc );
+include_once ( $top_inc );
 
 ?>
 
@@ -142,4 +145,14 @@ Following is the output from <code>make</code>:
 
 Please let us know that this happened.
 
-<? include $bottom_inc ?>
+<? include_once $bottom_inc ?>
+
+<?
+
+// Local variables:
+//  c-basic-offset: 4
+//  c-indent-level: 4
+//  tab-width: 4
+// End:
+
+?>
index c04f448..249c3ce 100644 (file)
 <? // -*- Mode: PHP; -*-
 
-$version = "git";
-$src_dir = "../../../gpxe.git/src"; // TODO temporary hack to work around symlink git
+require_once "flag_table.php";
 
-include ( "flag_table.php" );
-
-$top_inc = "top.php";
-$bottom_inc = "bottom.php";
-
-$flag_codes = array ();
-
-reset($flag_table);
-$i = 1;
-
-while ( list ( $key, $props ) = each ( $flag_table ) ) {
-  $is = (string) $i;
-  if ( $i < 10 ) {
-    $is = "0" . $is;
-  }
-
-  $props["code"] = $is;
-  $props["flag"] = $key;
+// Some debugging calls:
+// dump_flag_table ();
+// dump_flag_codes ();
+// dump_flag_table_keys_sorted ();
+// exit ();
 
-  $flag_table[$key] = $props;
-  $flag_codes[$is] = $props;
-  $i = $i + 1;
-}
+// Include shadow-able globals
+require_once "globals.php";
 
-// dump_flag_table();
-// dump_flag_codes();
-// dump_flag_table_keys_sorted();
-// exit ();
+// Allow shadowing of globals
+include_once "local-config.php";
 
-$ofmts = array (
-  "Floppy bootable ROM Image (.dsk)" => "dsk",
-  "Binary ROM Image(.rom)" => "rom",
-  "ISO bootable image (.iso)" => "iso",
-  "ISO bootable image with legacy floppy emulation (.liso)" => "liso",
-  "LILO/GRUB/SYSLINUX loadable Linux kernel format (.lkrn)" => "lkrn",
-  "PXE bootstrap loader format ROM Image (.pxe)" => "pxe",
-  "USB Keychain Disk Image / bootable HD image (.usb)" => "usb",
-// "HD Disk Partition Image (.hd)" => "hd",
-);
+// echo "$version<br>"; exit ();
 
 function value_key ($ofmt) 
 {
-  // No LinuxBIOS support in gpxe right now
-  //  return (strpos ($ofmt, "LinuxBIOS" ) === false ? "value" : "valuelnx" );
-  return ( "value" );
+       // Here we decide which $flag_table key is associated with
+       // the variable we want to retrieve.  The reason for this is
+       // that we might want to return a different value based on 
+       // what kind of build we are doing.  In particular, if we ever
+       // Support EFI or LinuxBIOS builds, we might want to return
+       // different values than for PC BIOS builds. In which 
+       // case we could do someting like:
+    //    return (strpos ($ofmt, "LinuxBIOS" ) === false 
+    //           ? "value" : "valuelnx" );
+
+       // For now, we return the key "value", since that is the 
+       // slot that contains the usual value associated with this key
+    return ( "value" );
 }
 
 function snarf_file ( $fname ) 
 {
-  $len = filesize ( $fname );
-  if ( $len > 0 ) {
-    $fp = fopen ( $fname, "rb" );
-    if ( $fp > 0 ) {
-      $buf = fread ( $fp, $len );
-      fclose ( $fp );
-      if ( $buf ) 
-       return ($buf);
+    $len = filesize ( $fname );
+    if ( $len > 0 ) {
+        $fp = fopen ( $fname, "rb" );
+        if ( $fp > 0 ) {
+            $buf = fread ( $fp, $len );
+            fclose ( $fp );
+            if ( $buf ) 
+                return ($buf);
+        }
     }
-  }
-  die ( "Unable to get $fname" );
-  return 0;
+    die ( "Unable to get $fname" );
+    return 0;
 }
 
 function get_nics () 
 {
-  global $version, $src_dir;
-  $nic = ( isset ( $_GET['nic'] ) ? $_GET['nic'] : '' );
-
-  $fd = fopen( "$src_dir/bin/NIC", "r" );
-  if ( $fd < 1 ) {
-    trigger_error ( "Missing NIC Config Info" );
-    exit ();
-  }
-  $nics = array ();
-  $family = "";
-  while ( !feof ( $fd ) ) {
-    $line = trim ( fgets ( $fd, 200 ) );
-    if ( strpos ( $line, "family" ) === 0 ) {
-      list ( $dummy, $family ) = split( "[ \t]+", $line );
-      settype ( $family, "string" );
-    } elseif ( $line != "" && $line[0] != '#' ) {
-      list ( $rom, $pci_ids ) = split ( "[ \t]+", $line );
-      settype ( $rom, "string" );
-      if ( $pci_ids == "-" ) $pci_ids = "";
-      $fam_name = substr ( $family, strrpos ( $family, "/" ) + 1, 
-                          strlen ( $family ) - strrpos ( $family, "/" ) + 1 );
-      $option = ( $pci_ids ? "$fam_name:$rom -- [$pci_ids]" : "$fam_name:$rom" );
-      // * Kludge - fix incoming $nic if any.
-      if ( $nic == $rom ) $nic = $option;
-      // ISA drivers are per-family, PCI are per-ROM. If ever decide
-      // to cache the drivers, can use this key.
-      $nics[$option] = ( $pci_ids ? "PCI:" . $rom : "ISA:" . $family );
-      // echo $nics array for debugging
-      //      echo "\$nics[$option] "." -> ".$nics[$option]."<br>";
+    global $version, $src_dir;
+
+    $nic = ( isset ( $_GET['nic'] ) ? $_GET['nic'] : '' );
+
+    $fd = fopen( "$src_dir/bin/NIC", "r" );
+
+    if ( $fd < 1 ) {
+        trigger_error ( "Missing NIC Config Info" );
+        exit ();
     }
-  }
-  $nics["gpxe:all-drivers"] = "PCI:gpxe";
-  fclose ( $fd );
-  ksort ( $nics );
-  return( $nics );
+
+    $nics = array ();
+    $family = "";
+
+    while ( !feof ( $fd ) ) {
+
+        $line = trim ( fgets ( $fd, 200 ) );
+
+        if ( strpos ( $line, "family" ) === 0 ) {
+
+            list ( $dummy, $family ) = split( "[ \t]+", $line );
+            settype ( $family, "string" );
+
+        } else if ( $line != "" && $line[0] != '#' ) {
+
+            list ( $rom, $pci_ids ) = split ( "[ \t]+", $line );
+            settype ( $rom, "string" );
+
+            if ( $pci_ids == "-" ) 
+                               $pci_ids = "";
+
+            $fam_name = substr ( $family, strrpos ( $family, "/" ) + 1, 
+                         strlen ( $family ) - strrpos ( $family, "/" ) + 1 );
+            $option = ( $pci_ids ? "$fam_name:$rom -- [$pci_ids]" : "$fam_name:$rom" );
+
+            // * Kludge - fix incoming $nic if any.
+            if ( $nic == $rom ) 
+                               $nic = $option;
+
+            // ISA drivers are per-family, PCI are per-ROM. If ever decide
+            // to cache the drivers, can use this key.
+            $nics[$option] = ( $pci_ids ? "PCI:" . $rom : "ISA:" . $family );
+
+            // echo $nics array for debugging
+            // echo "\$nics[$option] "." -> ".$nics[$option]."<br>";
+        }
+    }
+
+    $nics["gpxe:all-drivers"] = "PCI:gpxe";
+    fclose ( $fd );
+    ksort ( $nics );
+    return( $nics );
 }
 
 function get_nicfile () 
 {
-  global $ofmts;
-
-  $nic = $_GET['nic'];
-  $ofmt = $_GET['ofmt'];
-
-  $n = strpos ( $nic, " " );
-  $family = substr ( $nic, 0, strpos ( $nic,":" ) );
-
-  $rom = ( $n > 0 ? 
-          substr ( $nic, strpos ( $nic, ":" ) + 1, 
-                   $n - ( strlen ( $family ) + 1 ) ) :  
-          $family );
-
-  $ftype = $ofmts[$ofmt];
-  if ( $ftype == "" ) $ftype = "dsk"; 
-
-  // if .rom format is requested, return rom name,
-  //   since .rom images are PCI ID specific, and 
-  //   rules only exist to build bin/$rom for Binary
-  //    ROM images types
-  if ( $ftype == "rom" )
-    $retval = cleanstring ( $rom . "." . $ftype );
-  else
-    $retval = cleanstring ( $family . "." . $ftype );
-
-  // Let's take a look at what was chosen.
-  //  echo "strpos ( \$nic, \":\" ) ->" . strpos ( $nic, ":" ) . "<br>";
-  //  echo "\$n ->" . "$n" . "<br>";
-  //  echo "\$nic ->" . "|$nic|" . "<br>";
-  //  echo "\$rom ->" . "|$rom|" . "<br>";
-  //  echo "\$family ->" . "|$family|" . "<br>";
-  //  echo "\$ftype ->" . "|$ftype|" . "<br>";
-  //  echo "\$retval ->" . "|$retval|" . "<br>";
-  //  exit();
-
-  return ( $retval );
+    global $ofmts;
+
+    $nic = $_GET['nic'];
+    $ofmt = $_GET['ofmt'];
+
+    $n = strpos ( $nic, " " );
+    $family = substr ( $nic, 0, strpos ( $nic,":" ) );
+
+    $rom = ( $n > 0 ? 
+         substr ( $nic, strpos ( $nic, ":" ) + 1, 
+              $n - ( strlen ( $family ) + 1 ) ) :  
+         $family );
+
+    $ftype = $ofmts[$ofmt];
+    if ( $ftype == "" ) $ftype = "dsk"; 
+
+    // if .rom format is requested, return rom name,
+    //   since .rom images are PCI ID specific, and 
+    //   rules only exist to build bin/$rom for Binary
+    //    ROM images types
+    if ( $ftype == "rom" )
+        $retval = cleanstring ( $rom . "." . $ftype );
+    else
+        $retval = cleanstring ( $family . "." . $ftype );
+
+    // Let's take a look at what was chosen.
+    //  echo "strpos ( \$nic, \":\" ) ->" . strpos ( $nic, ":" ) . "<br>";
+    //  echo "\$n ->" . "$n" . "<br>";
+    //  echo "\$nic ->" . "|$nic|" . "<br>";
+    //  echo "\$rom ->" . "|$rom|" . "<br>";
+    //  echo "\$family ->" . "|$family|" . "<br>";
+    //  echo "\$ftype ->" . "|$ftype|" . "<br>";
+    //  echo "\$retval ->" . "|$retval|" . "<br>";
+    //  exit();
+
+    return ( $retval );
 }
 
-function hidden ( $flag, $value ) {
-  $value = htmlentities ( $value );
-  return "<input type=\"hidden\" value=\"$value\" name=\"$flag\"></input>";
+function hidden ( $flag, $value ) 
+{
+    $value = htmlentities ( $value );
+    return "<input type=\"hidden\" value=\"$value\" name=\"$flag\"></input>";
 }
 
-function checkbox ( $flag, $value ) {
-  return "<input type=\"checkbox\" value=\"on\" name=\"$flag\"" .
-    ($value == "on" ? " checked>" : ">" );
+function checkbox ( $flag, $value ) 
+{
+    return "<input type=\"checkbox\" value=\"on\" name=\"$flag\"" .
+        ($value == "on" ? " checked>" : ">" );
 }
 
-function textbox ( $flag, $value, $size ) {
-  $value = htmlentities ( $value );
-  return "<input type=\"text\" size=\"$size\" value=\"$value\" name=\"$flag\">";
+function textbox ( $flag, $value, $size ) 
+{
+    $value = htmlentities ( $value );
+    return "<input type=\"text\" size=\"$size\" value=\"$value\" name=\"$flag\">";
 }
  
-function menubox ( $name, $options, $value ) {
-  $s="<select name=\"$name\">";
-  reset ( $options );
-  while ( list ( $ignore, $option ) = each ( $options ) ) {
-    $s .= "<option" . ( $option == $value ? " selected>" : ">" ) .
-      htmlentities ( $option ) . "</option>";
-  }
-  return $s . "</select>";
+function menubox ( $name, $options, $value ) 
+{
+    $s="<select name=\"$name\">";
+    reset ( $options );
+
+    while ( list ( $ignore, $option ) = each ( $options ) ) {
+        $s .= "<option" . ( $option == $value ? " selected>" : ">" ) .
+            htmlentities ( $option ) . "</option>";
+    }
+    return $s . "</select>";
 }
 
 function keys_menubox ( $name, $options, $value ) 
 {
-  $s="<select name=\"$name\">";
-  reset ( $options );
-  while ( list ( $option, $ignore ) = each ( $options ) ) {
-    if ( !$value ) $value = $option;
-    $s .= "<option" . ( $option == $value ? " selected>" : ">" ) .
-      htmlentities ( $option ) . "</option>";
-  }
-  return $s . "</select>";
+    $s="<select name=\"$name\">";
+    reset ( $options );
+
+    while ( list ( $option, $ignore ) = each ( $options ) ) {
+        if ( !$value ) $value = $option;
+        $s .= "<option" . ( $option == $value ? " selected>" : ">" ) .
+            htmlentities ( $option ) . "</option>";
+    }
+    return $s . "</select>";
 }  
 
-// Encode flags to keep size down, so can use GET's instead of POST's...
-// Note that the value may need to be urlencoded.
 function encode_flags ( $flags ) 
 {
-  global $flag_table;
-
-  $s = "";
-  reset ( $flags );
-  while ( list ( $flag, $value ) = each ( $flags ) ) {
-    $prop = $flag_table[$flag];
-    $type = $prop["type"];
-    $s .= $prop["code"];
-    if ( $type != "on/off" ) {
-      $n = strlen ( $value );
-      $nstr = strval ( $n );
-      if ( $n < 10 ) $nstr = "0" . $nstr;
-      if ( $n >= 80 ) die ( "Value too long!" );
-      $s .= $nstr . $value;
+       // Encode flags to keep size down, so can use GET's instead of POST's
+       // Note that the value may need to be urlencoded.
+
+    global $flag_table;
+
+    $s = "";
+    reset ( $flags );
+
+    while ( list ( $flag, $value ) = each ( $flags ) ) {
+        $prop = $flag_table[$flag];
+        $type = $prop["type"];
+        $s .= $prop["code"];
+
+        if ( $type != "on/off" ) {
+            $n = strlen ( $value );
+            $nstr = strval ( $n );
+
+            if ( $n < 10 ) 
+                $nstr = "0" . $nstr;
+
+            if ( $n >= 80 ) 
+                die ( "Value too long!" );
+
+            $s .= $nstr . $value;
+        }
     }
-  }
-  return $s;
+    return $s;
 }
 
 function decode_flags_into ( $s, $flags ) 
 {
-  global $flag_codes;
-  $len = strlen ( $s );
-
-  $pos = 0;
-  while ( $pos < $len ) {
-    $code = substr ( $s, $pos, 2 );
-    $pos += 2;
-    $prop = $flag_codes[$code];
-    $flag = $prop["flag"];
-    $value = "on";
-    $type = $prop["type"];
-    if ( $prop["type"] != "on/off" ) {
-      $n = intval ( substr ( $s, $pos, 2 ) );
-      $pos += 2;
-      $value = substr ( $s, $pos, $n );
-      $pos += $n;
+    global $flag_codes;
+    $len = strlen ( $s );
+
+    $pos = 0;
+    while ( $pos < $len ) {
+
+        $code = substr ( $s, $pos, 2 );
+        $pos += 2;
+        $prop = $flag_codes[$code];
+        $flag = $prop["flag"];
+        $value = "on";
+        $type = $prop["type"];
+
+        if ( $prop["type"] != "on/off" ) {
+            $n = intval ( substr ( $s, $pos, 2 ) );
+            $pos += 2;
+            $value = substr ( $s, $pos, $n );
+            $pos += $n;
+        }
+        $flags[$flag] = $value;
     }
-    $flags[$flag] = $value;
-  }
-  return $flags;
+    return $flags;
 }
 
 function default_flags () 
 {
-  global $flag_table;
-
-  if ( isset ( $_GET["F"] ) )
-    $F = $_GET["F"];
-  if ( isset ( $_GET["nic"] ) )
-    $nic = $_GET["nic"];
-  if ( isset ( $_GET["nicfile"] ) )
-    $nicfile = $_GET["nicfile"];
-  if ( isset ( $_GET["ofmt"] ) )
-    $ofmt = $_GET["ofmt"];
-  if ( isset ( $_GET["arch"] ) )
-    $arch = $_GET["arch"];
-
-  $flags = array ();
-  if ( isset ( $F ) && $F != "ignore" && isset ( $arch ) &&
-       ( ( isset ( $nic ) && isset ( $ofmt ) ) || isset ( $nicfile ) ) ) {
-    $vkey = value_key($ofmt);
+    global $flag_table;
 
-    reset($flag_table);
-    while ( list ( $key, $props ) = each ( $flag_table ) ) {
+    if ( isset ( $_GET["F"] ) )
+        $F = $_GET["F"];
 
-      $farch = isset ( $props["arch"] ) ? $props["arch"] : "";
+    if ( isset ( $_GET["nic"] ) )
+        $nic = $_GET["nic"];
 
-      if ( isset ( $arch ) && ( $farch == "all" || $farch == $arch ) ) {
-       $flag = $props["flag"];
-       $type = $props["type"];
-       $value = ( isset ( $props[$vkey] ) ? $props[$vkey] : $props["value"] );
-       if ( $type != "on/off" || $value == "on" ) {
-         $flags[$flag] = $value;
-       }
-      }
+    if ( isset ( $_GET["nicfile"] ) )
+        $nicfile = $_GET["nicfile"];
+
+    if ( isset ( $_GET["ofmt"] ) )
+        $ofmt = $_GET["ofmt"];
+
+    if ( isset ( $_GET["arch"] ) )
+        $arch = $_GET["arch"];
+
+    $flags = array ();
+    if ( isset ( $F ) && $F != "ignore" && isset ( $arch ) &&
+         ( ( isset ( $nic ) && isset ( $ofmt ) ) || isset ( $nicfile ) ) ) {
+        $vkey = value_key($ofmt);
+
+        reset($flag_table);
+        while ( list ( $key, $props ) = each ( $flag_table ) ) {
+
+            $farch = isset ( $props["arch"] ) ? $props["arch"] : "";
+
+            if ( isset ( $arch ) && ( $farch == "all" || $farch == $arch ) ) {
+
+                $flag = $props["flag"];
+                $type = $props["type"];
+                $value = ( isset ( $props[$vkey] ) ? $props[$vkey] : $props["value"] );
+                if ( $type != "on/off" || $value == "on" ) {
+                    $flags[$flag] = $value;
+                }
+            }
+        }
+        $flags = decode_flags_into ( $F, $flags );
     }
-    $flags = decode_flags_into ( $F, $flags );
-  }
-  return $flags;
+    return $flags;
 }
 
 function get_flags () 
 {
-  global $flag_table;
-  $flags = default_flags();
+    global $flag_table;
+    $flags = default_flags();
+
+    // echo "<p>Flags in get_flags(): </p>";
+    // show_flags($flags);
 
-  // echo "<p>Flags in get_flags(): </p>";
-  // show_flags($flags);
+    reset ( $flag_table );
+    while ( list ( $key, $props ) = each ( $flag_table ) ) {
 
-  reset ( $flag_table );
-  while ( list ( $key, $props ) = each ( $flag_table ) ) {
-    $flag = $props["flag"];
-    if ( isset ( $_GET["$flag"] ) ) {
-      $flags[$flag] = $_GET["$flag"];
+        $flag = $props["flag"];
+        if ( isset ( $_GET["$flag"] ) ) {
+            $flags[$flag] = $_GET["$flag"];
+        }
     }
-  }
-  return $flags;
+    return $flags;
 }
 
-function echo_flags ( $flags ) {
+function echo_flags ( $flags )
+{
+    global $version;
+    global $flag_table;
 
-  global $version;
-  global $flag_table;
+    $arch = isset ( $_GET['arch'] ) ? $_GET['arch'] : '';
 
-  $arch = isset ( $_GET['arch'] ) ? $_GET['arch'] : '';
+    echo "<table>\n";
 
-  echo "<table>\n";
+    reset($flag_table);
+    while ( list ( $index, $props ) = each ( $flag_table ) ) {
 
-  reset($flag_table);
-  while ( list ( $index, $props ) = each ( $flag_table ) ) {
+        $farch = isset ( $props["arch"] ) ? $props["arch"] : "";
 
-    $farch = isset ( $props["arch"] ) ? $props["arch"] : "";
+        // Hide parameters from users that should not be changed.
 
-    // Hide parameters from users that should not be changed.
+        $hide_from_user = isset ( $props["hide_from_user"] ) ? $props["hide_from_user"] : "no";
 
-    $hide_from_user = isset ( $props["hide_from_user"] ) ? $props["hide_from_user"] : "no";
+        $flag = $props["flag"];
+        $type = $props["type"];
 
-    $flag = $props["flag"];
-    $type = $props["type"];
+        $value = isset ( $flags[$flag] ) ? $flags[$flag] : '';
 
-    $value = isset ( $flags[$flag] ) ? $flags[$flag] : '';
+        if ( $hide_from_user == "yes" ) {
 
-    if ( $hide_from_user == "yes" ) {
-      // Hidden flags cannot not be set by the user.  We use hidden form
-      // fields to keep them at their default values.
-      if ( $type != "header" && ( $farch == "all" || $farch == $arch ) ) {
-        echo hidden ( $flag, $value );
-      }
-    } else {
-      if ( $type == "header" || $farch == "all" || $farch == $arch ) {
+            // Hidden flags cannot not be set by the user.  We use hidden form
+            // fields to keep them at their default values.
+            if ( $type != "header" && ( $farch == "all" || $farch == $arch ) ) {
+                echo hidden ( $flag, $value );
+            }
+
+        } else {
+
+            if ( $type == "header" || $farch == "all" || $farch == $arch ) {
       
-        if ( $type == "header" ) {
+                if ( $type == "header" ) {
   
-          $label = $props["label"];
-       echo "<td colspan=2><hr><h3>$label</h3><hr></td>";
+                    $label = $props["label"];
+                    echo "<td colspan=2><hr><h3>$label</h3><hr></td>";
   
-        } elseif ($type == "on/off" ) {
+                } else if ($type == "on/off" ) {
   
-       echo "<td>", checkbox($flag, $value), "</td><td><b>$flag</b></td>";
+                    echo "<td>", checkbox($flag, $value), "</td><td><b>$flag</b></td>";
   
-        } else {       // no checkbox
+                } else {        // no checkbox
   
-       echo "<td>&nbsp;</td><td><b>$flag: </b>";
+                    echo "<td>&nbsp;</td><td><b>$flag: </b>";
   
-       if ($type == "choice" ) {
-         $options = $props["options"];
-         echo menubox($flag, $options, $value);
-       }
+                    if ($type == "choice" ) {
+                        $options = $props["options"];
+                        echo menubox($flag, $options, $value);
+                    }
   
-       else {
-         echo textbox($flag, $value, ($type == "integer" ? 5 : 25));
-       }
+                    else {
+                        echo textbox($flag, $value, ($type == "integer" ? 5 : 25));
+                    }
   
-       echo "</td>";
+                    echo "</td>";
   
-        }
+                }
   
-        echo "</tr>\n";
+                echo "</tr>\n";
   
-        if ( $type != "header" ) {
-       echo "<tr><td>&nbsp;</td>";
-       echo "<td>\n";
-       include "doc-$version/$flag.html";
-       echo "\n</td></tr>\n";
+                if ( $type != "header" ) {
+
+                    echo "<tr><td>&nbsp;</td>";
+                    echo "<td>\n";
+                    include_once "doc/$flag.html";
+                    echo "\n</td></tr>\n";
+
+                }
+            }
         }
-      }
     }
-  }
-  echo "</table>";
+    echo "</table>";
 }
 
-function pprint_flag ( $key, $value ) {
-
-  global $flag_table;
-
-  $type = $flag_table[$key]["type"];
-  $s = "";
-
-  if ( $type == "on/off" && $value == "on" ) {
-    $s = "#define $key";
-  } elseif ( $type == "on/off" && $value != "on" ) {
-    $s = "#undef $key";
-  } elseif ( $type == "string" ) {
-    if ( $value != "" ) $s = ( "#define $key \"" . cleanstring($value) . "\"" );
-  } elseif ($type == "qstring" ) {
-    if ( $value != "" ) $s = ( "#define $key \\\"" . cleanstring($value) . "\\\"" );
-  } else {
-    $s = "#define $key " . cleanstring($value);
-  }
-  //  print ($s . "<br>" );
+function pprint_flag ( $key, $value )
+{
+    global $flag_table;
+
+    $type = $flag_table[$key]["type"];
+    $s = "";
+
+    if ( $type == "on/off" && $value == "on" ) {
+        $s = "#define $key";
+    } else if ( $type == "on/off" && $value != "on" ) {
+        $s = "#undef $key";
+    } else if ( $type == "string" ) {
+        if ( $value != "" ) $s = ( "#define $key \"" . cleanstring($value) . "\"" );
+    } else if ($type == "qstring" ) {
+        if ( $value != "" ) $s = ( "#define $key \\\"" . cleanstring($value) . "\\\"" );
+    } else {
+        $s = "#define $key " . cleanstring($value);
+    }
+    // print ($s . "<br>" );
 
-  return $s;
+    return $s;
 }
 
 function pprint_flags ( $flags ) 
 {
-  $s = "";
-  reset ($flags);
-
-  while (list($key, $value) = each($flags)) {
-    $f = pprint_flag($key, $value);
-    if ($f != "" )
-      $s .= $f . " ";
-  }
-  return $s;
+    $s = "";
+    reset ($flags);
+
+    while (list($key, $value) = each($flags)) {
+        $f = pprint_flag($key, $value);
+        if ($f != "" )
+            $s .= $f . " ";
+    }
+    return $s;
 }
 
 function get_cfgsecs ()
 {
-  global $flag_table;
-  $cfgsecs = array ();
+    global $flag_table;
+    $cfgsecs = array ();
 
-  foreach ( $flag_table as $key => $props ) {
-    if ( isset ( $props['cfgsec'] ) ) {
-      $cfgsec = $props["cfgsec"];
-      $cfgsecs[$cfgsec] = $cfgsec;
+    foreach ( $flag_table as $key => $props ) {
+        if ( isset ( $props['cfgsec'] ) ) {
+            $cfgsec = $props["cfgsec"];
+            $cfgsecs[$cfgsec] = $cfgsec;
+        }
     }
-  }
-  return ( $cfgsecs );
+    return ( $cfgsecs );
 }
 
 function write_config_file ( $fname, $arch, $flags ) 
 {
-  global $flag_table;
+    global $flag_table;
 
-  $cfgsecs = get_cfgsecs ();
+    $cfgsecs = get_cfgsecs ();
 
-  $fp = fopen ( $fname, "wb" );
-  if ( $fp <= 0 ) {
-    die ( "Unable to open $fname file for output!" );
-  }
+    $fp = fopen ( $fname, "wb" );
+    if ( $fp <= 0 ) {
+        die ( "Unable to open $fname file for output!" );
+    }
 
-  foreach ( $cfgsecs as $cfgsec ) {
+    foreach ( $cfgsecs as $cfgsec ) {
 
-    fwrite ( $fp, "/* @BEGIN ${cfgsec}.h \n*/ \n\n" );
+        fwrite ( $fp, "/* @BEGIN ${cfgsec}.h \n*/ \n\n" );
 
-    foreach ( $flags as $key => $value ) {
+        foreach ( $flags as $key => $value ) {
 
-      // When the flag matches this section name, write it out
-      if ( $flag_table[$key]["cfgsec"] == $cfgsec ) {
-       fwrite ( $fp, pprint_flag ( $key, $value ) . "\n" );
-      }        
+            // When the flag matches this section name, write it out
+            if ( $flag_table[$key]["cfgsec"] == $cfgsec ) {
+                fwrite ( $fp, pprint_flag ( $key, $value ) . "\n" );
+            } 
 
+        }
+        fwrite ( $fp, "\n/* @END ${cfgsec}.h \n*/ \n\n" );
     }
-    fwrite ( $fp, "\n/* @END ${cfgsec}.h \n*/ \n\n" );
-  }
-  fclose($fp);
+    fclose($fp);
 }
 
-function cleanstring ($s) {
-  $len = strlen($s);
-  if ($len > 80) {
-    $s = substr ($s, 0, 80);
-  }
-  $s = trim($s);
-  $pos = 0;
-  $result = "";
-  while($pos < $len) {
-    $ltr = ord( ucfirst( $s[$pos]));
-    if ( ($ltr >= ord( "A" )) && ($ltr <= ord( "Z" )) || 
-         ($ltr >= ord( "0" )) && ($ltr <= ord( "9" )) || 
-         ($ltr == ord( "." )) && (strlen($result) > 0) ||
-         ($ltr == ord( "_" )) ||
-         ($ltr == ord( "+" )) ||
-         ($ltr == ord( ":" )) ||
-         ($ltr == ord( "/" )) ||
-        ($ltr == ord( "-" )) ) {
-      $result .= $s[$pos];
+function cleanstring ($s) 
+{
+    $len = strlen($s);
+    if ($len > 80) {
+        $s = substr ($s, 0, 80);
+    }
+    $s = trim($s);
+    $pos = 0;
+    $result = "";
+    while($pos < $len) {
+        $ltr = ord( ucfirst( $s[$pos]));
+        if ( ($ltr >= ord( "A" )) && ($ltr <= ord( "Z" )) || 
+             ($ltr >= ord( "0" )) && ($ltr <= ord( "9" )) || 
+             ($ltr == ord( "." )) && (strlen($result) > 0) ||
+             ($ltr == ord( "_" )) ||
+             ($ltr == ord( "+" )) ||
+             ($ltr == ord( ":" )) ||
+             ($ltr == ord( "/" )) ||
+             ($ltr == ord( "-" )) ) {
+            $result .= $s[$pos];
+        }
+        $pos++;
     }
-    $pos++;
-  }
-  return $result;
+    return $result;
 }
 
 function copydir ( $src, $dst ) 
 {
-  if ( !mkdir ( $dst, 0700 ) ) {
-    die ( "mkdir failed" );
-  }
-
-  $dp = opendir ( $src );
-  if ( $dp < 1 ) {
-    die ( "opendir failed" );
-  }
-
-  while ( $file = readdir ( $dp ) ) {
-    if ( is_dir ( "$src/$file" ) ) {
-      if ($file[0] != "." ) {
-       copydir ( "$src/$file", "$dst/$file" );
-      }
-    } else {
-      copy ( "$src/$file", "$dst/$file" );
+    if ( !mkdir ( $dst, 0700 ) ) {
+        die ( "mkdir failed" );
+    }
+
+    $dp = opendir ( $src );
+    if ( $dp < 1 ) {
+        die ( "opendir failed" );
     }
-  }
-  closedir ( $dp );
+
+    while ( $file = readdir ( $dp ) ) {
+
+        if ( is_dir ( "$src/$file" ) ) {
+
+            if ($file[0] != "." ) {
+                copydir ( "$src/$file", "$dst/$file" );
+            }
+        } else {
+
+            copy ( "$src/$file", "$dst/$file" );
+        }
+    }
+    closedir ( $dp );
 }
 
 function mktempcopy ( $src, $dst ) 
 {
-  if ( $src[0] != "/" ) {
-    $src = dirname($_SERVER['SCRIPT_FILENAME']) . "/" . $src;
-  }
-
-  $dir = tempnam ( $dst, "ROM" );
-  unlink( $dir );
+    if ( $src[0] != "/" ) {
+        $src = dirname($_SERVER['SCRIPT_FILENAME']) . "/" . $src;
+    }
 
-  //  copydir ( $src, $dir );
+    $dir = tempnam ( $dst, "ROM" );
+    unlink( $dir );
 
-  exec ( "/bin/cp -a '$src' '$dir' 2>&1", $cpytxt, $status );  
+    //  copydir ( $src, $dir );
 
-  if ( $status != 0 ) {
-    die ( "src directory copy failed!" );
-  }
+    exec ( "/bin/cp -a '$src' '$dir' 2>&1", $cpytxt, $status );  
 
-  return ( $dir );
+    if ( $status != 0 ) {
+        die ( "src directory copy failed!" );
+    }
+    return ( $dir );
 }
 
 function deltempdir ($dir) 
 {
-  $dp = opendir ( $dir );
-  if ($dp < 1) {
-    die ( "opendir failed" );
-  }
+    $dp = opendir ( $dir );
+    if ($dp < 1) {
+        die ( "opendir failed" );
+    }
 
-  while ( $file = readdir ( $dp ) ) {
+    while ( $file = readdir ( $dp ) ) {
 
-    if ( is_dir ( "$dir/$file" ) ) {
-      if ($file[0] != "." ) {
-       deltempdir ( "$dir/$file" );
-      }
-    } else {
-      unlink( "$dir/$file" );
+        if ( is_dir ( "$dir/$file" ) ) {
+            if ($file[0] != "." ) {
+                deltempdir ( "$dir/$file" );
+            }
+        } else {
+            unlink( "$dir/$file" );
+        }
     }
-  }
-  closedir ( $dp );
+    closedir ( $dp );
 
-  if ( !rmdir ( "$dir" ) ) {
-    die ( "rmdir failed" );
-  }
+    if ( !rmdir ( "$dir" ) ) {
+        die ( "rmdir failed" );
+    }
 }
 
 function debug_info () 
 {
+    $F = $_GET['F'];
+    $nic = $_GET['nic'];
+    $ofmt = $_GET['ofmt'];
 
-  $F = $_GET['F'];
-  $nic = $_GET['nic'];
-  $ofmt = $_GET['ofmt'];
-
-  $s = "F=\"" . htmlentities($F) . "\"<br>\n";
-  $s .= "nic=\"" . htmlentities($nic) . "\"<br>\n";
-  $s .= "ofmt=\"" . htmlentities($ofmt) . "\"<br>\n";
+    $s = "F=\"" . htmlentities($F) . "\"<br>\n";
+    $s .= "nic=\"" . htmlentities($nic) . "\"<br>\n";
+    $s .= "ofmt=\"" . htmlentities($ofmt) . "\"<br>\n";
 
-  return $s;
+    return $s;
 }
 
 function showflags ($flags) 
 {
-   reset($flags);
-   while (list ($key, $flag) = each ($flags)) {
-     print ( "flag[".$key."]="."\"$flag\""."<br>" );
-   }
+    reset($flags);
+    while (list ($key, $flag) = each ($flags)) {
+        print ( "flag[".$key."]="."\"$flag\""."<br>" );
+    }
 }
 
 function dump_flag_table () 
 {
-  global $flag_table;
-  reset ( $flag_table );
+    global $flag_table;
+    reset ( $flag_table );
 
-  while ( list ( $key, $props ) = each ( $flag_table ) ) {
-    print ( "flag_table[" . $key . "] = " . "<br>" );
+    while ( list ( $key, $props ) = each ( $flag_table ) ) {
+        print ( "flag_table[" . $key . "] = " . "<br>" );
 
-    while ( list ( $key2, $props2 ) = each ( $props ) ) {
-      print ( "&nbsp;&nbsp;&nbsp;" . $key2 . " = " . $props2 . "<br>" );
+        while ( list ( $key2, $props2 ) = each ( $props ) ) {
+            print ( "&nbsp;&nbsp;&nbsp;" . $key2 . " = " . $props2 . "<br>" );
+        }
     }
-
-  }
 }
 
 function dump_flag_table_keys_sorted () 
 {
-  global $flag_table;
-  reset ( $flag_table );
-  ksort ( $flag_table );
+    global $flag_table;
+    reset ( $flag_table );
+    ksort ( $flag_table );
 
-  while ( list ( $key, $props ) = each ( $flag_table ) ) {
-    print ( $key . ".html<br>" );
-  }
+    while ( list ( $key, $props ) = each ( $flag_table ) ) {
+        print ( $key . ".html<br>" );
+    }
 }
 
 function dump_flag_codes () 
 {
-  global $flag_codes;
-  reset ( $flag_codes );
+    global $flag_codes;
+    reset ( $flag_codes );
 
-  while ( list ( $key, $props ) = each ( $flag_codes ) ) {
-    print ( "flag_codes[" . $key . "] = " . "<br>" );
+    while ( list ( $key, $props ) = each ( $flag_codes ) ) {
+        print ( "flag_codes[" . $key . "] = " . "<br>" );
 
-    while ( list ( $key2, $props2 ) = each ( $props ) ) {
-      print ( "&nbsp;&nbsp;&nbsp;" . $key2 . " = " . $props2 . "<br>" );
+        while ( list ( $key2, $props2 ) = each ( $props ) ) {
+            print ( "&nbsp;&nbsp;&nbsp;" . $key2 . " = " . $props2 . "<br>" );
+        }
     }
-  }
 }
 
 function curPageURL () 
 {
-  $isHTTPS = ( isset ( $_SERVER["HTTPS"] ) && $_SERVER["HTTPS"] == "on" );
+    $isHTTPS = ( isset ( $_SERVER["HTTPS"] ) && $_SERVER["HTTPS"] == "on" );
+
+    $port = ( isset($_SERVER["SERVER_PORT"] ) && 
+          ( ( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || 
+            ( $isHTTPS  && $_SERVER["SERVER_PORT"] != "443" ) ) );
+
+    $port = ( $port ) ? ':' . $_SERVER["SERVER_PORT"] : '';
+
+    $url = ( $isHTTPS ? 'https://' : 'http://' ) .
+        $_SERVER["SERVER_NAME"] . $port . $_SERVER["REQUEST_URI"];
+
+    return $url;
+}
+
+function curDirURL () 
+{
+       $dir = dirname ( $_SERVER['PHP_SELF'] );
 
-  $port = ( isset($_SERVER["SERVER_PORT"] ) && 
-           ( ( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || 
-             ( $isHTTPS  && $_SERVER["SERVER_PORT"] != "443" ) ) );
+       if ( $dir == "." || $dir == "/" ) {
+               $dir = "";
+       }
+
+       $isHTTPS = ( isset ( $_SERVER["HTTPS"] ) && $_SERVER["HTTPS"] == "on" );
+       $port = ( isset($_SERVER["SERVER_PORT"] ) && 
+                         ( ( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || 
+                               ( $isHTTPS  && $_SERVER["SERVER_PORT"] != "443" ) ) );
 
-  $port = ( $port ) ? ':' . $_SERVER["SERVER_PORT"] : '';
+       $port = ( $port ) ? ':' . $_SERVER["SERVER_PORT"] : '';
 
-  $url = ( $isHTTPS ? 'https://' : 'http://' ) .
-         $_SERVER["SERVER_NAME"] . $port.$_SERVER["REQUEST_URI"];
+       $dest = ( $isHTTPS ? 'https://' : 'http://' ) .
+               $_SERVER["SERVER_NAME"] . $dir . "/";
 
-  return $url;
+       return $dest;
 }
 
+// For emacs:
+// Local variables:
+//  c-basic-offset: 4
+//  c-indent-level: 4
+//  tab-width: 4
+// End:
+
 ?>
similarity index 100%
rename from doc-git/COMCONSOLE.html
rename to doc/COMCONSOLE.html
similarity index 100%
rename from doc-git/COMDATA.html
rename to doc/COMDATA.html
similarity index 100%
rename from doc-git/COMPARITY.html
rename to doc/COMPARITY.html
similarity index 100%
rename from doc-git/COMSPEED.html
rename to doc/COMSPEED.html
similarity index 100%
rename from doc-git/COMSTOP.html
rename to doc/COMSTOP.html
similarity index 100%
rename from doc-git/CONFIG_CMD.html
rename to doc/CONFIG_CMD.html
similarity index 100%
rename from doc-git/DHCP_CMD.html
rename to doc/DHCP_CMD.html
similarity index 100%
rename from doc-git/IFMGMT_CMD.html
rename to doc/IFMGMT_CMD.html
similarity index 100%
rename from doc-git/IMAGE_CMD.html
rename to doc/IMAGE_CMD.html
similarity index 100%
rename from doc-git/IMAGE_ELF.html
rename to doc/IMAGE_ELF.html
similarity index 100%
rename from doc-git/IMAGE_NBI.html
rename to doc/IMAGE_NBI.html
similarity index 100%
rename from doc-git/IMAGE_PXE.html
rename to doc/IMAGE_PXE.html
similarity index 100%
rename from doc-git/NVO_CMD.html
rename to doc/NVO_CMD.html
similarity index 100%
rename from doc-git/ROUTE_CMD.html
rename to doc/ROUTE_CMD.html
index 602cd00..985e0af 100644 (file)
 
 $flag_table = array (
 
-// Begin Console Options:
-
+       // Begin Console Options:
+       
        "HDR_CONSOLE_OPTIONS"
        => array ( 
-                 "flag" => "HDR_CONSOLE_OPTIONS",
-                 "type" => "header",
-                 "label" => "Console Options" 
-                 ),
-
+          "flag" => "HDR_CONSOLE_OPTIONS",
+          "type" => "header",
+          "label" => "Console Options" 
+               ),
+       
        "CONSOLE_FIRMWARE"
        => array (
-                 "flag" => "CONSOLE_FIRMWARE",
-                 "arch" => "all",
-                 "type" => "on/off",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "CONSOLE_FIRMWARE",
+          "arch" => "all",
+          "type" => "on/off",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "CONSOLE_SERIAL"
        => array (
-                 "flag" => "CONSOLE_SERIAL",
-                 "arch" => "all",
-                 "type" => "on/off",
-                 "value" => "off",
-                 "cfgsec" => "general"
-                 ),
-       
-// End Console Options
-
-// Begin Timer Options:
-
+          "flag" => "CONSOLE_SERIAL",
+          "arch" => "all",
+          "type" => "on/off",
+          "value" => "off",
+          "cfgsec" => "general"
+          ),
+       
+       // End Console Options
+       
+       // Begin Timer Options:
+       
        "HDR_TIMER_OPTIONS"
        => array ( 
-                 "flag" => "HDR_TIMER_OPTIONS",
-                 "hide_from_user" => "yes",  /* Hide even the header */
-                 "type" => "header",
-                 "label" => "Timer Options" 
-                 ),
-
+          "flag" => "HDR_TIMER_OPTIONS",
+          "hide_from_user" => "yes",  // Hide even the header
+          "type" => "header",
+          "label" => "Timer Options" 
+               ),
+       
        "TIMER_BIOS"
        => array (
-                 "flag" => "TIMER_BIOS",
-                 "arch" => "all",
-                 "type" => "on/off",
-                 "value" => "on",
-                 "hide_from_user" => "yes",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "TIMER_BIOS",
+          "arch" => "all",
+          "type" => "on/off",
+          "value" => "on",
+          "hide_from_user" => "yes",
+          "cfgsec" => "general"
+          ),
+       
        "TIMER_RDTSC"
        => array (
-                 "flag" => "TIMER_RDTSC",
-                 "arch" => "all",
-                 "type" => "on/off",
-                 "value" => "on",
-                 "hide_from_user" => "yes",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "TIMER_RDTSC",
+          "arch" => "all",
+          "type" => "on/off",
+          "value" => "on",
+          "hide_from_user" => "yes",
+          "cfgsec" => "general"
+          ),
+       
        "BANNER_TIMEOUT"
        => array (
-                 "flag" => "BANNER_TIMEOUT",
-                 "arch" => "all",
-                 "type" => "integer",
-                 "value" => "20",
-                 "cfgsec" => "general"
-                 ),
-
-// End Timer Options
-
-// Begin Network Protocol Options:
-
+          "flag" => "BANNER_TIMEOUT",
+          "arch" => "all",
+          "type" => "integer",
+          "value" => "20",
+          "cfgsec" => "general"
+          ),
+       
+       // End Timer Options
+       
+       // Begin Network Protocol Options:
+       
        "HDR_NETWORK_PROTOCOL_OPTIONS"
        => array ( 
-                 "flag" => "HDR_NETWORK_PROTOCOL_OPTIONS",
-                 "hide_from_user" => "yes",  /* Hide even the header */
-                 "type" => "header",
-                 "label" => "Network Protocol Options" 
-                 ),
-
+          "flag" => "HDR_NETWORK_PROTOCOL_OPTIONS",
+          "hide_from_user" => "yes",  // Hide even the header
+          "type" => "header",
+          "label" => "Network Protocol Options" 
+               ),
+       
        "NET_PROTO_IPV4"
        => array (
-                 "flag" => "NET_PROTO_IPV4",
-                 "arch" => "all",
-                 "type" => "on/off",
-                 "value" => "on",
-                 "hide_from_user" => "yes",
-                 "cfgsec" => "general"
-                 ),
-
-// End Network Protocol Options
-
-// Begin Serial Port configuration
-
+          "flag" => "NET_PROTO_IPV4",
+          "arch" => "all",
+          "type" => "on/off",
+          "value" => "on",
+          "hide_from_user" => "yes",
+          "cfgsec" => "general"
+          ),
+       
+       // End Network Protocol Options
+       
+       // Begin Serial Port configuration
+       
        "HDR_SERIAL_PORT_OPTIONS"
        => array ( 
-                 "flag" => "HDR_SERIAL_PORT_OPTIONS",
-                 "type" => "header",
-                 "label" => "Serial Port Options" 
-                 ),
-
+          "flag" => "HDR_SERIAL_PORT_OPTIONS",
+          "type" => "header",
+          "label" => "Serial Port Options" 
+               ),
+       
        "COMCONSOLE"
        => array ( 
-                 "flag" => "COMCONSOLE",
-                 "arch" => "all",
-                 "type" => "integer", // usually hex, e.g. 0x378
-                 "value" => "0x3F8",
-                 "cfgsec" => "serial"
-                 ),
-
-        "COMPRESERVE"
+          "flag" => "COMCONSOLE",
+          "arch" => "all",
+          "type" => "integer", // usually hex, e.g. 0x378
+          "value" => "0x3F8",
+          "cfgsec" => "serial"
+               ),
+       
+       "COMPRESERVE"
        => array (
-                 "flag" => "COMPRESERVE",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "off",
-                 "cfgsec" => "serial"
-                 ),
-
+          "flag" => "COMPRESERVE",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "off",
+          "cfgsec" => "serial"
+          ),
+       
        "COMSPEED"
        => array (
-                 "flag" => "COMSPEED",
-                 "type" => "integer",
-                 "arch" => "all",
-                 "value" => "9600",
-                 "cfgsec" => "serial"
-                 ),
-
+          "flag" => "COMSPEED",
+          "type" => "integer",
+          "arch" => "all",
+          "value" => "9600",
+          "cfgsec" => "serial"
+          ),
+       
        "COMDATA"
        => array (
-                 "flag" => "COMDATA",
-                 "type" => "integer",
-                 "arch" => "all",
-                 "value" => "8",
-                 "cfgsec" => "serial"
-                 ),
-
+          "flag" => "COMDATA",
+          "type" => "integer",
+          "arch" => "all",
+          "value" => "8",
+          "cfgsec" => "serial"
+          ),
+       
        "COMPARITY"
        => array (
-                 "flag" => "COMPARITY",
-                 "type" => "integer",
-                 "arch" => "all",
-                 "value" => "0",
-                 "cfgsec" => "serial"
-                 ),
-
+          "flag" => "COMPARITY",
+          "type" => "integer",
+          "arch" => "all",
+          "value" => "0",
+          "cfgsec" => "serial"
+          ),
+       
        "COMSTOP"
        => array (
-                 "flag" => "COMSTOP",
-                 "type" => "integer",
-                 "arch" => "all",
-                 "value" => "1",
-                 "cfgsec" => "serial"
-                 ),
-
-// End Serial Options
-
-// Begin Download Protocols
-
+          "flag" => "COMSTOP",
+          "type" => "integer",
+          "arch" => "all",
+          "value" => "1",
+          "cfgsec" => "serial"
+          ),
+       
+       // End Serial Options
+       
+       // Begin Download Protocols
+       
        "HDR_DOWNLOAD_PROTOCOLS"
        => array ( 
-                 "flag" => "HDR_DOWNLOAD_PROTOCOLS",
-                 "type" => "header",
-                 "label" => "Download Protocols"
-                 ),
-
+          "flag" => "HDR_DOWNLOAD_PROTOCOLS",
+          "type" => "header",
+          "label" => "Download Protocols"
+               ),
+       
        "DOWNLOAD_PROTO_TFTP"
        => array (
-                 "flag" => "DOWNLOAD_PROTO_TFTP",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
+          "flag" => "DOWNLOAD_PROTO_TFTP",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
        
        "DOWNLOAD_PROTO_HTTP"
        => array (
-                 "flag" => "DOWNLOAD_PROTO_HTTP",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "DOWNLOAD_PROTO_HTTP",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "DOWNLOAD_PROTO_FTP"
        => array (
-                 "flag" => "DOWNLOAD_PROTO_FTP",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "off",
-                 "cfgsec" => "general"
-                 ),
-
-// End Download Protocols
-
-// Begin Name resolution modules
-
+          "flag" => "DOWNLOAD_PROTO_FTP",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "off",
+          "cfgsec" => "general"
+          ),
+       
+       // End Download Protocols
+       
+       // Begin Name resolution modules
+       
        "HDR_NAME_RESOLUTION_MODULES"
        => array (
-                 "flag" => "HDR_NAME_RESOLUTION_MODULES",
-                 "type" => "header",
-                 "label" => "Name Resolution Modules"
-                 ),
+          "flag" => "HDR_NAME_RESOLUTION_MODULES",
+          "type" => "header",
+          "label" => "Name Resolution Modules"
+          ),
        
        "DNS_RESOLVER"
        => array ( 
-                 "flag" => "DNS_RESOLVER",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
-//     "NMB_RESOLVER"
-//     => array (
-//               "flag" => "NMB_RESOLVER",
-//               "type" => "on/off",
-//               "arch" => "all",
-//               "value" => "off",
-//               "cfgsec" => "general"
-//               ),
-
-// End Name resolution modules
-
-// Begin Image types
-
+          "flag" => "DNS_RESOLVER",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+               ),
+       
+       //      "NMB_RESOLVER"
+       //      => array (
+       //                "flag" => "NMB_RESOLVER",
+       //                "type" => "on/off",
+       //                "arch" => "all",
+       //                "value" => "off",
+       //                "cfgsec" => "general"
+       //                ),
+       
+       // End Name resolution modules
+       
+       // Begin Image types
+       
        "HDR_IMAGE_TYPES"
        => array (
-                 "flag" => "HDR_IMAGE_TYPES",
-                 "type" => "header",
-                 "label" => "Image Types",
-                 ),
-
-       "IMAGE_ELF"
-       => array (
-                 "flag" => "IMAGE_ELF",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "HDR_IMAGE_TYPES",
+          "type" => "header",
+          "label" => "Image Types",
+          ),
+       
+       "IMAGE_ELF"
+       => array (
+          "flag" => "IMAGE_ELF",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "IMAGE_NBI"
        => array ( 
-                 "flag" => "IMAGE_NBI",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "IMAGE_NBI",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+               ),
+       
        "IMAGE_MULTIBOOT"
        => array (
-                 "flag" => "IMAGE_MULTIBOOT",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "IMAGE_MULTIBOOT",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "IMAGE_PXE"
        => array (
-                 "flag" => "IMAGE_PXE",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "IMAGE_PXE",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "IMAGE_SCRIPT"
        => array (
-                 "flag" => "IMAGE_SCRIPT",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "IMAGE_SCRIPT",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "IMAGE_BZIMAGE"
        => array (
-                 "flag" => "IMAGE_BZIMAGE",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
-// End Image types
-
-// Begin Command-line commands to include
-
+          "flag" => "IMAGE_BZIMAGE",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
+       // End Image types
+       
+       // Begin Command-line commands to include
+       
        "HDR_COMMAND_LINE_OPTIONS"
        => array (
-                 "flag" => "HDR_COMMAND_LINE_OPTIONS",
-                 "type" => "header",
-                 "label" => "Command Line Options",
-                 ),
-
+          "flag" => "HDR_COMMAND_LINE_OPTIONS",
+          "type" => "header",
+          "label" => "Command Line Options",
+          ),
+       
        "IMAGE_CMD"
        => array (
-                 "flag" => "IMAGE_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "IMAGE_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "AUTOBOOT_CMD"
-        => array (
-                  "flag" => "AUTOBOOT_CMD",
-                  "type" => "on/off",
-                  "arch" => "all",
-                  "value" => "on",
-                  "cfgsec" => "general"
-                  ),
-
+       => array (
+          "flag" => "AUTOBOOT_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "NVO_CMD"
        => array (
-                 "flag" => "NVO_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "NVO_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "CONFIG_CMD"
        => array (
-                 "flag" => "CONFIG_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "CONFIG_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "IFMGMT_CMD"
        => array (
-                 "flag" => "IFMGMT_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "IFMGMT_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "ROUTE_CMD"
        => array (
-                 "flag" => "ROUTE_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-
+          "flag" => "ROUTE_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "DHCP_CMD"
        => array ( 
-                 "flag" => "DHCP_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
+          "flag" => "DHCP_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+               ),
        
        "SANBOOT_CMD"
        => array ( 
-                 "flag" => "SANBOOT_CMD",
-                 "type" => "on/off",
-                 "arch" => "all",
-                 "value" => "on",
-                 "cfgsec" => "general"
-                 ),
-       
-// End Command-line commands to include
-
+          "flag" => "SANBOOT_CMD",
+          "type" => "on/off",
+          "arch" => "all",
+          "value" => "on",
+          "cfgsec" => "general"
+               ),
+       
+       // End Command-line commands to include
+       
 );
 
+$flag_codes = array ();
+
+function init_flag_tables () 
+{
+    global $flag_table;
+
+    reset($flag_table);
+    $i = 1;
+    while ( list ( $key, $props ) = each ( $flag_table ) ) {
+       $is = ( string ) $i;
+
+       if ( $i < 10 )
+           $is = "0" . $is;
+
+        $props["code"] = $is;
+       $props["flag"] = $key;
+
+        $flag_table[$key] = $props;
+       $flag_codes[$is] = $props;
+       
+       $i = $i + 1;
+    }
+}
+
+init_flag_tables ();
+
+// For emacs:
+// Local variables:
+//  c-basic-offset: 4
+//  c-indent-level: 4
+//  tab-width: 4
+// End:
+
 ?>
index 1a35ed9..3d2c337 100644 (file)
--- a/flags.php
+++ b/flags.php
@@ -1,17 +1,13 @@
 <?php // -*- Mode: PHP; -*-
 
-include "configinfo.php";
+require_once "configinfo.php";
 
 $nics = get_nics();
 $flags = get_flags();
 $nicfile = get_nicfile();
 $arch = cleanstring($_GET['arch']);
 
-$header_title = "ROM-o-matic.net: gpxe-$version ($arch)";
-$html_title   = "<a href=\"http://rom-o-matic.net/\">ROM-o-matic.net</a> for gPXE version $version ($arch)";
-$description = "Configuration flags";
-
-include $top_inc;
+include_once $top_inc;
 
 ?>
 
@@ -54,7 +50,7 @@ to return to the main page.
   </p>
 </li>
 
-<li>Choose ROM output format:
+<li>Choose output format:
 <? echo keys_menubox("ofmt", $ofmts, isset($_GET['ofmt']) ? $_GET['ofmt'] : "") ?>
 <p></p>
 </li>
@@ -73,4 +69,16 @@ to return to the main page.
 
 </form>
 
-<? include $bottom_inc ?>
+<? include_once $bottom_inc ?>
+
+<?
+
+// For emacs:
+//
+// Local variables:
+//  c-basic-offset: 4
+//  c-indent-level: 4
+//  tab-width: 4
+// End:
+
+?>
diff --git a/globals.php b/globals.php
new file mode 100644 (file)
index 0000000..f0a3650
--- /dev/null
@@ -0,0 +1,35 @@
+<?php // -*- Mode: PHP; -*-
+
+$ofmts = array  
+    ( "Floppy bootable Image (.dsk)" => "dsk",
+      "Binary ROM Image (.rom)" => "rom",
+      "ISO bootable image (.iso)" => "iso",
+      "ISO bootable image with legacy floppy emulation (.liso)" => "liso",
+      "LILO/GRUB/SYSLINUX loadable Linux kernel format (.lkrn)" => "lkrn",
+      "PXE bootstrap loader format Image (.pxe)" => "pxe",
+      "USB Keychain Disk Image (.usb)" => "usb",
+    );
+
+// Directory containing gPXE source code tree
+$src_dir = "../../src";
+
+// Compute gPXE version based on source tree
+$version = trim ( shell_exec ( "cd $src_dir; make version" ) );
+
+// Descriptive strings
+$header_title = "ROM-o-matic for gPXE $version";
+$html_title   = "ROM-o-matic for gPXE $version"; 
+$description  = "a dynamic gPXE image generator";
+
+// Filenames of files containing header and footer text
+$top_inc = "top.php";
+$bottom_inc = "bottom.php";
+
+// For emacs:
+// Local variables:
+//  c-basic-offset: 4
+//  c-indent-level: 4
+//  tab-width: 4
+// End:
+
+?>
index 7855053..ecda2fa 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,16 +1,13 @@
 <?php // -*- Mode: PHP; -*-
 
-  include "configinfo.php";
+  require_once "configinfo.php";
+
   $nics = get_nics();
   $flags = get_flags();
-  $encoded_flags = encode_flags($flags);
-
-  $header_title = "ROM-o-matic.net: for gPXE version $version";
-  $html_title   = "<a href=\"http://rom-o-matic.net/\">ROM-o-matic.net</a> for gPXE version $version";
-  $description  = "a dynamic gPXE and Etherboot image generator";
+  $encoded_flags = encode_flags ( $flags );
 
   // Begin html output
-  include $top_inc;
+  include_once $top_inc;
 
 ?>
 
   <input type="hidden" name="arch" value="<? echo (isset($_GET['arch']) ? cleanstring($_GET['arch']) : "i386")?>">
 
 <h3>
-ROM-o-matic.net dynamically generates gPXE and Etherboot ROM images.
+ROM-o-matic dynamically generates gPXE images.
 </h3>
 
-<h4>
-Supporting <? echo count($nics) ?> NIC variations and <? echo count($ofmts) ?> output formats.
-</h4>
-
-To create and download a gPXE ROM image:
+To create a gPXE image:
 
 <ol>
 
 <li>
 
-  Choose NIC/ROM type: <? echo keys_menubox("nic", $nics, isset($_GET['nic']) ? $_GET['nic'] : "") ?>
+  Choose output format: <? echo keys_menubox("ofmt", $ofmts, isset($_GET['ofmt']) ? $_GET['ofmt'] : "") ?>
+  <br><br>
+  
+</li>
+
+<li>
+
+  Choose NIC type: <? echo keys_menubox("nic", $nics, isset($_GET['nic']) ? $_GET['nic'] : "") ?>
   <br><br>
 
   PCI IDs for available NICs are documented
@@ -48,34 +48,20 @@ To create and download a gPXE ROM image:
 
 <li>
 
-  Choose ROM output format: <? echo keys_menubox("ofmt", $ofmts, isset($_GET['ofmt']) ? $_GET['ofmt'] : "") ?>
-  <br><br>
-  
-</li>
-
-<li>
-
-  (optional) To customize ROM configuration press: <input type="submit" name="A" value="Configure">
+  (optional) To customize image configuration: <input type="submit" name="A" value="Configure">
   <br><br>
 
 </li>
 
 <li>
 
-  To generate and download a ROM image press:  <input type="submit" name="A" value="Get ROM">
+  To generate and download an image: <input type="submit" name="A" value="Get ROM">
   <br><br>
   
 </li>
 
-<li>
-
-  Take a look at the <a href="../../README" target="_blank">README</a> for <? echo "gpxe-$version"; ?>
-  <br><br>
-
-</li>
-
 </ol>
 
 </form>
 
-<? include $bottom_inc ?>
+<? include_once $bottom_inc ?>
diff --git a/local-config.php b/local-config.php
deleted file mode 100644 (file)
index e69de29..0000000