]> granicus.if.org Git - php/commitdiff
implement makefile fragment support for nmake
authorAnatol Belski <ab@php.net>
Tue, 3 Jan 2017 16:43:55 +0000 (17:43 +0100)
committerAnatol Belski <ab@php.net>
Tue, 3 Jan 2017 16:48:44 +0000 (17:48 +0100)
ext/standard/Makefile.frag.w32 [new file with mode: 0644]
ext/standard/config.w32
win32/build/confutils.js

diff --git a/ext/standard/Makefile.frag.w32 b/ext/standard/Makefile.frag.w32
new file mode 100644 (file)
index 0000000..d65b7da
--- /dev/null
@@ -0,0 +1,7 @@
+
+ext\standard\var_unserializer.c: ext\standard\var_unserializer.re
+       $(RE2C) --no-generation-date -b -o ext/standard/var_unserializer.c ext/standard/var_unserializer.re
+
+ext\standard\url_scanner_ex.c: ext\standard\url_scanner_ex.re
+       $(RE2C) --no-generation-date -b -o ext/standard/url_scanner_ex.c ext/standard/url_scanner_ex.re
+
index 8154e7936c36e3d9ff8399fe9814a521b489af11..00b2166abe8767c1b0663c4728ffe651bd46350c 100644 (file)
@@ -37,4 +37,6 @@ EXTENSION("standard", "array.c base64.c basic_functions.c browscap.c \
 if (PHP_MBREGEX != "no") {
        CHECK_HEADER_ADD_INCLUDE("oniguruma.h", "CFLAGS_STANDARD", PHP_MBREGEX + ";ext\\mbstring\\oniguruma")   
 }
+ADD_MAKEFILE_FRAGMENT();
 PHP_INSTALL_HEADERS("", "ext/standard");
+
index eafc8f315de35d7639b0cfee0d203f832c990bbe..e0233bd0d81f78e365bfa6f465dad7facf188b23 100644 (file)
@@ -44,6 +44,8 @@ var PHP_TEST_INI_PATH = "";
 var PHP_TEST_INI = "";
 var PHP_TEST_INI_EXT_EXCLUDE = "";
 
+var PHP_MAKEFILE_FRAGMENTS = PHP_SRC_DIR + "\\Makefile.fragments.w32";
+
 /* Care also about NTDDI_VERSION and _WIN32_WINNT in config.w32.h.in */
 var WINVER = "0x0601"; /* 7/2008r2 */
 
@@ -2474,6 +2476,17 @@ function generate_makefile()
                MF.Write(TF.ReadAll());
        }
        TF.Close();
+       MF.WriteBlankLines(2);
+
+       if (FSO.FileExists(PHP_MAKEFILE_FRAGMENTS)) {
+               TF = FSO.OpenTextFile(PHP_MAKEFILE_FRAGMENTS, 1);
+               if (!TF.AtEndOfStream) {
+                       MF.Write(TF.ReadAll());
+               }
+               TF.Close();
+               MF.WriteBlankLines(2);
+               FSO.DeleteFile(PHP_MAKEFILE_FRAGMENTS, true);
+       }
 
        MF.Close();     
 }
@@ -3273,3 +3286,24 @@ function force_all_shared()
        return !!PHP_ALL_SHARED && "yes" == PHP_ALL_SHARED;
 }
 
+function ADD_MAKEFILE_FRAGMENT()
+{
+       var fn_in = configure_module_dirname + "\\Makefile.frag.w32";
+       if (FSO.FileExists(fn_in)) {
+               var h_in, h_out;
+               var create_out_fl = !FSO.FileExists(PHP_MAKEFILE_FRAGMENTS);
+               var open_flags = create_out_fl ? 8 : 2;
+
+               h_in = FSO.OpenTextFile(fn_in, 1);
+               h_out = FSO.OpenTextFile(PHP_MAKEFILE_FRAGMENTS, open_flags, create_out_fl);
+
+               if (!TF.AtEndOfStream) {
+                       h_out.Write(h_in.ReadAll());
+                       h_out.WriteBlankLines(1);
+               }
+
+               h_in.Close();
+               h_out.Close();
+       }
+}
+