mirror of
https://github.com/php/php-src.git
synced 2024-09-30 22:36:12 +00:00
Merge branch 'master' of git.php.net:php-src
This commit is contained in:
commit
d844e96464
@ -307,7 +307,17 @@ char* php_get_windows_name()
|
||||
GetSystemInfo(&si);
|
||||
}
|
||||
|
||||
if (VER_PLATFORM_WIN32_NT==osvi.dwPlatformId && osvi.dwMajorVersion >= 6 ) {
|
||||
if (VER_PLATFORM_WIN32_NT==osvi.dwPlatformId && osvi.dwMajorVersion >= 10) {
|
||||
if (osvi.dwMajorVersion == 10) {
|
||||
if( osvi.dwMinorVersion == 0 ) {
|
||||
if( osvi.wProductType == VER_NT_WORKSTATION ) {
|
||||
major = "Windows 10";
|
||||
} else {
|
||||
major = "Windows Server 2016";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (VER_PLATFORM_WIN32_NT==osvi.dwPlatformId && osvi.dwMajorVersion >= 6) {
|
||||
if (osvi.dwMajorVersion == 6) {
|
||||
if( osvi.dwMinorVersion == 0 ) {
|
||||
if( osvi.wProductType == VER_NT_WORKSTATION ) {
|
||||
@ -323,6 +333,11 @@ char* php_get_windows_name()
|
||||
}
|
||||
} else if ( osvi.dwMinorVersion == 2 ) {
|
||||
/* could be Windows 8/Windows Server 2012, could be Windows 8.1/Windows Server 2012 R2 */
|
||||
/* XXX and one more X - the above comment is true if no manifest is used for two cases:
|
||||
- if the PHP build doesn't use the correct manifest
|
||||
- if PHP DLL loaded under some binary that doesn't use the correct manifest
|
||||
|
||||
So keep the handling here as is for now, even if we know 6.2 is win8 and nothing else, and think about an improvement. */
|
||||
OSVERSIONINFOEX osvi81;
|
||||
DWORDLONG dwlConditionMask = 0;
|
||||
int op = VER_GREATER_EQUAL;
|
||||
@ -353,6 +368,12 @@ char* php_get_windows_name()
|
||||
major = "Windows Server 2012";
|
||||
}
|
||||
}
|
||||
} else if (osvi.dwMinorVersion == 3) {
|
||||
if( osvi.wProductType == VER_NT_WORKSTATION ) {
|
||||
major = "Windows 8.1";
|
||||
} else {
|
||||
major = "Windows Server 2012 R2";
|
||||
}
|
||||
} else {
|
||||
major = "Unknown Windows version";
|
||||
}
|
||||
|
@ -89,6 +89,7 @@ $(PHPDLL_RES): win32\build\template.rc
|
||||
win32\build\template.rc
|
||||
|
||||
$(BUILD_DIR)\$(PHPDLL): generated_files $(PHPDEF) $(PHP_GLOBAL_OBJS) $(STATIC_EXT_OBJS) $(PHPDLL_RES) $(MCFILE)
|
||||
@copy win32\build\default.manifest $(BUILD_DIR)\$(PHPDLL).manifest
|
||||
# @$(CC) $(PHP_GLOBAL_OBJS) $(STATIC_EXT_OBJS) $(STATIC_EXT_LIBS) $(LIBS) $(PHPDLL_RES) /link /out:$(BUILD_DIR)\$(PHPDLL) $(PHP7_PGD_OPTION) $(PHP_LDFLAGS) $(LDFLAGS) $(STATIC_EXT_LDFLAGS)
|
||||
@"$(LINK)" $(PHP_GLOBAL_OBJS_RESP) $(STATIC_EXT_OBJS_RESP) $(STATIC_EXT_LIBS) $(LIBS) $(PHPDLL_RES) /out:$(BUILD_DIR)\$(PHPDLL) $(PHP7_PGD_OPTION) $(PHP_LDFLAGS) $(LDFLAGS) $(STATIC_EXT_LDFLAGS)
|
||||
-@$(_VC_MANIFEST_EMBED_DLL)
|
||||
@ -116,7 +117,7 @@ clean: clean-sapi
|
||||
@cd $(BUILD_DIR)
|
||||
@for %D in (_x $(BUILD_DIRS_SUB)) do @if exist %D @del /F /Q %D\*.* > NUL
|
||||
@cd "$(PHP_SRC_DIR)"
|
||||
-@del /F /Q $(BUILD_DIR)\*.res $(BUILD_DIR)\*.lib $(BUILD_DIR)\*.ilk $(BUILD_DIR)\*.pdb $(BUILD_DIR)\*.exp $(PHPDEF) $(BUILD_DIR)\php-$(PHP_VERSION_STRING)-Win32.zip $(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)-Win32.zip > NUL
|
||||
-@del /F /Q $(BUILD_DIR)\*.res $(BUILD_DIR)\*.manifest $(BUILD_DIR)\*.lib $(BUILD_DIR)\*.ilk $(BUILD_DIR)\*.pdb $(BUILD_DIR)\*.exp $(PHPDEF) $(BUILD_DIR)\php-$(PHP_VERSION_STRING)-Win32.zip $(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)-Win32.zip > NUL
|
||||
-rd /s /q $(BUILD_DIR)\php-$(PHP_VERSION_STRING)
|
||||
|
||||
clean-pecl:
|
||||
@ -192,6 +193,7 @@ build-devel: build-headers build-lib
|
||||
@copy win32\build\Makefile.phpize $(BUILD_DIR_DEV)\script\ /y >nul
|
||||
@copy win32\build\phpize.bat $(BUILD_DIR_DEV)\ /y >nul
|
||||
@copy win32\build\template.rc $(BUILD_DIR_DEV)\build\ /y >nul
|
||||
@copy win32\build\default.manifest $(BUILD_DIR_DEV)\build\ /y >nul
|
||||
@copy $(BUILD_DIR)\devel\config.phpize.js $(BUILD_DIR_DEV)\script\ /y >nul
|
||||
@copy $(BUILD_DIR)\devel\phpize.js $(BUILD_DIR_DEV)\script\ /y >nul
|
||||
@copy $(BUILD_DIR)\devel\ext_deps.js $(BUILD_DIR_DEV)\script\ /y >nul
|
||||
|
@ -99,11 +99,11 @@ if (typeof(CWD) == "undefined") {
|
||||
}
|
||||
|
||||
/* defaults; we pick up the precise versions from configure.in */
|
||||
var PHP_VERSION = 5;
|
||||
var PHP_VERSION = 7;
|
||||
var PHP_MINOR_VERSION = 0;
|
||||
var PHP_RELEASE_VERSION = 0;
|
||||
var PHP_EXTRA_VERSION = "";
|
||||
var PHP_VERSION_STRING = "5.0.0";
|
||||
var PHP_VERSION_STRING = "7.0.0";
|
||||
|
||||
/* Get version numbers and DEFINE as a string */
|
||||
function get_version_numbers()
|
||||
@ -936,6 +936,17 @@ function CHECK_HEADER_ADD_INCLUDE(header_name, flag_name, path_to_check, use_env
|
||||
return p;
|
||||
}
|
||||
|
||||
/* XXX check whether some manifest was originally supplied, otherwise keep using the default. */
|
||||
function generate_version_info_manifest(makefiletarget)
|
||||
{
|
||||
var manifest_name = makefiletarget + ".manifest";
|
||||
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + manifest_name + ": win32\\build\\default.manifest");
|
||||
MFO.WriteLine("\t@copy $(PHP_SRC_DIR)\\win32\\build\\default.manifest $(BUILD_DIR)\\" + makefiletarget + ".manifest");
|
||||
|
||||
return manifest_name;
|
||||
}
|
||||
|
||||
/* Emits rule to generate version info for a SAPI
|
||||
* or extension. Returns the name of the .res file
|
||||
* that will be generated */
|
||||
@ -1087,12 +1098,14 @@ function SAPI(sapiname, file_list, makefiletarget, cflags, obj_dir)
|
||||
/* generate a .res file containing version information */
|
||||
resname = generate_version_info_resource(makefiletarget, sapiname, configure_module_dirname, true);
|
||||
|
||||
manifest_name = generate_version_info_manifest(makefiletarget);
|
||||
|
||||
MFO.WriteLine(makefiletarget + ": $(BUILD_DIR)\\" + makefiletarget);
|
||||
MFO.WriteLine("\t@echo SAPI " + sapiname_for_printing + " build complete");
|
||||
if (MODE_PHPIZE) {
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(DEPS_" + SAPI + ") $(" + SAPI + "_GLOBAL_OBJS) $(PHPLIB) $(BUILD_DIR)\\" + resname);
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(DEPS_" + SAPI + ") $(" + SAPI + "_GLOBAL_OBJS) $(PHPLIB) $(BUILD_DIR)\\" + resname + " $(BUILD_DIR)\\" + manifest_name);
|
||||
} else {
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(DEPS_" + SAPI + ") $(" + SAPI + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname);
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(DEPS_" + SAPI + ") $(" + SAPI + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname + " $(BUILD_DIR)\\" + manifest_name);
|
||||
}
|
||||
|
||||
if (makefiletarget.match(new RegExp("\\.dll$"))) {
|
||||
@ -1303,6 +1316,7 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)
|
||||
|
||||
var resname = generate_version_info_resource(dllname, extname, configure_module_dirname, false);
|
||||
var ld = '@"$(LINK)"';
|
||||
var manifest_name = generate_version_info_manifest(dllname);
|
||||
|
||||
ldflags = "";
|
||||
if (is_pgo_desired(extname) && (PHP_PGI == "yes" || PHP_PGO != "no")) {
|
||||
@ -1322,10 +1336,10 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + libname + ": $(BUILD_DIR)\\" + dllname);
|
||||
MFO.WriteBlankLines(1);
|
||||
if (MODE_PHPIZE) {
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(DEPS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) $(PHPLIB) $(BUILD_DIR)\\" + resname);
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(DEPS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) $(PHPLIB) $(BUILD_DIR)\\" + resname + " $(BUILD_DIR)\\" + manifest_name);
|
||||
MFO.WriteLine("\t" + ld + " $(" + EXT + "_GLOBAL_OBJS_RESP) $(PHPLIB) $(LIBS_" + EXT + ") $(LIBS) $(BUILD_DIR)\\" + resname + " /out:$(BUILD_DIR)\\" + dllname + " $(DLL_LDFLAGS) $(LDFLAGS) $(LDFLAGS_" + EXT + ")");
|
||||
} else {
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(DEPS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname);
|
||||
MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(DEPS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname + " $(BUILD_DIR)\\" + manifest_name);
|
||||
MFO.WriteLine("\t" + ld + " $(" + EXT + "_GLOBAL_OBJS_RESP) $(BUILD_DIR)\\$(PHPLIB) $(LIBS_" + EXT + ") $(LIBS) $(BUILD_DIR)\\" + resname + " /out:$(BUILD_DIR)\\" + dllname + ldflags + " $(DLL_LDFLAGS) $(LDFLAGS) $(LDFLAGS_" + EXT + ")");
|
||||
}
|
||||
MFO.WriteLine("\t-@$(_VC_MANIFEST_EMBED_DLL)");
|
||||
|
17
win32/build/default.manifest
Normal file
17
win32/build/default.manifest
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows Vista -->
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
</assembly>
|
@ -22,6 +22,7 @@
|
||||
* module to it's stdout for use by distro/installer building tools */
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <imagehlp.h>
|
||||
|
||||
BOOL CALLBACK StatusRoutine(IMAGEHLP_STATUS_REASON reason,
|
||||
|
Loading…
Reference in New Issue
Block a user