]> granicus.if.org Git - php/commitdiff
MFB: add phar.phar generation to windows
authorGreg Beaver <cellog@php.net>
Thu, 11 Jun 2009 14:43:03 +0000 (14:43 +0000)
committerGreg Beaver <cellog@php.net>
Thu, 11 Jun 2009 14:43:03 +0000 (14:43 +0000)
win32/build/Makefile
win32/build/mkdist.php

index a4635b4bc810f3365f85351c6bf8d78fb833c456..69442fe1cbb19ccf5c2e342b8f8b3a3b2bf292a4 100644 (file)
@@ -128,7 +128,7 @@ build-dist: $(BUILD_DIR)\deplister.exe
        -del /f /q $(BUILD_DIR)\php-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip
        -del /f /q $(BUILD_DIR)\php-debug-pack-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip
        -del /f /q $(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip
-       $(BUILD_DIR)\php.exe -d date.timezone=UTC -n win32/build/mkdist.php "$(BUILD_DIR)" "$(PHPDLL)" "$(SAPI_TARGETS)" "$(EXT_TARGETS) $(PHP_EXTRA_DIST_FILES)" "$(PECL_TARGETS) $(PECL_EXTRA_DIST_FILES)" "$(SNAPSHOT_TEMPLATE)"
+       $(BUILD_DIR)\php.exe -d date.timezone=UTC -n -dphar.readonly=0 win32/build/mkdist.php "$(BUILD_DIR)" "$(PHPDLL)" "$(SAPI_TARGETS)" "$(EXT_TARGETS) $(PHP_EXTRA_DIST_FILES)" "$(PECL_TARGETS) $(PECL_EXTRA_DIST_FILES)" "$(SNAPSHOT_TEMPLATE)"
        cd $(BUILD_DIR)\php-$(PHP_VERSION_STRING)
        -$(ZIP) -9 -q -r ..\php-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip .
        cd ..\..
index e2f0dbf1ea2d7fcc83b7ec80067554e9f4f5c0c7..eebb66cf7121373fc59404e31dc91ba88337e63e 100644 (file)
@@ -394,6 +394,27 @@ function copy_test_dir($directory, $dest)
        closedir($directory_list); 
 }
 
+function make_phar_dot_phar($dist_dir)
+{
+  if (!extension_loaded('phar')) return;
+  $path_to_php = $dist_dir;
+  $path_to_phar = realpath(__DIR__ . '/../../ext/phar');
+  echo "Generating pharcommand.phar\n";
+  $phar = new Phar($path_to_php . '/pharcommand.phar', 0, 'pharcommand');
+  foreach (new DirectoryIterator($path_to_phar . '/phar') as $file) {
+    if ($file->isDir() || $file == 'phar.php') continue;
+    echo 'adding ', $file, "\n";
+    $phar[(string) $file] = file_get_contents($path_to_phar.  '/phar/' . $file);
+  }
+  $phar->setSignatureAlgorithm(Phar::SHA1);
+  $stub = file($path_to_phar . '/phar/phar.php');
+  unset($stub[0]); // remove hashbang
+  $phar->setStub(implode('', $stub));
+
+  echo "Creating phar.phar.bat\n";
+  file_put_contents($path_to_php . '/phar.phar.bat', "%~dp0php.exe %~dp0pharcommand.phar %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n");
+}
+
 if (!is_dir($test_dir)) {
        mkdir($test_dir);
 }
@@ -491,4 +512,5 @@ if (file_exists($snapshot_template)) {
        echo "WARNING: you don't have a snapshot template, your dist will not be complete\n";
 }
 
+make_phar_dot_phar($dist_dir);
 ?>