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