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(
����������������������������wwwwwwwwwwwwwwww��www��w��www��w��w�x��w������������������������x�x�x�wwwxwwwwwwx�wwwwwwwwwwwwwwwwwwwwwwwwwwww(
����������������ʦ
""")))UUUMMMBBB999�|�PP�����������琩�3f��3333f3�3�3�ff3fff�f�f���3�f���̙���3�f̙�����f����3333f3�3�3�3333333f33�33�33�3f3f33ff3f�3f�3f�3�3�33�f3��3��3��3�3�33�f3̙3��3��3�33�f3��3��3��ff3fff�f�f�f3f33f3ff3�f3�f3�ffff3fffff�ff�f�f�3f�ff��f��f��f�f�3f̙f��f��f�f�3f��f�����̙��3����̙�33�f�3̙��f�f3�3f�f��f̙3���3��f�����̙���̙�3f�f�̙��̙������3��f�����̙��̙3�f̙�̙3�33�3f�3��3��3��f�f3�ff�f��f̙f�̙̙3̙f̙�̙�̙�����3��f�̙����������3��f����������3�f���3�33�3f�3��3��3��f�f3�ff�f��f��f�����3��f�������������3��f�̙��������3��f������ff�f�ff���ff�f���f!�___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