1on error resume next 2 3' run with cscript 4If InStr(LCase(WScript.FullName),"cscript")=0 Then 5 WScript.Echo("Please run: cscript /nologo configure.vbs") 6 WScript.Quit 7End If 8 9' command line arguments 10OPTCPPFLAGS="/O2" 11DEBUGCPPFLAGS="/MD" 12DEBUGLDFLAGS="" 13hexversion="" 14 15disableutil=false 16disableserver=false 17disableoracle=false 18disablemysql=false 19disablepostgresql=false 20disablesap=false 21disableodbc=false 22disabledb2=false 23disablefirebird=false 24disableinformix=false 25disablerouter=false 26disableodbcdriver=false 27disablecpp=false 28disableperl=false 29disablepython=false 30disableruby=false 31disablejava=false 32disablephp=false 33disabletcl=false 34disablenodejs=false 35disablecs=false 36disablecmdline=false 37disabledoc=false 38 39ORACLEPREFIX="" 40MYSQLPREFIX="" 41POSTGRESQLPREFIX="" 42SYBASEPREFIX="" 43DB2PREFIX="" 44FIREBIRDPREFIX="" 45INFORMIXPREFIX="" 46PERLPREFIX="" 47PERLVERSION="" 48PYTHONPREFIX="" 49PYTHONVERSION="" 50RUBYPREFIX="" 51RUBYVERSION="" 52JAVAPREFIX="" 53PHPPREFIX="" 54TCLPREFIX="" 55NODEJSPREFIX="" 56SQLR="sqlr" 57SQLRELAY="sqlrelay" 58SQL_RELAY="SQL Relay" 59ABS_MAXCONNECTIONS="4096" 60 61if WScript.Arguments.Count>0 then 62 if Wscript.Arguments.Item(0)="--help" then 63 WScript.Echo("Usage: cscript /nologo configure.vbs [OPTION]...") 64 WScript.Echo("") 65 WScript.Echo("Optional Features:") 66 WScript.Echo(" --enable-small-code optimize for small code size") 67 WScript.Echo(" --enable-debug compile with debug option") 68 WScript.Echo(" --disable-oracle Don't build Oracle connection module") 69 WScript.Echo(" --disable-mysql Don't build MySQL connection module") 70 WScript.Echo(" --disable-postgresql Don't build PostgreSQL connection module") 71 WScript.Echo(" --disable-sap Don't build SAP/Sybase connection module") 72 WScript.Echo(" --disable-odbc Don't build ODBC connection module") 73 WScript.Echo(" --disable-db2 Don't build DB2 connection module") 74 WScript.Echo(" --disable-firebird Don't build Firebird connection module") 75 WScript.Echo(" --disable-informix Don't build Informix connection module") 76 WScript.Echo(" --disable-router Don't build router connection module") 77 WScript.Echo(" --disable-odbc-driver Don't build ODBC driver") 78 WScript.Echo(" --disable-perl Don't build Perl api") 79 WScript.Echo(" --disable-python Don't build Python api") 80 WScript.Echo(" --disable-ruby Don't build Ruby api") 81 WScript.Echo(" --disable-java Don't build Java api") 82 WScript.Echo(" --disable-php Don't build PHP api") 83 WScript.Echo(" --disable-tcl Don't build TCL api") 84 WScript.Echo(" --disable-nodejs Don't build node.js api") 85 WScript.Echo(" --disable-cs Don't build C# api") 86 WScript.Echo("") 87 WScript.Echo("Optional Packages:") 88 WScript.Echo(" --with-oracle-prefix Location of Oracle") 89 WScript.Echo(" --with-mysql-prefix Location of MySQL") 90 WScript.Echo(" --with-postgresql-prefix Location of PostgreSQL") 91 WScript.Echo(" --with-sap-prefix Location of SAP/Sybase") 92 WScript.Echo(" --with-db2-prefix Location of DB2") 93 WScript.Echo(" --with-firebird-prefix Location of Firebird") 94 WScript.Echo(" --with-informix-prefix Location of Informix") 95 WScript.Echo(" --with-perl-prefix Location of Perl") 96 WScript.Echo(" --with-perl-version Perl version") 97 WScript.Echo(" --with-python-prefix Location of Perl") 98 WScript.Echo(" --with-python-version Python version") 99 WScript.Echo(" --with-ruby-prefix Location of Perl") 100 WScript.Echo(" --with-ruby-version Ruby version") 101 WScript.Echo(" --with-java-prefix Location of Perl") 102 WScript.Echo(" --with-php-prefix Location of Perl") 103 WScript.Echo(" --with-tcl-prefix Location of Perl") 104 WScript.Echo(" --with-nodejs-prefix Location of Perl") 105 WScript.Echo(" --with-sqlr replacement for ""sqlr""") 106 WScript.Echo(" --with-sqlrelay replacement for ""sqlrelay""") 107 WScript.Echo(" --with-sql-relay replacement for ""SQL Relay""") 108 WScript.Quit 109 end if 110end if 111 112for i=0 to WScript.Arguments.Count-1 113 114 arg=Wscript.Arguments.Item(i) 115 116 if arg="--enable-small-code" then 117 OPTCPPFLAGS="/O1" 118 elseif arg="--enable-debug" then 119 DEBUGCPPFLAGS="/Zi /MDd /D _DEBUG" 120 DEBUGLDFLAGS="/debug" 121 elseif arg="--disable-oracle" then 122 disableoracle=true 123 elseif mid(arg,1,21)="--with-oracle-prefix=" then 124 ORACLEPREFIX=mid(arg,22) 125 elseif arg="--disable-mysql" then 126 disablemysql=true 127 elseif mid(arg,1,20)="--with-mysql-prefix=" then 128 MYSQLPREFIX=mid(arg,21) 129 elseif arg="--disable-postgresql" then 130 disablepostgresql=true 131 elseif mid(arg,1,25)="--with-postgresql-prefix=" then 132 POSTGRESQLPREFIX=mid(arg,26) 133 elseif arg="--disable-sap" then 134 disablesap=true 135 elseif mid(arg,1,18)="--with-sap-prefix=" then 136 SYBASEPREFIX=mid(arg,19) 137 elseif arg="--disable-odbc" then 138 disableodbc=true 139 elseif arg="--disable-db2" then 140 disabledb2=true 141 elseif mid(arg,1,18)="--with-db2-prefix=" then 142 DB2PREFIX=mid(arg,19) 143 elseif arg="--disable-firebird" then 144 disablefirebird=true 145 elseif mid(arg,1,23)="--with-firebird-prefix=" then 146 FIREBIRDPREFIX=mid(arg,24) 147 elseif arg="--disable-informix" then 148 disableinformix=true 149 elseif mid(arg,1,23)="--with-informix-prefix=" then 150 INFORMIXPREFIX=mid(arg,24) 151 elseif arg="--disable-router" then 152 disablerouter=true 153 elseif arg="--disable-odbc-driver" then 154 disableodbcdriver=true 155 elseif arg="--disable-perl" then 156 disableperl=true 157 elseif mid(arg,1,19)="--with-perl-prefix=" then 158 PERLPREFIX=mid(arg,20) 159 elseif mid(arg,1,20)="--with-perl-version=" then 160 PERLVERSION=mid(arg,21) 161 elseif arg="--disable-python" then 162 disablepython=true 163 elseif mid(arg,1,21)="--with-python-prefix=" then 164 PYTHONPREFIX=mid(arg,22) 165 elseif mid(arg,1,22)="--with-python-version=" then 166 PYTHONVERSION=mid(arg,23) 167 elseif arg="--disable-ruby" then 168 disableruby=true 169 elseif mid(arg,1,19)="--with-ruby-prefix=" then 170 RUBYPREFIX=mid(arg,20) 171 elseif mid(arg,1,20)="--with-ruby-version=" then 172 RUBYVERSION=mid(arg,21) 173 elseif arg="--disable-java" then 174 disablejava=true 175 elseif mid(arg,1,19)="--with-java-prefix=" then 176 JAVAPREFIX=mid(arg,20) 177 elseif arg="--disable-php" then 178 disablephp=true 179 elseif mid(arg,1,18)="--with-php-prefix=" then 180 PHPPREFIX=mid(arg,19) 181 elseif arg="--disable-tcl" then 182 disabletcl=true 183 elseif mid(arg,1,18)="--with-tcl-prefix=" then 184 TCLPREFIX=mid(arg,19) 185 elseif arg="--disable-nodejs" then 186 disablenodejs=true 187 elseif mid(arg,1,21)="--with-nodejs-prefix=" then 188 NODEJSPREFIX=mid(arg,22) 189 elseif arg="--disable-cs" then 190 disablecs=true 191 elseif mid(arg,1,12)="--with-sqlr=" then 192 SQLR=mid(arg,13) 193 elseif mid(arg,1,16)="--with-sqlrelay=" then 194 SQLRELAY=mid(arg,17) 195 elseif mid(arg,1,17)="--with-sql-relay=" then 196 SQL_RELAY=mid(arg,18) 197 elseif mid(arg,1,16)="--disable-server" then 198 disableserver=true 199 disableoracle=true 200 disablemysql=true 201 disablepostgresql=true 202 disablesap=true 203 disableodbc=true 204 disabledb2=true 205 disablefirebird=true 206 disableinformix=true 207 disablerouter=true 208 elseif mid(arg,1,16)="--disable-client" then 209 disablecmdline=true 210 disableodbcdriver=true 211 disablecpp=true 212 disableperl=true 213 disablepython=true 214 disableruby=true 215 disablejava=true 216 disablephp=true 217 disabletcl=true 218 disablecs=true 219 disablenodejs=true 220 disablerouter=true 221 elseif mid(arg,1,17)="--disable-cmdline" then 222 disablecmdline=true 223 elseif mid(arg,1,13)="--disable-doc" then 224 disabledoc=true 225 elseif mid(arg,1,23)="--with-windows-version=" then 226 hexversion=mid(arg,24) 227 end if 228next 229 230if disableserver=true and disablecmdline=true then 231 disableutil=true 232end if 233 234 235' version 236SQLR_VERSION="1.7.0" 237 238' paths 239pfix="C:\\Program Files\\Firstworks" 240prefix=pfix 241exec_prefix=prefix 242bindir=pfix+"\\bin" 243includedir=pfix+"\\include" 244libdir=pfix+"\\lib" 245javadir=pfix+"\\java" 246libexecdir=pfix+"\\libexec\\sqlrelay" 247localstatedir=pfix+"\\var" 248sysconfdir=pfix+"\\etc" 249mandir=pfix+"\\share\\man" 250datadir=pfix+"\\share" 251docdir=pfix+"\\doc\\sqlrelay" 252EXAMPLEDIR=pfix+"\\doc\\sqlrelay\\examples" 253tmpdir=pfix+"\\var\\sqlrelay\\tmp" 254cachedir=pfix+"\\var\\sqlrelay\\cache" 255debugdir=pfix+"\\var\\sqlrelay\\debug" 256logdir=pfix+"\\var\\sqlrelay\\log" 257initscript_prefix="" 258 259' extension 260EXE=".exe" 261 262 263' create file system object 264set fso=CreateObject("Scripting.FileSystemObject") 265 266' create shell object 267set WshShell=WScript.CreateObject("WScript.Shell") 268 269 270' get top_builddir 271top_builddir=chr(34) & fso.GetAbsolutePathName(".") & chr(34) 272 273 274WScript.Echo("") 275WScript.Echo("***** Platform ***************") 276 277' determine VC++ version and architecture 278set cmd=WshShell.exec("cl") 279stdout=cmd.StdOut.ReadAll() 280stderr=cmd.StdErr.ReadLine() 281parts=split(stderr) 282arch=parts(ubound(parts)) 283if arch="80x86" then 284 arch="x86" 285end if 286version="" 287for i=lbound(parts) to ubound(parts) 288 if parts(i)="Version" then 289 version=parts(i+1) 290 end if 291next 292parts=split(version,".") 293version=parts(0) 294 295WScript.Echo("Visual C++ Version: " & version) 296WScript.Echo("Visual C++ Architecture: " & arch) 297 298 299' set some architecture-based flags 300USE_32BIT_TIME_T="" 301if arch="x86" then 302 USE_32BIT_TIME_T="/D _USE_32BIT_TIME_T" 303end if 304 305 306' determine OS Version number 307if len(hexversion)=0 then 308 set cmd=WshShell.exec("%comspec% /c ver") 309 stdout=cmd.StdOut.ReadAll() 310 stderr=cmd.StdErr.ReadLine() 311 if instr(stdout,"Windows NT Version 4.0")>0 then 312 hexversion="0x0400" 313 else 314 parts0=split(stdout,"[") 315 parts1=split(parts0(1)," ") 316 parts2=split(parts1(1),"]") 317 parts3=split(parts2(0),".") 318 if parts3(1)="00" then 319 parts3(1)="0" 320 end if 321 hexversion="0x0"&parts3(0)&"0"&parts3(1) 322 end if 323end if 324 325WScript.Echo("Windows Version: " & hexversion) 326 327' in general, we need to set WIN32WINNT to the hexversion 328WINVER="" 329WIN32WINDOWS="" 330WIN32WINNT=hexversion 331 332' but, for OS'es older than WinXP we have to do some special things... 333 334' for Win2k and WinNT4, set WINVER also 335if hexversion="0x0500" or hexversion="0x0400" then 336 WINVER=hexversion 337 338' for WinME, set WIN32WINDOWS and unset WIN32WINNT 339elseif hexversion="0x0490" then 340 WIN32WINDOWS=hexversion 341 WIN32WINNT="" 342 343' for Win98, set WIN32WINDOWS and WINVER and unset WIN32WINNT 344elseif hexversion="0x0410" then 345 WIN32WINDOWS=hexversion 346 WINVER=hexversion 347 WIN32WINNT="" 348 349' for Win95, set WINVER and unset WIN32WINNT 350elseif hexversion="0x0400" then 351 WINVER=hexversion 352 WIN32WINNT="" 353 354' FIXME: not sure about WinNT3X, Win3X or below 355end if 356 357' add /D and macro name 358if WINVER<>"" then 359 WINVER="/D WINVER="&WINVER 360end if 361if WIN32WINDOWS<>"" then 362 WIN32WINDOWS="/D _WIN32_WINDOWS="&WIN32WINDOWS 363end if 364if WIN32WINNT<>"" then 365 WIN32WINNT="/D _WIN32_WINNT="&WIN32WINNT 366end if 367 368 369 370' determine config.h template... 371configwindowsh="config_windows.h" 372 373 374 375' determine SDK headers and libs... (FIXME: make this configurable) 376 377' VS2002, VS2003 and VS2008 and up come with a platform SDK 378SDKINCLUDES="" 379SDKLIBS="" 380 381' VS2005 doesn't come with an SDK and there are several that are compatible 382if version=14 then 383 384 ' older SDK's have various issues 385 386 ' 5.2.3700.0 - Microsoft Platform SDK February 2003 387 'SDKINCLUDES="/I""C:\Program Files\Microsoft SDK\include""" 388 'SDKLIBS="/LIBPATH:""C:\Program Files\Microsoft SDK\Lib""" 389 390 ' 5.2.3790.1830.15 - Windows Server 2003 SP1 Platform SDK 391 SDKINCLUDES="/I""C:\Program Files\Microsoft Platform SDK\Include""" 392 SDKLIBS="/LIBPATH:""C:\Program Files\Microsoft Platform SDK\Lib""" 393 394 ' 5.2.3790.2075.51 - Windows Server 2003 R2 Platform SDK 395 'SDKINCLUDES="/I""C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include""" 396 'SDKLIBS="/LIBPATH:""C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib""" 397 398 ' 6.0A (comes with VC2008) 399 'SDKINCLUDES="/I""C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include""" 400 'SDKLIBS="/LIBPATH:""C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib""" 401 402 ' not sure about newer SDK's 403 404' VS6 doesn't come with a platform SDK 405elseif version=12 then 406 407 ' older SDK's might work too 408 409 ' 5.2.3700.0 - Microsoft Platform SDK February 2003 410 SDKINCLUDES="/I""C:\Program Files\Microsoft SDK\include""" 411 SDKLIBS="/LIBPATH:""C:\Program Files\Microsoft SDK\Lib""" 412 413 ' not sure about newer SDK's 414 415' VS5 and lower don't come with a platform SDK 416elseif version<=11 then 417 418 ' older SDK's might work too 419 420 ' 5.1.2600.2180 - Microsoft Platform SDK for Windows XP SP2 421 ' (this doesn't actually work) 422 'SDKINCLUDES="/I""C:\Program Files\Microsoft Platform SDK for Windows XP SP2\Include""" 423 'SDKLIBS="/LIBPATH:""C:\Program Files\Microsoft Platform SDK for Windows XP SP2\Lib""" 424 425 ' newer SDK's give link errors 426 427end if 428 429WScript.Echo("******************************") 430 431 432' util 433ALLUTIL="" 434INSTALLUTIL="" 435if disableutil=false then 436 ALLUTIL="all-util" 437 INSTALLUTIL="install-util" 438end if 439 440 441' server 442ALLSERVER="" 443INSTALLSERVER="" 444if disableserver=false then 445 ALLSERVER="all-server all-configs all-parsers all-queries all-loggers all-notifications all-schedules all-routers all-protocols all-pwdencs all-auths all-directives all-translations all-bindvariabletranslations all-resultsettranslations all-resultsetrowtranslations all-resultsetrowblocktranslations all-resultsetheadertranslations all-filters all-triggers all-moduledatas all-connections" 446 INSTALLSERVER="install-server install-configs install-parsers install-queries install-loggers install-notifications install-schedules install-routers install-protocols install-pwdencs install-auths install-directives install-translations install-bindvariabletranslations install-resultsettranslations install-resultsetrowtranslations install-resultsetrowblocktranslations install-resultsetheadertranslations install-filters install-triggers install-moduledatas install-connections" 447end if 448 449 450 451' oracle 452WScript.Echo("") 453WScript.Echo("***** Oracle *****************") 454 455configureDatabase "Oracle","oracle",disableoracle,_ 456 "C:\Program Files\Oracle","instantclient_",_ 457 "sdk\include","oci.h",_ 458 "sdk\lib\msvc","oci.lib","",_ 459 "\include","\lib\msvc","oci.lib",_ 460 ORACLEPREFIX,ORACLEINCLUDES,ORACLELIBS,_ 461 ALLORACLE,INSTALLORACLE 462 463ORACLEVERSION 464 465WScript.Echo("******************************") 466 467 468 469' mysql 470WScript.Echo("") 471WScript.Echo("***** MySQL ******************") 472 473'"MySQL Connector.C ",_ 474configureDatabase "MySQL","mysql",disablemysql,_ 475 "C:\Program Files\MySQL",_ 476 "MySQL Connector C ",_ 477 "include","mysql.h",_ 478 "lib","libmysql.lib","",_ 479 "\include","\lib","libmysql.lib",_ 480 MYSQLPREFIX,MYSQLINCLUDES,MYSQLLIBS,_ 481 ALLMYSQL,INSTALLMYSQL 482 483WScript.Echo("******************************") 484 485 486' postgresql 487WScript.Echo("") 488WScript.Echo("***** PostgreSQL *************") 489 490configureDatabase "PostgreSQL","postgresql",disablepostgresql,_ 491 "C:\Program Files\PostgreSQL","",_ 492 "include","libpq-fe.h",_ 493 "lib","libpq.lib","",_ 494 "\include","\lib","libpq.lib",_ 495 POSTGRESQLPREFIX,POSTGRESQLINCLUDES,POSTGRESQLLIBS,_ 496 ALLPOSTGRESQL,INSTALLPOSTGRESQL 497 498WScript.Echo("******************************") 499 500 501' sqlite 502SQLITEINCLUDES="" 503SQLITELIBS="" 504ALLSQLITE="" 505INSTALLSQLITE="" 506 507 508' sap 509WScript.Echo("") 510WScript.Echo("***** SAP/Sybase *************") 511 512configureDatabase "SAP/SYBASE","sap",disablesap,_ 513 "C:\SAP","OCS-",_ 514 "include","ctpublic.h",_ 515 "lib","libsybct64.lib",_ 516 "libsybblk64.lib libsybcs64.lib",_ 517 "\include","\lib","libsybct64.lib",_ 518 SYBASEPREFIX,SYBASEINCLUDES,SYBASELIBS,_ 519 ALLSYBASE,INSTALLSYBASE 520 521WScript.Echo("******************************") 522 523 524' odbc 525WScript.Echo("") 526WScript.Echo("***** ODBC *******************") 527ODBCINCLUDES="" 528ODBCLIBS="user32.lib gdi32.lib odbc32.lib odbccp32.lib" 529 530' VS2015 requires legacy_stdio_definitions.lib or 531' __vsnwprintf_s will be unresolved 532set WshShell=WScript.CreateObject("WScript.Shell") 533set cmd=WshShell.exec("cl") 534stdout=cmd.StdOut.ReadAll() 535stderr=cmd.StdErr.ReadLine() 536parts=split(stderr) 537arch=parts(ubound(parts)) 538version="" 539for i=lbound(parts) to ubound(parts) 540 if parts(i)="Version" then 541 version=parts(i+1) 542 end if 543next 544parts=split(version,".") 545version=parts(0) 546if version=19 then 547 ODBCLIBS=ODBCLIBS+" legacy_stdio_definitions.lib" 548end if 549 550if disableodbc=false then 551 ALLODBC="all-odbc" 552 INSTALLODBC="installdll-odbc" 553 554 WScript.Echo("ODBC includes... " & ODBCINCLUDES) 555 WScript.Echo("ODBC libs... " & ODBCLIBS) 556else 557 WScript.Echo("ODBC support will not be built. ") 558end if 559WScript.Echo("******************************") 560 561 562' db2 563WScript.Echo("") 564WScript.Echo("***** DB2 ********************") 565 566configureDatabase "DB2","db2",disabledb2,_ 567 "C:\Program Files\IBM","SQLLIB",_ 568 "include","sqlcli1.h",_ 569 "lib","db2api.lib",_ 570 "",_ 571 "\include","\lib","db2api.lib",_ 572 DB2PREFIX,DB2INCLUDES,DB2LIBS,_ 573 ALLDB2,INSTALLDB2 574 575WScript.Echo("******************************") 576 577 578' firebid 579WScript.Echo("") 580WScript.Echo("***** Firebird ***************") 581 582configureDatabase "Firebird","firebird",disablefirebird,_ 583 "C:\Program Files\Firebird","Firebird_",_ 584 "include","ibase.h",_ 585 "lib","fbclient_ms.lib",_ 586 "",_ 587 "\include","\lib","fbclient_ms.lib",_ 588 FIREBIRDPREFIX,FIREBIRDINCLUDES,FIREBIRDLIBS,_ 589 ALLFIREBIRD,INSTALLFIREBIRD 590 591WScript.Echo("******************************") 592 593 594' informix 595WScript.Echo("") 596WScript.Echo("***** Informix ***************") 597 598configureDatabase "Informix","informix",disableinformix,_ 599 "C:\Program Files","IBM Informix Software Bundle",_ 600 "incl\cli","infxcli.h",_ 601 "lib","iclit",_ 602 "",_ 603 "\incl\cli","\lib","iclit09b.lib",_ 604 INFORMIXPREFIX,INFORMIXINCLUDES,INFORMIXLIBS,_ 605 ALLINFORMIX,INSTALLINFORMIX 606 607WScript.Echo("******************************") 608 609 610' router 611ALLROUTER="" 612INSTALLROUTER="" 613if disablerouter=false then 614 ALLROUTER="all-router" 615 INSTALLROUTER="installdll-router" 616end if 617 618 619' cmdline programs 620ALLCMDLINE="" 621INSTALLCMDLINE="" 622if disablecmdline=false then 623 ALLCMDLINE="all-cmdline" 624 INSTALLCMDLINE="install-cmdline" 625end if 626 627 628' api's... 629APIALLSUBDIRS="" 630APICLEANSUBDIRS="" 631APIINSTALLSUBDIRS="" 632APIUNINSTALLSUBDIRS="" 633if disablecpp=false then 634 APIALLSUBDIRS=APIALLSUBDIRS+" all-cpp all-c" 635 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-cpp clean-c" 636 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-cpp install-c" 637 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+" uninstall-cpp uninstall-c" 638end if 639if disableodbcdriver=false then 640 APIALLSUBDIRS=APIALLSUBDIRS+" all-odbc" 641 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-odbc" 642 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-odbc" 643 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+" uninstall-odbc" 644end if 645 646 647' c# 648WScript.Echo("") 649WScript.Echo("***** C# *********************") 650if disablecs=false then 651 APIALLSUBDIRS=APIALLSUBDIRS+" all-cs" 652 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-cs" 653 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-cs" 654 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-cs" 655else 656 WScript.Echo("C# support will not be built. ") 657end if 658WScript.Echo("******************************") 659 660 661' perl 662WScript.Echo("") 663WScript.Echo("***** Perl *******************") 664 665if PERLPREFIX="" then 666 findPrefix "C:\","Perl",PERLPREFIX,disableperl 667end if 668 669if PERLPREFIX<>"" and PERLVERSION="" then 670 findVersion PERLPREFIX & "\lib\CORE","perl",".lib",PERLVERSION 671end if 672 673if disableperl=false then 674 APIALLSUBDIRS=APIALLSUBDIRS+" all-perl" 675 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-perl" 676 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-perl" 677 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-perl" 678 679 WScript.Echo("Perl prefix... " & PERLPREFIX) 680 WScript.Echo("Perl version... " & PERLVERSION) 681else 682 WScript.Echo("Perl support will not be built. ") 683end if 684WScript.Echo("******************************") 685 686 687' python 688WScript.Echo("") 689WScript.Echo("***** Python *****************") 690 691if PYTHONPREFIX="" then 692 findPrefix "C:\","Python",PYTHONPREFIX,disablepython 693end if 694 695if PYTHONPREFIX<>"" and PYTHONVERSION="" then 696 findVersion PYTHONPREFIX & "\libs","python",".lib",PYTHONVERSION 697end if 698 699if PYTHONVERSION<30 then 700 IMPORTEXCEPTIONS="import exceptions" 701 EXCEPTIONSSTANDARDERROR="exceptions.StandardError" 702else 703 IMPORTEXCEPTIONS="" 704 EXCEPTIONSSTANDARDERROR="Exception" 705end if 706 707if disablepython=false then 708 APIALLSUBDIRS=APIALLSUBDIRS+" all-python" 709 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-python" 710 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-python" 711 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-python" 712 713 WScript.Echo("Python prefix... " & PYTHONPREFIX) 714 WScript.Echo("Python version... " & PYTHONVERSION) 715else 716 WScript.Echo("Python support will not be built. ") 717end if 718WScript.Echo("******************************") 719 720 721' ruby 722WScript.Echo("") 723WScript.Echo("***** Ruby *******************") 724 725if RUBYPREFIX="" then 726 findPrefix "C:\","Ruby",RUBYPREFIX,disableruby 727end if 728 729if RUBYPREFIX<>"" and RUBYVERSION="" then 730 findVersion RUBYPREFIX & "\include","ruby-","",RUBYVERSION 731 732 RUBYLIBVERSION=RUBYVERSION 733 while InStr(RUBYLIBVERSION,".")>0 734 RUBYLIBVERSION=Replace(RUBYLIBVERSION,".","") 735 wend 736end if 737 738if RUBYPREFIX<>"" and RUBYVERSION<>"" then 739 if arch="x86" then 740 RUBYTARGET="i386-mswin32" 741 findVersion RUBYPREFIX & "\lib","msvcr","-ruby" & RUBYLIBVERSION & ".lib",RUBYVCVERSION 742 RUBYLIBPREFIX="msvcr" & RUBYVCVERSION 743 RUBYSITEARCHDIRSUFFIX="i386-msvcr" & RUBYVCVERSION 744 else 745 RUBYTARGET="x64-mswin64" 746 findVersion RUBYPREFIX & "\lib","x64-msvcr","-ruby" & RUBYLIBVERSION & ".lib",RUBYVCVERSION 747 RUBYLIBPREFIX="x64-msvcr" & RUBYVCVERSION 748 RUBYSITEARCHDIRSUFFIX="x64-msvcr" & RUBYVCVERSION 749 end if 750end if 751 752if disableruby=false then 753 APIALLSUBDIRS=APIALLSUBDIRS+" all-ruby" 754 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-ruby" 755 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-ruby" 756 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-ruby" 757 758 WScript.Echo("Ruby prefix... " & RUBYPREFIX) 759 WScript.Echo("Ruby version... " & RUBYVERSION) 760else 761 WScript.Echo("Ruby support will not be built. ") 762end if 763WScript.Echo("******************************") 764 765 766' php 767WScript.Echo("") 768WScript.Echo("***** PHP ********************") 769 770if PHPPREFIX="" then 771 findPrefix "C:\","PHP",PHPPREFIX,disablephp 772end if 773 774if disablephp=false then 775 APIALLSUBDIRS=APIALLSUBDIRS+" all-php all-phppdo" 776 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-php clean-phppdo" 777 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-php install-phppdo" 778 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-php uninstall-phppdo" 779 780 WScript.Echo("PHP prefix... " & PHPPREFIX) 781else 782 WScript.Echo("PHP support will not be built. ") 783end if 784WScript.Echo("******************************") 785 786 787' java 788WScript.Echo("") 789WScript.Echo("***** Java *******************") 790 791if JAVAPREFIX="" then 792 findPrefix "C:\Program Files\Java\","jdk",JAVAPREFIX,disablejava 793end if 794 795if disablejava=false then 796 APIALLSUBDIRS=APIALLSUBDIRS+" all-java all-jdbc" 797 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-java clean-jdbc" 798 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-java install-jdbc" 799 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-java uninstall-jdbc" 800 801 WScript.Echo("Java prefix... " & JAVAPREFIX) 802else 803 WScript.Echo("Java support will not be built. ") 804end if 805WScript.Echo("******************************") 806 807 808' tcl 809WScript.Echo("") 810WScript.Echo("***** TCL ********************") 811 812if TCLPREFIX="" then 813 findPrefix "C:\","Tcl",TCLPREFIX,disabletcl 814end if 815 816if disabletcl=false then 817 APIALLSUBDIRS=APIALLSUBDIRS+" all-tcl" 818 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-tcl" 819 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-tcl" 820 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-tcl" 821 822 WScript.Echo("TCL prefix... " & TCLPREFIX) 823else 824 WScript.Echo("TCL support will not be built. ") 825end if 826WScript.Echo("******************************") 827 828 829' node.js 830WScript.Echo("") 831WScript.Echo("***** node.js ****************") 832 833if NODEJSPREFIX="" then 834 findPrefix "C:\Program Files\","nodejs",NODEJSPREFIX,disablenodejs 835end if 836 837NODEJSMSVSVERSION=2005 838if version=15 then 839 NODEJSMSVSVERSION=2008 840elseif version=16 then 841 NODEJSMSVSVERSION=2010 842elseif version=17 then 843 NODEJSMSVSVERSION=2012 844elseif version=18 then 845 NODEJSMSVSVERSION=2013 846elseif version=19 then 847 NODEJSMSVSVERSION=2015 848else 849 NODEJSMSVSVERSION=2000+version-4 850end if 851 852if disablenodejs=false then 853 APIALLSUBDIRS=APIALLSUBDIRS+" all-nodejs" 854 APICLEANSUBDIRS=APICLEANSUBDIRS+" clean-nodejs" 855 APIINSTALLSUBDIRS=APIINSTALLSUBDIRS+" install-nodejs" 856 APIUNINSTALLSUBDIRS=APIUNINSTALLSUBDIRS+ " uninstall-nodejs" 857 858 WScript.Echo("node.js prefix... " & NODEJSPREFIX) 859else 860 WScript.Echo("node.js support will not be built. ") 861end if 862WScript.Echo("******************************") 863 864 865' docs 866INSTALLDOC="" 867if disabledoc=false then 868 INSTALLDOC="install-doc" 869end if 870 871TESTDBS="" 872TESTAPIS="" 873 874CMDLINEBUILD="no " 875CPPBUILD="no " 876PERLBUILD="no " 877PYTHONBUILD="no " 878RUBYBUILD="no " 879PHPBUILD="no " 880PHPPDOBUILD="no " 881ODBCDRIVERBUILD="no " 882JAVABUILD="no " 883TCLBUILD="no " 884CSBUILD="no " 885NODEJSBUILD="no " 886ODBCBUILD="no " 887if disablecmdline=false then 888 CMDLINEBUILD="yes" 889end if 890if disablecpp=false then 891 CPPBUILD="yes" 892 TESTAPIS=TESTAPIS & """c"",""c++""," 893end if 894if disableperl=false then 895 PERLBUILD="yes" 896 TESTAPIS=TESTAPIS & """perl"",""perldbi""," 897end if 898if disablepython=false then 899 PYTHONBUILD="yes" 900 TESTAPIS=TESTAPIS & """python"",""pythondb""," 901end if 902if disableruby=false then 903 RUBYBUILD="yes" 904 TESTAPIS=TESTAPIS & """ruby""," 905end if 906if disablephp=false then 907 PHPBUILD="yes" 908 TESTAPIS=TESTAPIS & """php""," 909end if 910if disablephp=false then 911 PHPPDOBUILD="yes" 912 TESTAPIS=TESTAPIS & """phppdo""," 913end if 914if disableodbcdriver=false then 915 ODBCDRIVERBUILD="yes" 916end if 917if disablejava=false then 918 JAVABUILD="yes" 919 TESTAPIS=TESTAPIS & """java""," 920end if 921if disabletcl=false then 922 TCLBUILD="yes" 923 TESTAPIS=TESTAPIS & """tcl""," 924end if 925if disablecs=false then 926 CSBUILD="yes" 927 TESTAPIS=TESTAPIS & """cs""," 928end if 929if disablenodejs=false then 930 NODEJSBUILD="yes" 931 TESTAPIS=TESTAPIS & """nodejs""," 932end if 933if disableodbc=false then 934 ODBCBUILD="yes" 935end if 936ORACLE8BUILD="no " 937MYSQLBUILD="no " 938POSTGRESQLBUILD="no " 939FREETDSBUILD="no " 940SYBASEBUILD="no " 941ODBCBUILD="no " 942DB2BUILD="no " 943FIREBIRDBUILD="no " 944MDBTOOLSBUILD="no " 945INFORMIXBUILD="no " 946ROUTERBUILD="no " 947if disableoracle=false then 948 ORACLE8BUILD="yes " 949 TESTDBS=TESTDBs&"""oracle""," 950end if 951if disablemysql=false then 952 MYSQLBUILD="yes " 953 TESTDBS=TESTDBs&"""mysql""," 954end if 955if disablepostgresql=false then 956 POSTGRESQLBUILD="yes " 957 TESTDBS=TESTDBs&"""postgresql""," 958end if 959if disablesap=false then 960 SYBASEBUILD="yes " 961 TESTDBS=TESTDBs&"""sap""," 962end if 963if disableodbc=false then 964 ODBCBUILD="yes " 965end if 966if disabledb2=false then 967 DB2BUILD="yes " 968 TESTDBS=TESTDBs&"""db2""," 969end if 970if disablefirebird=false then 971 FIREBIRDBUILD="yes " 972 TESTDBS=TESTDBs&"""firebird""," 973end if 974if disableinformix=false then 975 INFORMIXBUILD="yes " 976 TESTDBS=TESTDBs&"""informix""," 977end if 978if disablerouter=false then 979 ROUTERBUILD="yes " 980 TESTDBS=TESTDBs&"""router""," 981end if 982if disablemysql=false then 983 TESTDBS=TESTDBs&"""mysqlprotocol""," 984end if 985 986' truncate the trailing comma 987TESTDBS=left(TESTDBS,len(TESTDBS)-1) 988TESTAPIS=left(TESTAPIS,len(TESTAPIS)-1) 989 990' input and output files 991infiles=Array(_ 992 "config_windows.mk",_ 993 configwindowsh,_ 994 "src\\common\\defines.h.in",_ 995 "src\\server\\sqlrelay\\private\\sqlrshm.h.in",_ 996 "bin\\sqlrclient-config.in",_ 997 "bin\\sqlrclientwrapper-config.in",_ 998 "bin\\sqlrserver-config.in",_ 999 "test\\testall.vbs.in",_ 1000 "sqlrelay-c.pc.in",_ 1001 "sqlrelay-c++.pc.in",_ 1002 "msvc\\setupx64\\setupx64.vdproj.in",_ 1003 "msvc\\setupx86\\setupx86.vdproj.in"_ 1004 ) 1005outfiles=Array(_ 1006 "config.mk",_ 1007 "config.h",_ 1008 "src\\common\\defines.h",_ 1009 "src\\server\\sqlrelay\\private\\sqlrshm.h",_ 1010 "bin\\sqlrclient-config",_ 1011 "bin\\sqlrclientwrapper-config",_ 1012 "bin\\sqlrserver-config",_ 1013 "test\\testall.vbs",_ 1014 "sqlrelay-c.pc",_ 1015 "sqlrelay-c++.pc",_ 1016 "msvc\\setupx64\\setupx64.vdproj",_ 1017 "msvc\\setupx86\\setupx86.vdproj"_ 1018 ) 1019 1020 1021' create output files 1022for i=lbound(infiles) to ubound(infiles) 1023 1024 ' read input file 1025 set infile=fso.OpenTextFile(infiles(i)) 1026 content=infile.ReadAll() 1027 1028 ' version 1029 content=replace(content,"@SQLR_VERSION@",SQLR_VERSION,1,-1,0) 1030 1031 ' paths 1032 content=replace(content,"@prefix@",prefix,1,-1,0) 1033 content=replace(content,"@exec_prefix@",exec_prefix,1,-1,0) 1034 content=replace(content,"@bindir@",bindir,1,-1,0) 1035 content=replace(content,"@includedir@",includedir,1,-1,0) 1036 content=replace(content,"@libdir@",libdir,1,-1,0) 1037 content=replace(content,"@javadir@",javadir,1,-1,0) 1038 content=replace(content,"@mandir@",mandir,1,-1,0) 1039 content=replace(content,"@datadir@",datadir,1,-1,0) 1040 content=replace(content,"@libexecdir@",libexecdir,1,-1,0) 1041 content=replace(content,"@localstatedir@",localstatedir,1,-1,0) 1042 content=replace(content,"@sysconfdir@",sysconfdir,1,-1,0) 1043 content=replace(content,"@docdir@",docdir,1,-1,0) 1044 content=replace(content,"@EXAMPLEDIR@",EXAMPLEDIR,1,-1,0) 1045 content=replace(content,"@tmpdir@",tmpdir,1,-1,0) 1046 content=replace(content,"@cachedir@",cachedir,1,-1,0) 1047 content=replace(content,"@debugdir@",debugdir,1,-1,0) 1048 content=replace(content,"@logdir@",logdir,1,-1,0) 1049 content=replace(content,"@initscript_prefix@",initscript_prefix,1,-1,0) 1050 1051 ' flags 1052 content=replace(content,"@OPTCPPFLAGS@",OPTCPPFLAGS,1,-1,0) 1053 content=replace(content,"@DEBUGCPPFLAGS@",DEBUGCPPFLAGS,1,-1,0) 1054 content=replace(content,"@DEBUGLDFLAGS@",DEBUGLDFLAGS,1,-1,0) 1055 content=replace(content,"@_USE_32BIT_TIME_T@",USE_32BIT_TIME_T,1,-1,0) 1056 content=replace(content,"@SDKINCLUDES@",SDKINCLUDES,1,-1,0) 1057 content=replace(content,"@WINVER@",WINVER,1,-1,0) 1058 content=replace(content,"@WIN32WINDOWS@",WIN32WINDOWS,1,-1,0) 1059 content=replace(content,"@WIN32WINNT@",WIN32WINNT,1,-1,0) 1060 1061 ' libraries 1062 content=replace(content,"@SDKLIBS@",SDKLIBS,1,-1,0) 1063 1064 ' extension 1065 content=replace(content,"@EXE@",EXE,1,-1,0) 1066 1067 ' top_builddir 1068 content=replace(content,"@top_builddir@",top_builddir,1,-1,0) 1069 1070 ' perl 1071 content=replace(content,"@PERLPREFIX@",PERLPREFIX,1,-1,0) 1072 content=replace(content,"@PERLVERSION@",PERLVERSION,1,-1,0) 1073 1074 ' python 1075 content=replace(content,"@PYTHONPREFIX@",PYTHONPREFIX,1,-1,0) 1076 content=replace(content,"@PYTHONVERSION@",PYTHONVERSION,1,-1,0) 1077 content=replace(content,"@IMPORTEXCEPTIONS@",IMPORTEXCEPTIONS,1,-1,0) 1078 content=replace(content,"@EXCEPTIONSSTANDARDERROR@",EXCEPTIONSSTANDARDERROR,1,-1,0) 1079 1080 ' ruby 1081 content=replace(content,"@RUBYPREFIX@",RUBYPREFIX,1,-1,0) 1082 content=replace(content,"@RUBYVERSION@",RUBYVERSION,1,-1,0) 1083 content=replace(content,"@RUBYLIBVERSION@",RUBYLIBVERSION,1,-1,0) 1084 content=replace(content,"@RUBYVCVERSION@",RUBYVCVERSION,1,-1,0) 1085 content=replace(content,"@RUBYTARGET@",RUBYTARGET,1,-1,0) 1086 content=replace(content,"@RUBYLIBPREFIX@",RUBYLIBPREFIX,1,-1,0) 1087 content=replace(content,"@RUBYSITEARCHDIRSUFFIX@",RUBYSITEARCHDIRSUFFIX,1,-1,0) 1088 1089 ' php 1090 content=replace(content,"@PHPPREFIX@",PHPPREFIX,1,-1,0) 1091 1092 ' java 1093 content=replace(content,"@JAVAPREFIX@",JAVAPREFIX,1,-1,0) 1094 1095 ' tcl 1096 content=replace(content,"@TCLPREFIX@",TCLPREFIX,1,-1,0) 1097 1098 ' nodejs 1099 content=replace(content,"@NODEJSPREFIX@",NODEJSPREFIX,1,-1,0) 1100 content=replace(content,"@NODEJSMSVSVERSION@",NODEJSMSVSVERSION,1,-1,0) 1101 1102 ' util library 1103 content=replace(content,"@ALLUTIL@",ALLUTIL,1,-1,0) 1104 content=replace(content,"@INSTALLUTIL@",INSTALLUTIL,1,-1,0) 1105 1106 ' server programs 1107 content=replace(content,"@ALLSERVER@",ALLSERVER,1,-1,0) 1108 content=replace(content,"@INSTALLSERVER@",INSTALLSERVER,1,-1,0) 1109 1110 ' connections 1111 content=replace(content,"@ORACLEINCLUDES@",ORACLEINCLUDES,1,-1,0) 1112 content=replace(content,"@ORACLELIBS@",ORACLELIBS,1,-1,0) 1113 content=replace(content,"@ALLORACLE@",ALLORACLE,1,-1,0) 1114 content=replace(content,"@INSTALLORACLE@",INSTALLORACLE,1,-1,0) 1115 1116 content=replace(content,"@MYSQLINCLUDES@",MYSQLINCLUDES,1,-1,0) 1117 content=replace(content,"@MYSQLLIBS@",MYSQLLIBS,1,-1,0) 1118 content=replace(content,"@ALLMYSQL@",ALLMYSQL,1,-1,0) 1119 content=replace(content,"@INSTALLMYSQL@",INSTALLMYSQL,1,-1,0) 1120 1121 content=replace(content,"@POSTGRESQLINCLUDES@",POSTGRESQLINCLUDES,1,-1,0) 1122 content=replace(content,"@POSTGRESQLLIBS@",POSTGRESQLLIBS,1,-1,0) 1123 content=replace(content,"@ALLPOSTGRESQL@",ALLPOSTGRESQL,1,-1,0) 1124 content=replace(content,"@INSTALLPOSTGRESQL@",INSTALLPOSTGRESQL,1,-1,0) 1125 1126 content=replace(content,"@SQLITEINCLUDES@",SQLITEINCLUDES,1,-1,0) 1127 content=replace(content,"@SQLITELIBS@",SQLITELIBS,1,-1,0) 1128 content=replace(content,"@ALLSQLITE@",ALLSQLITE,1,-1,0) 1129 content=replace(content,"@INSTALLSQLITE@",INSTALLSQLITE,1,-1,0) 1130 1131 content=replace(content,"@SYBASEINCLUDES@",SYBASEINCLUDES,1,-1,0) 1132 content=replace(content,"@SYBASELIBS@",SYBASELIBS,1,-1,0) 1133 content=replace(content,"@ALLSYBASE@",ALLSYBASE,1,-1,0) 1134 content=replace(content,"@INSTALLSYBASE@",INSTALLSYBASE,1,-1,0) 1135 1136 content=replace(content,"@ODBCINCLUDES@",ODBCINCLUDES,1,-1,0) 1137 content=replace(content,"@ODBCLIBS@",ODBCLIBS,1,-1,0) 1138 content=replace(content,"@ALLODBC@",ALLODBC,1,-1,0) 1139 content=replace(content,"@INSTALLODBC@",INSTALLODBC,1,-1,0) 1140 1141 content=replace(content,"@DB2INCLUDES@",DB2INCLUDES,1,-1,0) 1142 content=replace(content,"@DB2LIBS@",DB2LIBS,1,-1,0) 1143 content=replace(content,"@ALLDB2@",ALLDB2,1,-1,0) 1144 content=replace(content,"@INSTALLDB2@",INSTALLDB2,1,-1,0) 1145 1146 content=replace(content,"@FIREBIRDINCLUDES@",FIREBIRDINCLUDES,1,-1,0) 1147 content=replace(content,"@FIREBIRDLIBS@",FIREBIRDLIBS,1,-1,0) 1148 content=replace(content,"@ALLFIREBIRD@",ALLFIREBIRD,1,-1,0) 1149 content=replace(content,"@INSTALLFIREBIRD@",INSTALLFIREBIRD,1,-1,0) 1150 1151 content=replace(content,"@INFORMIXINCLUDES@",INFORMIXINCLUDES,1,-1,0) 1152 content=replace(content,"@INFORMIXLIBS@",INFORMIXLIBS,1,-1,0) 1153 content=replace(content,"@ALLINFORMIX@",ALLINFORMIX,1,-1,0) 1154 content=replace(content,"@INSTALLINFORMIX@",INSTALLINFORMIX,1,-1,0) 1155 content=replace(content,"@ALLROUTER@",ALLROUTER,1,-1,0) 1156 content=replace(content,"@INSTALLROUTER@",INSTALLROUTER,1,-1,0) 1157 1158 ' cmdline programs 1159 content=replace(content,"@ALLCMDLINE@",ALLCMDLINE,1,-1,0) 1160 content=replace(content,"@INSTALLCMDLINE@",INSTALLCMDLINE,1,-1,0) 1161 1162 ' docs 1163 content=replace(content,"@INSTALLDOC@",INSTALLDOC,1,-1,0) 1164 1165 ' enabled apis 1166 content=replace(content,"@APIALLSUBDIRS@",APIALLSUBDIRS,1,-1,0) 1167 content=replace(content,"@APICLEANSUBDIRS@",APICLEANSUBDIRS,1,-1,0) 1168 content=replace(content,"@APIINSTALLSUBDIRS@",APIINSTALLSUBDIRS,1,-1,0) 1169 content=replace(content,"@APIUNINSTALLSUBDIRS@",APIUNINSTALLSUBDIRS,1,-1,0) 1170 1171 ' sqlr 1172 content=replace(content,"@SQLR@",SQLR,1,-1,0) 1173 content=replace(content,"@SQLRELAY@",SQLRELAY,1,-1,0) 1174 content=replace(content,"@SQL_RELAY@",SQL_RELAY,1,-1,0) 1175 1176 ' max connections 1177 content=replace(content,"@ABS_MAXCONNECTIONS@",ABS_MAXCONNECTIONS,1,-1,0) 1178 1179 ' tests 1180 content=replace(content,"@TESTDBS@",TESTDBS,1,-1,0) 1181 content=replace(content,"@TESTAPIS@",TESTAPIS,1,-1,0) 1182 1183 ' write output file 1184 set outfile=fso.OpenTextFile(outfiles(i),2,true) 1185 call outfile.Write(content) 1186 call outfile.Close() 1187next 1188 1189 1190' summary 1191WScript.Echo("") 1192WScript.Echo("***** Summary ***********************************************") 1193WScript.Echo(" Version : " & SQLR_VERSION) 1194WSCript.Echo("") 1195WScript.Echo(" Branding : " & SQL_RELAY & " / " & SQLRELAY & " / " & SQLR) 1196WSCript.Echo("") 1197WScript.Echo(" Command Line : Clients " & CMDLINEBUILD) 1198WSCript.Echo("") 1199WSCript.Echo(" APIs : C/C++ " & CPPBUILD & " Perl " & PERLBUILD) 1200WSCript.Echo(" Python " & PYTHONBUILD & " Ruby " & RUBYBUILD) 1201WSCript.Echo(" PHP " & PHPBUILD & " Java " & JAVABUILD) 1202WSCript.Echo(" PHP PDO " & PHPPDOBUILD & " ODBC " & ODBCDRIVERBUILD) 1203WSCript.Echo(" TCL " & TCLBUILD & " C# " & CSBUILD) 1204WScript.Echo(" node.js " & NODEJSBUILD) 1205WSCript.Echo("") 1206WScript.Echo(" Databases : Oracle8 " & ORACLE8BUILD & " MySQL " & MYSQLBUILD) 1207WScript.Echo(" PostgreSQL " & POSTGRESQLBUILD & " SAP/Sybase " & SYBASEBUILD) 1208WScript.Echo(" ODBC " & ODBCBUILD & " DB2 " & DB2BUILD) 1209WScript.Echo(" Firebird " & FIREBIRDBUILD & " Informix " & INFORMIXBUILD) 1210WScript.Echo(" Router " & ROUTERBUILD) 1211WScript.Echo("*************************************************************") 1212WScript.Echo("") 1213WScript.Echo("If you expected a Database or API that doesn't show up in the Summary") 1214WScript.Echo("then the configure script probably couldn't find a package it needed to") 1215WScript.Echo("build it. You can manually specify package locations using command line") 1216WScript.Echo("options.") 1217WScript.Echo("") 1218WScript.Echo("Type: cscript /nologo configure.vbs --help for a list of options.") 1219WScript.Echo("") 1220 1221 1222 1223Sub configureDatabase(dbname, dblowername, disabledb,_ 1224 basefolder, subfolderpattern,_ 1225 includessubfolder, includespattern,_ 1226 libssubfolder, libpattern, extralibs,_ 1227 defaultincludes, defaultlibssubfolder, defaultlibs,_ 1228 DBPREFIX, DBINCLUDES, DBLIBS, ALLDB, INSTALLDB) 1229 on error resume next 1230 1231 if disabledb=false then 1232 1233 if DBPREFIX="" then 1234 1235 ' if no db prefix was supplied, then look for the db 1236 includesfolder="" 1237 libsfolder="" 1238 libfile="" 1239 if findHeadersAndLibs(basefolder,subfolderpattern,_ 1240 includessubfolder,_ 1241 includespattern,_ 1242 includesfolder,_ 1243 libssubfolder,_ 1244 libpattern,_ 1245 libsfolder,_ 1246 libfile)=true then 1247 1248 ' if we found it then set the 1249 ' DBINCLUDES and DBLIBS 1250 DBINCLUDES="/I """ & includesfolder & """" 1251 DBLIBS="/LIBPATH:""" & libsfolder & """ " &_ 1252 libfile & " " & extralibs 1253 else 1254 ' if we didn't find it then disable the db 1255 disabledb=true 1256 end if 1257 1258 else 1259 1260 ' if a db prefix was supplied, then just use it 1261 DBINCLUDES="/I """ & DBPREFIX & defaultincludes & """" 1262 DBLIBS="/LIBPATH:""" & DBPREFIX &_ 1263 defaultlibssubfolder &_ 1264 " " & defaultlibs & """" 1265 end if 1266 end if 1267 1268 ' display success or failure 1269 if disabledb=false then 1270 ALLDB="all-" & dblowername 1271 INSTALLDB="installdll-" & dblowername 1272 1273 WScript.Echo(dbname & " includes... " & DBINCLUDES) 1274 WScript.Echo(dbname & " libs... " & DBLIBS) 1275 else 1276 WScript.Echo(dbname & " support will not be built. ") 1277 end if 1278End Sub 1279 1280 1281Function findHeadersAndLibs(basefolder, subfolderpattern,_ 1282 includessubfolder, includespattern, includesfolder,_ 1283 libssubfolder, libpattern, libsfolder, libfile) 1284 1285 on error resume next 1286 Err.Number=0 1287 1288 findHeadersAndLibs=false 1289 1290 ' open the base folder 1291 Set bf=fso.GetFolder(basefolder) 1292 if Err.Number<>0 then 1293 return 1294 end if 1295 1296 ' get and sort its subfolders (descending) 1297 ' (this makes more newly versioned folders be found first) 1298 Dim subfolders(100) 1299 i=0 1300 for each sf in bf.SubFolders 1301 if i < UBound(subfolders) then 1302 subfolders(i) = sf.Name 1303 i=i+1 1304 end if 1305 next 1306 Sort(subfolders) 1307 Reverse(subfolders) 1308 1309 ' run through the subfolders... 1310 for i=0 to UBound(subfolders) 1311 1312 sfname=subfolders(i) 1313 1314 ' reset output variables 1315 includesfolder="" 1316 libsfolder="" 1317 libfile="" 1318 1319 ' if we find the specified subfolder pattern... 1320 if InStr(sfname,subfolderpattern)>0 then 1321 1322 ' look for the includes subfolder 1323 isfname=basefolder & "\" & sfname &_ 1324 "\" & includessubfolder 1325 Set isf=fso.GetFolder(isfname) 1326 if Err.Number=0 then 1327 for each fname in isf.Files 1328 if InStr(fname,includespattern)>0 then 1329 includesfolder=isfname 1330 exit for 1331 end if 1332 next 1333 end if 1334 1335 ' look for the libs subfolder 1336 lsfname=basefolder & "\" & sfname &_ 1337 "\" & libssubfolder 1338 Set lsf=fso.GetFolder(lsfname) 1339 if Err.Number=0 then 1340 for each fname in lsf.Files 1341 if InStr(fname,libpattern)>0 then 1342 libsfolder=lsfname 1343 if InStrRev(fname,"\")>0 then 1344 libfile=_ 1345 Mid(fname,_ 1346 InStrRev(fname,"\")+1) 1347 else 1348 libfile=fname 1349 end if 1350 exit for 1351 end if 1352 next 1353 end if 1354 1355 ' exit if we found everything we were looking for 1356 if Len(includesfolder)>0 and _ 1357 Len(libsfolder)>0 and Len(libfile)>0 then 1358 findHeadersAndLibs=true 1359 exit for 1360 end if 1361 end if 1362 next 1363End Function 1364 1365 1366Sub findPrefix(basefolder, subfolderpattern, apiprefix, disableapi) 1367 1368 on error resume next 1369 Err.Number=0 1370 1371 findPrefix=false 1372 apiprefix="" 1373 1374 if disableapi=false then 1375 1376 disableapi=true 1377 1378 ' open the base folder 1379 Set bf=fso.GetFolder(basefolder) 1380 if Err.Number<>0 then 1381 return 1382 end if 1383 1384 ' get and sort its subfolders (descending) 1385 ' (this makes more newly versioned folders be found first) 1386 Dim subfolders(100) 1387 i=0 1388 for each sf in bf.SubFolders 1389 if i < UBound(subfolders) then 1390 if InStr(sf.Name,subfolderpattern)>0 then 1391 subfolders(i) = sf.Name 1392 i=i+1 1393 end if 1394 end if 1395 next 1396 Sort(subfolders) 1397 Reverse(subfolders) 1398 1399 ' return the first matching subfolder (after the sort) 1400 if UBound(subfolders)>-1 then 1401 apiprefix=basefolder & subfolders(0) 1402 disableapi=false 1403 end if 1404 1405 end if 1406End Sub 1407 1408 1409Sub findVersion(basefolder, fileprefix, filesuffix, apiversion) 1410 1411 on error resume next 1412 Err.Number=0 1413 1414 apiversion="" 1415 1416 ' open the base folder 1417 Set bf=fso.GetFolder(basefolder) 1418 if Err.Number<>0 then 1419 return 1420 end if 1421 1422 baselen=Len(basefolder)+1 1423 prefixlen=Len(fileprefix) 1424 suffixlen=Len(filesuffix) 1425 1426 ' run through its files 1427 for each fname in bf.Files 1428 1429 fname=Mid(fname,baselen+1) 1430 1431 ' ignore the file if it's too short 1432 if Len(fname)>prefixlen+suffixlen then 1433 1434 ' get the beginning and end of the file 1435 fprefix=Left(fname,prefixlen) 1436 fsuffix=Right(fname,suffixlen) 1437 1438 if fprefix=fileprefix and fsuffix=filesuffix then 1439 apiversion=Mid(fname,prefixlen+1,_ 1440 Len(fname)-prefixlen-suffixlen) 1441 exit for 1442 end if 1443 end if 1444 next 1445 1446 ' if necessary, run through its folders 1447 if apiversion="" then 1448 for each sfname in bf.SubFolders 1449 1450 sfname=Mid(sfname,baselen+1) 1451 1452 ' ignore the folder if it's too short 1453 if Len(sfname)>prefixlen+suffixlen then 1454 1455 ' get the beginning and end of the folder 1456 sfprefix=Left(sfname,prefixlen) 1457 sfsuffix=Right(sfname,suffixlen) 1458 1459 if sfprefix=fileprefix and _ 1460 sfsuffix=filesuffix then 1461 apiversion=Mid(sfname,prefixlen+1,_ 1462 Len(sfname)-prefixlen-suffixlen) 1463 exit for 1464 end if 1465 end if 1466 next 1467 end if 1468 1469End Sub 1470 1471Function Sort(arr) 1472 for i=UBound(arr)-1 to 0 step -1 1473 for j=0 to i 1474 if arr(j)>arr(j+1) then 1475 temp=arr(j+1) 1476 arr(j+1)=arr(j) 1477 arr(j)=temp 1478 end if 1479 next 1480 next 1481 Sort=arr 1482End Function 1483 1484Function Reverse(arr) 1485 for i=0 to UBound(arr)/2 1486 temp=arr(i) 1487 arr(i)=arr(UBound(arr)-i) 1488 arr(UBound(arr)-i)=temp 1489 next 1490 Reverse=arr 1491End Function 1492