@@ -1636,6 +1636,9 @@ function generate_files()
1636
1636
generate_internal_functions ( ) ;
1637
1637
generate_config_h ( ) ;
1638
1638
generate_phpize ( ) ;
1639
+ } else {
1640
+ generate_config_pickle_h ( ) ;
1641
+ generate_ext_pickle ( ) ;
1639
1642
}
1640
1643
STDOUT . WriteLine ( "Done." ) ;
1641
1644
STDOUT . WriteBlankLines ( 1 ) ;
@@ -1648,6 +1651,140 @@ function generate_files()
1648
1651
}
1649
1652
}
1650
1653
1654
+ function generate_ext_pickle ( )
1655
+ {
1656
+ var content ;
1657
+ var DEPS = null ;
1658
+ var dest ;
1659
+ var deps_lines = new Array ( ) ;
1660
+
1661
+ var build_var_name = function ( name ) {
1662
+ return "PHP_" + name . toUpperCase ( ) ;
1663
+ }
1664
+
1665
+ STDOUT . WriteLine ( "Generating pickle deps" ) ;
1666
+ dest = PHP_DIR + "/script/" ;
1667
+
1668
+ if ( ! FSO . FolderExists ( dest ) ) {
1669
+ FSO . CreateFolder ( dest ) ;
1670
+ }
1671
+
1672
+ if ( FSO . FileExists ( dest + "/ext_pickle.js" ) ) {
1673
+ DEPS = FSO . OpenTextFile ( dest + "/ext_pickle.js" , 1 ) ;
1674
+
1675
+ while ( ! DEPS . AtEndOfStream ) {
1676
+ var ln = DEPS . ReadLine ( ) ;
1677
+ var found = false ;
1678
+
1679
+ for ( var i in extensions_enabled ) {
1680
+ var reg0 = new RegExp ( build_var_name ( extensions_enabled [ i ] [ 0 ] ) + "\s*=.+" , "g" ) ;
1681
+ var reg1 = new RegExp ( build_var_name ( extensions_enabled [ i ] [ 0 ] ) + "_SHARED" + "\s*=.+" , "g" ) ;
1682
+
1683
+ if ( ln . match ( reg1 ) || ln . match ( reg0 ) ) {
1684
+ found = true ;
1685
+ break ;
1686
+ }
1687
+ }
1688
+
1689
+ if ( ! found ) {
1690
+ deps_lines . push ( ln ) ;
1691
+ }
1692
+ }
1693
+ }
1694
+
1695
+ for ( var i in extensions_enabled ) {
1696
+ deps_lines . push ( build_var_name ( extensions_enabled [ i ] [ 0 ] ) + "=true;" ) ;
1697
+ deps_lines . push ( build_var_name ( extensions_enabled [ i ] [ 0 ] ) + "_SHARED=" + ( extensions_enabled [ i ] [ 1 ] == 'shared' ? 'true' : 'false' ) + ";" ) ;
1698
+ }
1699
+
1700
+ if ( ! ! DEPS ) {
1701
+ DEPS . Close ( ) ;
1702
+ DEPS = null ;
1703
+ }
1704
+
1705
+ /* Replace the ext_pickle.js with the new content */
1706
+ DEPS = FSO . CreateTextFile ( dest + "/ext_pickle.js" , true ) ;
1707
+
1708
+ for ( var j in deps_lines ) {
1709
+ DEPS . WriteLine ( deps_lines [ j ] ) ;
1710
+ }
1711
+
1712
+ DEPS . Close ( ) ;
1713
+ }
1714
+
1715
+ function generate_config_pickle_h ( )
1716
+ {
1717
+ var outfile = null ;
1718
+ var lines = new Array ( ) ;
1719
+ var keys = ( new VBArray ( configure_hdr . Keys ( ) ) ) . toArray ( ) ;
1720
+ dest = PHP_DIR + "/include/main" ;
1721
+
1722
+ var ignore_key = function ( key ) {
1723
+ var ignores = [ "CONFIGURE_COMMAND" , "PHP_COMPILER_ID" , "COMPILER" , "ARCHITECTURE" , "HAVE_STRNLEN" , "PHP_DIR" ] ;
1724
+
1725
+ for ( var k in ignores ) {
1726
+ if ( ignores [ k ] == key ) {
1727
+ return true ;
1728
+ }
1729
+ }
1730
+
1731
+ return false ;
1732
+ }
1733
+
1734
+
1735
+ STDOUT . WriteLine ( "Generating main/config.pickle.h" ) ;
1736
+
1737
+ if ( FSO . FileExists ( dest + "/config.pickle.h" ) ) {
1738
+ outfile = FSO . OpenTextFile ( dest + "/config.pickle.h" , 1 ) ;
1739
+
1740
+ while ( ! outfile . AtEndOfStream ) {
1741
+ var found = false ;
1742
+ var ln = outfile . ReadLine ( ) ;
1743
+
1744
+ for ( var i in keys ) {
1745
+ var reg = new RegExp ( "#define[\s ]+" + keys [ i ] + "[\s ]*.*" , "g" ) ;
1746
+
1747
+ if ( ln . match ( reg ) ) {
1748
+ found = true ;
1749
+ break ;
1750
+ }
1751
+ }
1752
+
1753
+ if ( ! found ) {
1754
+ lines . push ( ln ) ;
1755
+ }
1756
+ }
1757
+ }
1758
+
1759
+ for ( var i in keys ) {
1760
+ var item = configure_hdr . Item ( keys [ i ] ) ;
1761
+
1762
+ if ( ignore_key ( keys [ i ] ) ) {
1763
+ continue ;
1764
+ }
1765
+
1766
+ /* XXX fix comment handling */
1767
+ /*if (!lines[j].match(/^#define.+/g)) {
1768
+ continue;
1769
+ }*/
1770
+
1771
+ lines . push ( "#define " + keys [ i ] + " " + item [ 0 ] ) ;
1772
+ }
1773
+
1774
+ if ( outfile ) {
1775
+ outfile . Close ( ) ;
1776
+ outfile = null ;
1777
+ }
1778
+
1779
+ outfile = FSO . CreateTextFile ( dest + "/config.pickle.h" , true ) ;
1780
+
1781
+ for ( var k in lines ) {
1782
+ outfile . WriteLine ( lines [ k ] ) ;
1783
+ }
1784
+
1785
+ outfile . Close ( ) ;
1786
+ }
1787
+
1651
1788
function generate_config_h ( )
1652
1789
{
1653
1790
var infile , outfile ;
0 commit comments