summaryrefslogtreecommitdiff
path: root/win32/build/mkdist.php
diff options
context:
space:
mode:
Diffstat (limited to 'win32/build/mkdist.php')
-rw-r--r--win32/build/mkdist.php306
1 files changed, 0 insertions, 306 deletions
diff --git a/win32/build/mkdist.php b/win32/build/mkdist.php
deleted file mode 100644
index c7121bda15..0000000000
--- a/win32/build/mkdist.php
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php # $Id$
-/* piece together a windows binary distro */
-
-$build_dir = $argv[1];
-$phpdll = $argv[2];
-$sapi_targets = explode(" ", $argv[3]);
-$ext_targets = explode(" ", $argv[4]);
-$pecl_targets = explode(" ", $argv[5]);
-$snapshot_template = $argv[6];
-
-$is_debug = preg_match("/^debug/i", $build_dir);
-
-echo "Making dist for $build_dir\n";
-
-$dist_dir = $build_dir . "/php-" . phpversion();
-$pecl_dir = $dist_dir . "-pecl";
-
-@mkdir($dist_dir);
-@mkdir("$dist_dir/ext");
-@mkdir("$dist_dir/dev");
-@mkdir("$dist_dir/extras");
-@mkdir($pecl_dir);
-
-/* figure out additional DLL's that are required */
-$extra_dll_deps = array();
-$per_module_deps = array();
-$pecl_dll_deps = array();
-
-function get_depends($module)
-{
- static $no_dist = array(
- /* windows system dlls that should not be bundled */
- 'advapi32.dll', 'comdlg32.dll', 'gdi32.dll', 'kernel32.dll', 'ntdll.dll',
- 'odbc32.dll', 'ole32.dll', 'oleaut32.dll', 'rpcrt4.dll',
- 'shell32.dll', 'shlwapi.dll', 'user32.dll', 'ws2_32.dll', 'ws2help.dll',
- 'comctl32.dll', 'winmm.dll', 'wsock32.dll', 'winspool.drv', 'msasn1.dll',
- 'secur32.dll', 'netapi32.dll',
-
- /* apache */
- 'apachecore.dll',
-
- /* apache 2 */
- 'libhttpd.dll', 'libapr.dll', 'libaprutil.dll',
-
- /* pi3web */
- 'piapi.dll', 'pi3api.dll',
-
- /* nsapi */
- 'ns-httpd30.dll', 'ns-httpd35.dll', 'ns-httpd36.dll', 'ns-httpd40.dll',
-
- /* oracle */
- 'oci.dll', 'ociw32.dll',
-
- /* sybase */
- 'libcs.dll', 'libct.dll',
-
- /* visual C++; mscvrt.dll is present on everyones system,
- * but the debug version (msvcrtd.dll) and those from visual studio.net
- * (msvcrt7x.dll) are not */
- 'msvcrt.dll',
-
- );
- global $build_dir, $extra_dll_deps, $ext_targets, $sapi_targets, $pecl_targets, $phpdll, $per_module_deps, $pecl_dll_deps;
-
- $bd = strtolower(realpath($build_dir));
-
- $is_pecl = in_array($module, $pecl_targets);
-
- $cmd = "$GLOBALS[build_dir]\\deplister.exe \"$module\" \"$GLOBALS[build_dir]\"";
- $proc = proc_open($cmd,
- array(1 => array("pipe", "w")),
- $pipes);
-
- $n = 0;
- while (($line = fgetcsv($pipes[1]))) {
- $n++;
-
- $dep = strtolower($line[0]);
- $depbase = basename($dep);
- /* ignore stuff in our build dir, but only if it is
- * one of our targets */
- if (((in_array($depbase, $sapi_targets) ||
- in_array($depbase, $ext_targets) || in_array($depbase, $pecl_targets)) ||
- $depbase == $phpdll) && file_exists($GLOBALS['build_dir'] . "/$depbase")) {
- continue;
- }
- /* ignore some well-known system dlls */
- if (in_array(basename($dep), $no_dist)) {
- continue;
- }
-
- if ($is_pecl) {
- if (!in_array($dep, $pecl_dll_deps)) {
- $pecl_dll_deps[] = $dep;
- }
- } else {
- if (!in_array($dep, $extra_dll_deps)) {
- $extra_dll_deps[] = $dep;
- }
- }
-
- $per_module_deps[basename($module)][] = $dep;
- }
- fclose($pipes[1]);
- proc_close($proc);
-//echo "Module $module [$n lines]\n";
-}
-
-function copy_file_list($source_dir, $dest_dir, $list)
-{
- global $is_debug, $dist_dir;
-
- foreach ($list as $item) {
- echo "Copying $item from $source_dir to $dest_dir\n";
- copy($source_dir . DIRECTORY_SEPARATOR . $item, $dest_dir . DIRECTORY_SEPARATOR . $item);
- if ($is_debug) {
- $itemdb = preg_replace("/\.(exe|dll|lib)$/i", ".pdb", $item);
- if (file_exists("$source_dir/$itemdb")) {
- copy("$source_dir/$itemdb", "$dist_dir/dev/$itemdb");
- }
- }
- if (preg_match("/\.(exe|dll)$/i", $item)) {
- get_depends($source_dir . '/' . $item);
- }
- }
-}
-
-function copy_text_file($source, $dest)
-{
- $text = file_get_contents($source);
- $text = preg_replace("/[^\r]\n$/", "\r\n", $text);
- $fp = fopen($dest, "w");
- fwrite($fp, $text);
- fclose($fp);
-}
-
-/* the core dll */
-copy("$build_dir/php.exe", "$dist_dir/php.exe");
-copy("$build_dir/$phpdll", "$dist_dir/$phpdll");
-
-/* and the .lib goes into dev */
-$phplib = str_replace(".dll", ".lib", $phpdll);
-copy("$build_dir/$phplib", "$dist_dir/dev/$phplib");
-/* debug builds; copy the symbols too */
-if ($is_debug) {
- $phppdb = str_replace(".dll", ".pdb", $phpdll);
- copy("$build_dir/$phppdb", "$dist_dir/dev/$phppdb");
-}
-/* copy the sapi */
-copy_file_list($build_dir, "$dist_dir", $sapi_targets);
-
-/* copy the extensions */
-copy_file_list($build_dir, "$dist_dir/ext", $ext_targets);
-
-/* pecl sapi and extensions */
-copy_file_list($build_dir, $pecl_dir, $pecl_targets);
-
-/* populate reading material */
-$text_files = array(
- "LICENSE" => "license.txt",
- "NEWS" => "news.txt",
- "php.ini-dist" => "php.ini-dist",
- "php.ini-recommended" => "php.ini-recommended",
-);
-
-foreach ($text_files as $src => $dest) {
- copy_text_file($src, $dist_dir . '/' . $dest);
-}
-
-/* general other files */
-$general_files = array(
- "win32/install.txt" => "install.txt",
- "php.gif" => "php.gif",
-);
-
-foreach ($general_files as $src => $dest) {
- copy($src, $dist_dir . '/' . $dest);
-}
-
-/* include a snapshot identifier */
-$branch = "HEAD"; // TODO - determine this from CVS/Entries
-$fp = fopen("$dist_dir/snapshot.txt", "w");
-$now = date("r");
-$version = phpversion();
-fwrite($fp, <<<EOT
-This snapshot was automatically generated on
-$now
-
-Version: $version
-Branch: $branch
-Build: $build_dir
-
-EOT
-);
-/* list build-in extensions */
-$exts = get_loaded_extensions();
-fprintf($fp, "\r\nBuilt-in Extensions\r\n");
-fwrite($fp, "===========================\r\n");
-foreach ($exts as $ext) {
- fprintf($fp, "%s\r\n", $ext);
-}
-fwrite($fp, "\r\n\r\n");
-
-/* list dependencies */
-fprintf($fp, "Dependency information:\r\n");
-foreach ($per_module_deps as $modulename => $deps) {
- if (in_array($modulename, $pecl_targets))
- continue;
-
- fprintf($fp, "Module: %s\r\n", $modulename);
- fwrite($fp, "===========================\r\n");
- foreach ($deps as $dll) {
- fprintf($fp, "\t%s\r\n", basename($dll));
- }
- fwrite($fp, "\r\n");
-}
-fclose($fp);
-
-/* Now add those dependencies */
-foreach ($extra_dll_deps as $dll) {
- if (!file_exists($dll)) {
- /* try template dir */
- $tdll = $snapshot_template . "/dlls/" . basename($dll);
- if (!file_exists($tdll)) {
- echo "WARNING: distro depends on $dll, but could not find it on your system\n";
- continue;
- }
- $dll = $tdll;
- }
- copy($dll, "$dist_dir/" . basename($dll));
-}
-/* and those for pecl */
-foreach ($pecl_dll_deps as $dll) {
- if (in_array($dll, $extra_dll_deps)) {
- /* already in main distro */
- continue;
- }
- if (!file_exists($dll)) {
- /* try template dir */
- $tdll = $snapshot_template . "/dlls/" . basename($dll);
- if (!file_exists($tdll)) {
- echo "WARNING: distro depends on $dll, but could not find it on your system\n";
- continue;
- }
- $dll = $tdll;
- }
- copy($dll, "$pecl_dir/" . basename($dll));
-}
-
-function copy_dir($source, $dest)
-{
- if (!is_dir($dest)) {
- if (!mkdir($dest)) {
- return false;
- }
- }
-
- $d = opendir($source);
- while (($f = readdir($d)) !== false) {
- if ($f == '.' || $f == '..' || $f == 'CVS') {
- continue;
- }
- $fs = $source . '/' . $f;
- $fd = $dest . '/' . $f;
- if (is_dir($fs)) {
- copy_dir($fs, $fd);
- } else {
- copy($fs, $fd);
- }
- }
- closedir($d);
-}
-
-/* add extras from the template dir */
-if (file_exists($snapshot_template)) {
- $items = glob("$snapshot_template/*");
- print_r($items);
-
- foreach ($items as $item) {
- $bi = basename($item);
- if (is_dir($item)) {
- if ($bi == 'dlls' || $bi == 'symbols') {
- continue;
- } else if ($bi == 'PEAR') {
- /* copy to top level */
- copy_dir($item, "$dist_dir/$bi");
- } else {
- /* copy that dir into extras */
- copy_dir($item, "$dist_dir/extras/$bi");
- }
- } else {
- if ($bi == 'go-pear.bat') {
- /* copy to top level */
- copy($item, "$dist_dir/$bi");
- } else {
- /* copy to extras */
- copy($item, "$dist_dir/extras/$bi");
- }
- }
- }
-} else {
- echo "WARNING: you don't have a snapshot template\n";
- echo " your dist will not be complete\n";
-}
-
-?>