summaryrefslogtreecommitdiffstats
path: root/qemu/roms/ipxe/contrib/rom-o-matic/build.php
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/ipxe/contrib/rom-o-matic/build.php')
-rw-r--r--qemu/roms/ipxe/contrib/rom-o-matic/build.php311
1 files changed, 0 insertions, 311 deletions
diff --git a/qemu/roms/ipxe/contrib/rom-o-matic/build.php b/qemu/roms/ipxe/contrib/rom-o-matic/build.php
deleted file mode 100644
index b2b5bb452..000000000
--- a/qemu/roms/ipxe/contrib/rom-o-matic/build.php
+++ /dev/null
@@ -1,311 +0,0 @@
-<?php // -*- Mode: PHP; -*-
-
-/**
- * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
- * Copyright (C) 2009 Entity Cyber, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-// Get utility functions and set globals
-require_once "utils.php";
-
-// Make sure at least $A (action) was supplied
-if ( ! isset ( $_POST['A'] ) ) {
-
- // Present user with form to customize build options
- require_once "customize-flags.php";
-
- exit ();
-
-// If user chose "Customize" option on form
-} else if ( $_POST['A'] == "Customize" ) {
-
- // Present user with form to customize build options
- require_once "customize-flags.php";
-
- exit ();
-
-// The following conditional includes all other cases except "Get Image"
-// particularly the explicit ($A == "Start Over") case
-} else if ( $_POST['A'] != "Get Image" ) {
-
- // Note that this method of redirections discards all the
- // configuration flags, which is intentional in this case.
-
- $dest = curDirURL ();
- header ( "Location: $dest" );
-
- // This next "echo" should normally not be seen, because
- // the "header" statement above should cause immediate
- // redirection but just in case...
-
- echo "Try this link: <a href=\"$dest\">$dest</a>";
-
- exit ();
-}
-
-// OK, we're going to try to use whatever options have been set
-// to build an image.
-
-// Make sure at least $nic was supplied
-if ( ! isset ( $_POST['nic'] ) ) {
- die ( "No NIC supplied!" );
-}
-if ( isset ( $nics[$_POST['nic']] ) ) {
- $nic = $nics[$_POST['nic']];
-} else {
- die ( "Invalid NIC \"${_POST['nic']}\" supplied!" );
-}
-
-// Fetch flags
-$flags = get_flags ();
-
-// Get requested format
-$ofmt = isset ( $_POST['ofmt'] ) ? $_POST['ofmt'] : "";
-$fmt_extension = isset ( $ofmts[$ofmt] ) ? $ofmts[$ofmt] : 'dsk';
-
-// Handle some special cases
-
-$pci_vendor_code = "";
-$pci_device_code = "";
-
-if ( $nic == 'undionly' && $fmt_extension == "pxe" ) {
-
- // undionly.pxe can't work because it unloads the PXE stack
- // that it needs to communicate with, so we set the extension
- // to .kpxe, which has a chance of working. The extension
- // .kkpxe is another option.
-
- $fmt_extension = "kpxe";
-
-} else if ( $fmt_extension == "rom" ) {
-
- if ( ! isset ( $_POST['pci_vendor_code'] )
- || ! isset ( $_POST['pci_device_code'] ) ) {
- die ( "rom output format selected but PCI code(s) missing!" );
- }
-
- $pci_vendor_code = $_POST['pci_vendor_code'];
- $pci_device_code = $_POST['pci_device_code'];
-
- if ( $pci_vendor_code == ""
- || $pci_device_code == "" ) {
- die ( "rom output format selected but PCI code(s) missing!" );
- }
-
- // Try to be forgiving of 0xAAAA format
- if ( strtolower ( substr ( $pci_vendor_code, 0, 2 ) ) == "0x"
- && strlen ( $pci_vendor_code ) == 6 ) {
- $pci_vendor_code = substr ( $pci_vendor_code, 2, 4 );
- }
- if ( strtolower ( substr ( $pci_device_code, 0, 2 ) ) == "0x"
- && strlen ( $pci_device_code ) == 6 ) {
- $pci_device_code = substr ( $pci_device_code, 2, 4 );
- }
-
- // concatenate the pci codes to get the $nic part of the
- // Make target
- $pci_codes = strtolower ( $pci_vendor_code . $pci_device_code );
-
- $nic = $pci_codes;
- if ( ! isset ( $roms[$pci_codes] ) ) {
- die ( "Sorry, no network driver supports PCI codes<br>"
- . "${_POST['pci_vendor_code']}:"
- . "${_POST['pci_device_code']}" );
- }
-} else if ( $fmt_extension != "rom"
- && ( $pci_vendor_code != "" || $pci_device_code != "" ) ) {
- die ( "'$fmt_extension' format was selected but PCI IDs were"
- . " also entered.<br>Did you mean to select 'rom' output format"
- . " instead?" );
-}
-
-/**
- * remove temporary build directory
- *
- * @return bool true if removal is successful, false otherwise
- */
-function rm_build_dir ()
-{
- global $build_dir;
- global $keep_build_dir;
-
- if ( $keep_build_dir !== true ) {
- rm_file_or_dir ( $build_dir );
- }
-}
-
-// Arrange for the build directory to always be removed on exit.
-$build_dir = "";
-$keep_build_dir = false;
-register_shutdown_function ( 'rm_build_dir' );
-
-// Make temporary copy of src directory
-$build_dir = mktempcopy ( "$src_dir", "/tmp", "MDCROM" );
-$config_dir = $build_dir . "/config";
-
-// Write config files with supplied flags
-write_ipxe_config_files ( $config_dir, $flags );
-
-// Handle a possible embedded script
-$emb_script_cmd = "";
-$embedded_script = isset ( $_POST['embedded_script'] ) ? $_POST['embedded_script'] : "";
-if ( $embedded_script != "" ) {
- $emb_script_path = "$build_dir" . "/script0.ipxe";
-
- if ( substr ( $embedded_script, 0, 5 ) != "#!ipxe" ) {
- $embedded_script = "#!ipxe\n" . $embedded_script;
- }
-
- // iPXE 0.9.7 doesn't like '\r\n" in the shebang...
- $embedded_script = str_replace ( "\r\n", "\n", $embedded_script );
-
- write_file_from_string ( $emb_script_path, $embedded_script );
- $emb_script_cmd = "EMBEDDED_IMAGE=${emb_script_path}";
-}
-
-// Make the requested image. $status is set to 0 on success
-$make_target = "bin/${nic}.${fmt_extension}";
-$gitversion = exec('git describe --always --abbrev=1 --match "" 2>/dev/null');
-if ($gitversion) {
- $gitversion = "GITVERSION=$gitversion";
-}
-
-$make_cmd = "make -C '$build_dir' '$make_target' $gitversion $emb_script_cmd 2>&1";
-
-exec ( $make_cmd, $maketxt, $status );
-
-// Uncomment the following section for debugging
-
-/**
-
-echo "<h2>build.php:</h2>";
-echo "<h3>Begin debugging output</h3>";
-
-//echo "<h3>\$_POST variables</h3>";
-//echo "<pre>"; var_dump ( $_POST ); echo "</pre>";
-
-echo "<h3>Build options:</h3>";
-echo "<strong>Build directory is:</strong> $build_dir" . "<br><br>";
-echo "\$_POST['ofmt'] = " . "\"${_POST['ofmt']}\"" . "<br>";
-echo "\$_POST['nic'] = " . "\"${_POST['nic']}\"" . "<br>";
-echo "\$_POST['pci_vendor_code'] = " . "\"${_POST['pci_vendor_code']}\"" . "<br>";
-echo "\$_POST['pci_device_code'] = " . "\"${_POST['pci_device_code']}\"" . "<br>";
-
-echo "<h3>Flags:</h3>";
-show_flags ( $flags );
-
-if ( $embedded_script != "" ) {
- echo "<h3>Embedded script:</h3>";
- echo "<blockquote>"."<pre>";
- echo $embedded_script;
- echo "</pre>"."</blockquote>";
-}
-
-echo "<h3>Make output:</h3>";
-echo "Make command: " . $make_cmd . "<br>";
-echo "Build status = <? echo $status ?>" . "<br>";
-echo "<blockquote>"."<pre>";
-echo htmlentities ( implode ("\n", $maketxt ) );
-echo "</pre>"."</blockquote>";
-// Uncomment the next line if you want to keep the
-// build directory around for inspection after building.
-$keep_build_dir = true;
-die ( "<h3>End debugging output</h3>" );
-
-**/ // End debugging section
-
-// Send ROM to browser (with extreme prejudice)
-
-if ( $status == 0 ) {
-
- $fp = fopen("${build_dir}/${make_target}", "rb" );
- if ( $fp > 0 ) {
-
- $len = filesize ( "${build_dir}/${make_target}" );
- if ( $len > 0 ) {
-
- $buf = fread ( $fp, $len );
- fclose ( $fp );
-
- // Delete build directory as soon as it is not needed
- rm_build_dir ();
-
- $output_filename = preg_replace('/[^a-z0-9\+\.\-]/i', '', "ipxe-${version}-${nic}.${fmt_extension}");
-
- // Try to force IE to handle downloading right.
- Header ( "Cache-control: private");
- Header ( "Content-Type: application/x-octet-stream; " .
- "name=$output_filename");
- Header ( "Content-Disposition: attachment; " .
- "Filename=$output_filename");
- Header ( "Content-Location: $output_filename");
- Header ( "Content-Length: $len");
-
- echo $buf;
-
- exit ();
- }
- }
-}
-
-/*
- * If we reach this point, the build has failed, and we provide
- * debugging information for a potential bug report
- *
- */
-
-// Remove build directory
-rm_build_dir ();
-
-// Announce failure if $status from make was non-zero
-echo "<h2>Build failed. Status = " . $status . "</h2>";
-echo "<h2>build.php:</h2>";
-echo "<h3>Build options:</h3>";
-echo "<strong>Build directory is:</strong> $build_dir" . "<br><br>";
-echo "\$_POST['ofmt'] = " . "\"${_POST['ofmt']}\"" . "<br>";
-echo "\$_POST['nic'] = " . "\"${_POST['nic']}\"" . "<br>";
-echo "\$_POST['pci_vendor_code'] = " . "\"${_POST['pci_vendor_code']}\"" . "<br>";
-echo "\$_POST['pci_device_code'] = " . "\"${_POST['pci_device_code']}\"" . "<br>";
-
-echo "<h3>Flags:</h3>";
-show_flags ( $flags );
-
-if ( $embedded_script != "" ) {
- echo "<h3>Embedded script:</h3>";
- echo "<blockquote>"."<pre>";
- echo $embedded_script;
- echo "</pre>"."</blockquote>";
-}
-
-echo "<h3>Make output:</h3>";
-echo "Make command: " . $make_cmd . "<br>";
-echo "<blockquote>"."<pre>";
-echo htmlentities ( implode ("\n", $maketxt ) );
-echo "</pre>"."</blockquote>";
-
-echo "Please let us know that this happened, and paste the above output into your email message.<br>";
-
-include_once $bottom_inc;
-
-// For emacs:
-// Local variables:
-// c-basic-offset: 4
-// c-indent-level: 4
-// tab-width: 4
-// End:
-
-?>