wez             Wed Dec  3 20:37:52 2003 EDT

  Added files:                 
    /php-src/win32/build        php.ico template.rc 

  Modified files:              
    /php-src/win32/build        Makefile buildconf.js confutils.js 
  Log:
  Search for pecl extensions under php-src/pecl as a convenience for
  pecl developers.
  Add automatic version info resource generation for SAPI and extension
  modules, based on PHP version numbers and info found in the CREDITS file.
  As a nice side effect, this lets us add a logo icon to .exe files.
  
  
Index: php-src/win32/build/Makefile
diff -u php-src/win32/build/Makefile:1.5 php-src/win32/build/Makefile:1.6
--- php-src/win32/build/Makefile:1.5    Wed Dec  3 13:31:04 2003
+++ php-src/win32/build/Makefile        Wed Dec  3 20:37:52 2003
@@ -14,7 +14,7 @@
 #  | Author: Wez Furlong <[EMAIL PROTECTED]>                           |
 #  +----------------------------------------------------------------------+
 #
-# $Id: Makefile,v 1.5 2003/12/03 18:31:04 wez Exp $
+# $Id: Makefile,v 1.6 2003/12/04 01:37:52 wez Exp $
 # This is the makefile template for the win32 build
 
 CC="$(CL)"
@@ -45,9 +45,15 @@
 ext\standard\parsedate.c ext\standard\parsedate.h: ext\standard\parsedate.y
        bison --output=ext/standard/parsedate.c -v -d ext/standard/parsedate.y 
 
+PHPDLL_RES=$(BUILD_DIR)\$(PHPDLL).res
 
-$(BUILD_DIR)\$(PHPDLL): $(PHPDEF) $(PHP_GLOBAL_OBJS) $(STATIC_EXT_OBJS)
-       $(LD) /out:$(BUILD_DIR)\$(PHPDLL) $(PHP_LDFLAGS) $(LDFLAGS) 
$(STATIC_EXT_LDFLAGS) $(PHP_GLOBAL_OBJS) $(STATIC_EXT_OBJS) $(STATIC_EXT_LIBS) $(LIBS)
+$(PHPDLL_RES): win32\build\template.rc
+       $(RC) /fo $(PHPDLL_RES) /d FILE_DESCRIPTION="\"PHP Script Interpreter\"" \
+               /d FILE_NAME="\"$(PHPDLL)\"" /d PRODUCT_NAME="\"PHP Script 
Interpreter\"" \
+               win32\build\template.rc
+
+$(BUILD_DIR)\$(PHPDLL): $(PHPDEF) $(PHP_GLOBAL_OBJS) $(STATIC_EXT_OBJS) $(PHPDLL_RES)
+       $(LD) /out:$(BUILD_DIR)\$(PHPDLL) $(PHP_LDFLAGS) $(LDFLAGS) 
$(STATIC_EXT_LDFLAGS) $(PHP_GLOBAL_OBJS) $(STATIC_EXT_OBJS) $(STATIC_EXT_LIBS) $(LIBS) 
$(PHPDLL_RES)
        
 $(BUILD_DIR)\$(PHPLIB): $(BUILD_DIR)\$(PHPDLL)
        
Index: php-src/win32/build/buildconf.js
diff -u php-src/win32/build/buildconf.js:1.2 php-src/win32/build/buildconf.js:1.3
--- php-src/win32/build/buildconf.js:1.2        Wed Dec  3 09:55:03 2003
+++ php-src/win32/build/buildconf.js    Wed Dec  3 20:37:52 2003
@@ -1,4 +1,4 @@
-// $Id: buildconf.js,v 1.2 2003/12/03 14:55:03 wez Exp $
+// $Id: buildconf.js,v 1.3 2003/12/04 01:37:52 wez Exp $
 /*
   +----------------------------------------------------------------------+
   | PHP Version 5                                                        |
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: buildconf.js,v 1.2 2003/12/03 14:55:03 wez Exp $ */
+/* $Id: buildconf.js,v 1.3 2003/12/04 01:37:52 wez Exp $ */
 // This generates a configure script for win32 build
 
 WScript.StdOut.WriteLine("Rebuilding configure.js");
@@ -64,6 +64,7 @@
 modules = file_get_contents("win32/build/config.w32");
 find_config_w32("sapi");
 find_config_w32("ext");
+find_config_w32("pecl");
 
 // Look for ARG_ENABLE or ARG_WITH calls
 re = new RegExp("(ARG_(ENABLE|WITH)\([^;]+\);)", "gm");
Index: php-src/win32/build/confutils.js
diff -u php-src/win32/build/confutils.js:1.10 php-src/win32/build/confutils.js:1.11
--- php-src/win32/build/confutils.js:1.10       Wed Dec  3 18:48:02 2003
+++ php-src/win32/build/confutils.js    Wed Dec  3 20:37:52 2003
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-// $Id: confutils.js,v 1.10 2003/12/03 23:48:02 fmk Exp $
+// $Id: confutils.js,v 1.11 2003/12/04 01:37:52 wez Exp $
 
 var STDOUT = WScript.StdOut;
 var STDERR = WScript.StdErr;
@@ -415,10 +415,44 @@
        return p;
 }
 
+/* emits rule to generate version info for a SAPI
+ * or extension.  Returns the name of the .res file
+ * that will be generated */
+function generate_version_info_resource(makefiletarget, creditspath)
+{
+       var resname = makefiletarget + ".res";
+       var res_desc = "PHP " + makefiletarget;
+       var res_prod_name = res_desc;
+       var credits;
+       var thanks = "";
+
+       if (FSO.FileExists(creditspath + '/CREDITS')) {
+               credits = FSO.OpenTextFile(creditspath + '/CREDITS', 1);
+               res_desc = credits.ReadLine();
+               thanks = credits.ReadLine();
+               if (thanks == null) {
+                       thanks = "";
+               } else {
+                       thanks = "Thanks to " + thanks;
+               }
+               credits.Close();
+       }
+       
+       MFO.WriteLine("$(BUILD_DIR)\\" + resname + ": win32\\build\\template.rc");
+       MFO.WriteLine("\t$(RC) /fo $(BUILD_DIR)\\" + resname +
+               ' /d FILE_DESCRIPTION="\\"' + res_desc + '\\"" /d FILE_NAME="\\"' + 
makefiletarget +
+               '\\"" /d PRODUCT_NAME="\\"' + res_prod_name + '\\"" /d 
THANKS_GUYS="\\"' +
+               thanks + '\\"" win32\\build\\template.rc');
+       MFO.WriteBlankLines(1);
+       
+       return resname;
+}
+
 function SAPI(sapiname, file_list, makefiletarget, cflags)
 {
        var SAPI = sapiname.toUpperCase();
        var ldflags;
+       var resname;
 
        STDOUT.WriteLine("Enabling sapi/" + sapiname);
 
@@ -434,9 +468,13 @@
        MFO.WriteBlankLines(1);
        MFO.WriteLine("# SAPI " + sapiname);
        MFO.WriteBlankLines(1);
+
+       /* generate a .res file containing version information */
+       resname = generate_version_info_resource(makefiletarget, "sapi/" + sapiname);
+       
        MFO.WriteLine(makefiletarget + ": $(BUILD_DIR)\\" + makefiletarget);
        MFO.WriteLine("[EMAIL PROTECTED] SAPI " + sapiname + " build complete");
-       MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(" + SAPI + 
"_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB)");
+       MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(" + SAPI + 
"_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname);
 
        if (makefiletarget.match(new RegExp("\\.dll$"))) {
                ldflags = "/dll $(LDFLAGS)";
@@ -444,7 +482,7 @@
                ldflags = "$(LDFLAGS)";
        }
        
-       MFO.WriteLine("\t$(LD) /nologo /out:$(BUILD_DIR)\\" + makefiletarget + " " + 
ldflags + " $(" + SAPI + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(LDFLAGS_" + SAPI + 
") $(LIBS_" + SAPI + ")");
+       MFO.WriteLine("\t$(LD) /nologo /out:$(BUILD_DIR)\\" + makefiletarget + " " + 
ldflags + " $(" + SAPI + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(LDFLAGS_" + SAPI + 
") $(LIBS_" + SAPI + ") $(BUILD_DIR)\\" + resname);
 
        DEFINE('CFLAGS_' + SAPI + '_OBJ', '$(CFLAGS_' + SAPI + ')');
        ADD_FLAG("SAPI_TARGETS", makefiletarget);
@@ -492,8 +530,10 @@
 
        if (shared) {
                dllname = "php_" + extname + ".dll";
-               MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(" + EXT + 
"_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB)");
-               MFO.WriteLine("\t$(LD) /out:$(BUILD_DIR)\\" + dllname + " 
$(DLL_LDFLAGS) $(LDFLAGS) $(LDFLAGS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) 
$(BUILD_DIR)\\$(PHPLIB) $(LIBS_" + EXT + ") $(LIBS)");
+               var resname = generate_version_info_resource(makefiletarget, "ext/" + 
extname);
+       
+               MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(" + EXT + 
"_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname);
+               MFO.WriteLine("\t$(LD) /out:$(BUILD_DIR)\\" + dllname + " 
$(DLL_LDFLAGS) $(LDFLAGS) $(LDFLAGS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) 
$(BUILD_DIR)\\$(PHPLIB) $(LIBS_" + EXT + ") $(LIBS) $(BUILD_DIR)\\" + resname);
                MFO.WriteBlankLines(1);
 
                ADD_FLAG("EXT_TARGETS", dllname);

Index: php-src/win32/build/php.ico
+++ php-src/win32/build/php.ico
(&hN( 
wwwwwwwwwwwwwwwwwwwwwwwwwxwxxxwwwxwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwww(
 ʦ
""")))UUUMMMBBB999|PP琩3f3333f333ff3fffff3f̙3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff̙3̙33f3̙ff33fff̙33f̙̙3ff̙̙3f̙̙3f̙̙3333f333ff3ffff̙f̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___www˲𵵵𵵵
𵵵
𵵵





































𵵵
𵵵𵵵
Index: php-src/win32/build/template.rc
+++ php-src/win32/build/template.rc
/* This is a template RC file.
 * $Id: template.rc,v 1.1 2003/12/04 01:37:52 wez Exp $
 * Do not edit with MSVC */
#ifdef APSTUDIO_INVOKED
# error dont edit with MSVC
#endif

#include "resource.h"
#include "winres.h"
#include "main/php_version.h"

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)

#ifndef THANKS_GUYS
# define THANKS_GUYS ""
#endif

0 ICON win32\build\php.ico

#define XSTRVER4(maj, min, rel, build) #maj "." #min "." #rel "." #build
#define XSTRVER3(maj, min, rel) #maj "." #min "." #rel
#define STRVER4(maj, min, rel, build) XSTRVER4(maj, min, rel, build)
#define STRVER3(maj, min, rel) XSTRVER3(maj, min, rel)

//Version
VS_VERSION_INFO VERSIONINFO
 FILEVERSION 
PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,PHP_RELEASE_VERSION
 PRODUCTVERSION PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,0
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS VS_FF_DEBUG
#else
 FILEFLAGS 0x0L
#endif
 FILEOS VOS__WINDOWS32
 FILETYPE VFT_DLL
 FILESUBTYPE VFT2_UNKNOWN
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "Comments", THANKS_GUYS "\0"
            VALUE "CompanyName", "The PHP Group\0"
            VALUE "FileDescription", FILE_DESCRIPTION "\0"
            VALUE "FileVersion", STRVER4(PHP_MAJOR_VERSION, PHP_MINOR_VERSION, 
PHP_RELEASE_VERSION, PHP_RELEASE_VERSION)
            VALUE "InternalName", FILE_NAME "\0"
            VALUE "LegalCopyright", "Copyright  2002 The PHP Group\0"
            VALUE "LegalTrademarks", "PHP\0"
            VALUE "OriginalFilename", FILE_NAME "\0"
            VALUE "PrivateBuild", "\0"
            VALUE "ProductName", PRODUCT_NAME "\0"
            VALUE "ProductVersion", STRVER3(PHP_MAJOR_VERSION, PHP_MINOR_VERSION, 
PHP_RELEASE_VERSION)
            VALUE "SpecialBuild", PHP_EXTRA_VERSION "\0"
                        VALUE "URL", "http://www.php.net";
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to