summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--install.js470
-rw-r--r--install.vbs400
-rw-r--r--src/makefile.win323
-rw-r--r--version.log6
5 files changed, 478 insertions, 402 deletions
diff --git a/Changes b/Changes
index d643c7c57..71c80e8ab 100644
--- a/Changes
+++ b/Changes
@@ -2,6 +2,7 @@ Anope Version S V N
--------------------
Provided by Anope Dev. <dev@anope.org> - 2006
06/14 A Indication in the version string if we're running on win32. [ #00]
+06/20 A Added support for Visual Studio 2005. [#408]
04/08 F Fixed Charybdis support on win32. [#487]
04/08 F Fixed thread stuff on windows. [#488]
04/08 F Fixed SGLine stuff on inspircd (not supported). [#489]
diff --git a/install.js b/install.js
new file mode 100644
index 000000000..7cb95980f
--- /dev/null
+++ b/install.js
@@ -0,0 +1,470 @@
+//
+// install.js - Windows Configuration
+//
+// (C) 2003-2005 Anope Team
+// Contact us at info@anope.org
+//
+// This program is free but copyrighted software; see the file COPYING for
+// details.
+//
+// Based on the original code of Epona by Lara.
+// Based on the original code of Services by Andy Church.
+//
+// $Id$
+//
+
+var anopeVersion = "Unknown";
+var defaultDrive = "C";
+
+var installerResponses = new Array();
+var softwareVersions = {
+ 'Compiler' : false,
+ 'MySQLDB' : false
+ };
+
+var installerQuestions = [
+ {
+ 'question' : [
+ 'Do you want to compile Anope with MySQL Support?',
+ 'NOTE: You will need to have installed MySQL 3.23 or Above'
+ ],
+ 'short' : 'Enable MySQL Support?',
+ 'options' : [
+ 'yes',
+ 'no'
+ ],
+ 'default_answer' : 'no',
+ 'store_answer' : function (answer) {
+ if (answer == 'yes') {
+ if (!findMySQL()) {
+ WScript.Echo("\nERROR: Cannot find MySQL - See error messages above for details.\n");
+ return false;
+ }
+ }
+ installerResponses['MySQL DB Support'] = answer;
+ return true;
+ }
+ },
+
+ {
+ 'question' : [
+ 'Do you want to compile Anope with Encrypted Passwords?',
+ 'NOTE: Once passwords are encrypted, they CANNOT be recovered!',
+ 'NOTE: Enabling Encrypted Passwords will also disable GETPASS/SENDPASS'
+ ],
+ 'short' : 'Enable Encrypted Passwords?',
+ 'options' : [
+ 'yes',
+ 'no'
+ ],
+ 'default_answer' : 'no',
+ 'store_answer' : function (answer) {
+ installerResponses['Encrypted Passwords'] = answer;
+ return true;
+ }
+ }
+
+ ];
+
+var buildPackages = [
+ {
+ 'name' : 'Microsoft Visual Studio 98',
+ 'libpaths' : [
+ 'Program Files\\Microsoft Visual Studio\\VC98\\Lib'
+ ],
+ 'incpaths' : [
+ 'Program Files\\Microsoft Visual Studio\\VC98\\Include'
+ ],
+ 'nmake' : [
+ 'Program Files\\Microsoft Visual Studio\\VC98\\Bin',
+ ''
+ ],
+ 'additional_switches' : [
+ '/QIfist'
+ ]
+ },
+
+ {
+ 'name' : 'Microsoft Visual Studio .NET 2003',
+ 'libpaths' : [
+ 'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Lib',
+ 'Program Files\\Microsoft Visual Studio .NET 2003\\PlatformSDK\\Lib'
+ ],
+ 'incpaths' : [
+ 'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Include',
+ 'Program Files\\Microsoft Visual Studio .NET 2003\\PlatformSDK\\Include'
+ ],
+ 'nmake' : [
+ 'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Bin',
+ ''
+ ],
+ 'additional_switches' : false
+ },
+
+ {
+ 'name' : 'Microsoft Visual Studio 2005',
+ 'libpaths' : [
+ 'Program Files\\Microsoft Visual Studio 8\\VC\\Lib',
+ 'Program Files\\Microsoft Platform SDK\\Lib'
+ ],
+ 'incpaths' : [
+ 'Program Files\\Microsoft Visual Studio 8\\VC\\Include',
+ 'Program Files\\Microsoft Platform SDK\\Include'
+ ],
+ 'nmake' : [
+ 'Program Files\\Microsoft Platform SDK\\Bin',
+ ''
+ ],
+ 'additional_switches' : [
+ '/w'
+ ]
+ }
+ ];
+
+
+ var mysqlVersions = [
+ {
+ 'name' : 'MySQL 5.0',
+ 'libpaths' : [
+ 'Program Files\\MySQL\\MySQL Server 5.0\\Lib\\opt'
+ ],
+ 'incpaths' : [
+ 'Program Files\\MySQL\\MySQL Server 5.0\\Include'
+ ],
+ 'additional_switches' : false
+ },
+
+ {
+ 'name' : 'MySQL 4.1',
+ 'libpaths' : [
+ 'Program Files\\MySQL\\MySQL Server 4.1\\Lib\\opt'
+ ],
+ 'incpaths' : [
+ 'Program Files\\MySQL\\MySQL Server 4.1\\Include'
+ ],
+ 'additional_switches' : false
+ },
+
+ {
+ 'name' : 'MySQL 4.0',
+ 'libpaths' : [
+ 'Program Files\\MySQL\\MySQL Server 4.0\\Lib\\opt'
+ ],
+ 'incpaths' : [
+ 'Program Files\\MySQL\\MySQL Server 4.0\\Include'
+ ],
+ 'additional_switches' : false
+ },
+
+ {
+ 'name' : 'MySQL 3.23 or older (or other default path)',
+ 'libpaths' : [
+ 'mysql\\lib\\opt'
+ ],
+ 'incpaths' : [
+ 'mysql\\include'
+ ],
+ 'additional_switches' : false
+ }
+
+ ];
+
+ var bannerReplacements = [
+ {
+ 'findtext' : /CURVER/g,
+ 'replacement' : function() { FindAnopeVersion(); return anopeVersion; }
+ },
+ {
+ 'findtext' : / For more options type .\/Config --help/g,
+ 'replacement' : function() { return ''; }
+ }
+ ];
+
+
+ var fso = WScript.CreateObject("Scripting.FileSystemObject");
+ var x, y, z;
+
+ if (fso.FileExists('.BANNER')) {
+ var bannerStream = fso.OpenTextFile(".BANNER");
+ var bannerText = bannerStream.ReadAll();
+ bannerStream.close();
+
+ for (x in bannerReplacements) {
+ var thisReplacement = bannerReplacements[x];
+ bannerText = bannerText.replace(thisReplacement['findtext'], thisReplacement['replacement']);
+ }
+
+ WScript.Echo(bannerText+"\n");
+ }
+ else {
+ WScript.Echo("ERROR: Cannot find banner file!\n");
+ }
+
+ WScript.Echo("Press Enter to Begin...");
+ InstallerInput();
+ WScript.Echo("");
+
+ for (x in installerQuestions) {
+ var thisQuestion = installerQuestions[x];
+ var validResponse = false;
+ var validOpts = new Array();
+ while (!validResponse) {
+ for (y in thisQuestion.question) {
+ var qLine = thisQuestion.question[y];
+ WScript.Echo(qLine);
+ }
+ WScript.Echo('');
+ var choiceLine = '';
+ for (y in thisQuestion.options) {
+ choiceLine += thisQuestion.options[y] + ', ';
+ validOpts[thisQuestion.options[y]] = true;
+ }
+ choiceLine = choiceLine.substring(0, choiceLine.length - 2);
+ WScript.Echo("Available Options: "+choiceLine);
+ WScript.Echo("Default Answer: "+thisQuestion.default_answer+"\n");
+ WScript.Echo(thisQuestion.short);
+ var inputValue = InstallerInput().toLowerCase();
+ if (!inputValue) {
+ inputValue = thisQuestion.default_answer;
+ }
+ if (!validOpts[inputValue]) {
+ WScript.Echo("ERROR: Invalid option '"+inputValue+"'\n");
+ }
+ else if (thisQuestion.store_answer(inputValue)) {
+ validResponse = true;
+ }
+ }
+ WScript.Echo("");
+ }
+
+ if (!findCompiler()) {
+ WScript.Echo("\nERROR: No suitable build tools were found!");
+ WScript.Echo("Please ensure you have downloaded and installed a version of Visual C++ and/or PlatformSDK.\n");
+ WScript.Echo("For more information on the tools needed to build Anope on Windows, see:\nhttp://windows.anope.org\n");
+ }
+ else {
+ WScript.Echo("\nBuild tools were found successfully!\n");
+ WScript.Echo("\nAnope will be compiled with the following options:\n");
+ for (x in installerResponses) {
+ var thisResponse = installerResponses[x];
+ WScript.Echo("\t"+x+":\t\t["+thisResponse.toUpperCase()+"]");
+ }
+ for (x in softwareVersions) {
+ var thisVer = softwareVersions[x];
+ if (!thisVer) {
+ WScript.Echo("\t"+x+" Version:\t\tNot Enabled");
+ }
+ else {
+ WScript.Echo("\t"+x+" Version:\t\t"+thisVer.name);
+ }
+ }
+ WScript.Echo("\nTo continue, please press Enter...");
+ InstallerInput();
+
+ var f = fso.OpenTextFile("Makefile.inc.win32", 2);
+ f.WriteLine("#");
+ f.WriteLine("# Generated by install.js");
+ f.WriteLine("#");
+
+ if (typeof(softwareVersions['Compiler'].additional_switches) !== 'boolean') {
+ var switch_line = '';
+ for (x in softwareVersions['Compiler'].additional_switches) {
+ switch_line += softwareVersions['Compiler'].additional_switches[x]+" ";
+ }
+ f.WriteLine("VC6="+switch_line);
+ }
+ var path_line = '';
+ for (x in softwareVersions['Compiler'].libpaths) {
+ path_line += "/LIBPATH:\""+defaultDrive+":\\"+softwareVersions['Compiler'].libpaths[x]+"\" ";
+ }
+ f.WriteLine("LIBPATH="+path_line);
+ path_line = '';
+ var path_line_rc = '';
+ for (x in softwareVersions['Compiler'].incpaths) {
+ path_line += "/I \""+defaultDrive+":\\"+softwareVersions['Compiler'].incpaths[x]+"\" ";
+ path_line_rc += "/i \""+defaultDrive+":\\"+softwareVersions['Compiler'].incpaths[x]+"\" ";
+ }
+ f.WriteLine("INCFLAGS="+path_line);
+ f.WriteLine("VERSION="+anopeVersion);
+ f.WriteLine("PROGRAM=anope.exe");
+ f.WriteLine("DATDEST=data");
+ f.WriteLine("CC=cl");
+ f.WriteLine("RC=rc");
+ f.WriteLine("MAKE=nmake -f Makefile.win32");
+ f.WriteLine("BASE_CFLAGS=$(VC6) /O2 /MD $(INCFLAGS)");
+ f.WriteLine("RC_FLAGS="+path_line_rc);
+ f.WriteLine("LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib");
+ f.WriteLine("LFLAGS=$(LIBPATH)");
+
+ if (installerResponses['MySQL DB Support'] == 'yes') {
+ f.WriteLine("USE_MYSQL=1");
+ f.WriteLine("MYSQL_LIB=\""+defaultDrive+":\\"+softwareVersions['MySQLDB'].libpaths[0]+"\"");
+ f.WriteLine("MYSQL_INC=\""+defaultDrive+":\\"+softwareVersions['MySQLDB'].incpaths[0]+"\"");
+ f.WriteLine("LIBS=$(LIBS) /LIBPATH:$(MYSQL_LIB)");
+ f.WriteLine("MYSQL_LIB_PATH=/LIBPATH:$(MYSQL_LIB)");
+ f.WriteLine("BASE_CFLAGS=$(BASE_CFLAGS) /I $(MYSQL_INC)");
+ f.WriteLine("MYSQL_INC_PATH=/I $(MYSQL_INC)");
+ f.WriteLine("RDB_C=rdb.c");
+ f.WriteLine("RDB_O=rdb.obj");
+ f.WriteLine("MYSQL_C=mysql.c");
+ f.WriteLine("MYSQL_O=mysql.obj");
+ f.WriteLine("BASE_CFLAGS=/D USE_MYSQL /D USE_RDB $(BASE_CFLAGS) /D HAVE_MYSQL_MYSQL_H");
+ f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib");
+ f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib");
+ }
+ else {
+ f.WriteLine("USE_MYSQL=0");
+ }
+
+ if (installerResponses['Encrypted Passwords'] == 'yes') {
+ f.WriteLine("DB_ENCRYPTION=1");
+ f.WriteLine("BASE_CFLAGS=/D USE_ENCRYPTION /D ENCRYPT_MD5 $(BASE_CFLAGS)");
+ }
+ else {
+ f.WriteLine("DB_ENCRYPTION=0");
+ }
+
+ f.WriteLine("MORE_CFLAGS = /I\"../include\"");
+ f.WriteLine("CFLAGS = /nologo $(CDEFS) $(BASE_CFLAGS) $(MORE_CFLAGS)");
+ f.close();
+
+ WScript.Echo("Configuration Complete!");
+ WScript.Echo("-------------------------------\n");
+ WScript.Echo("Anope has been configured to your system. To compile, simply type:");
+ WScript.Echo("nmake -f Makefile.win32\n");
+
+ }
+ // Fin.
+
+ // -----------------------------------------------------------------
+
+ // Functions
+
+ function FindAnopeVersion() {
+ if (!fso.FileExists('version.log')) {
+ anopeVersion = 'Unknown';
+ return;
+ }
+
+ var vMaj, vMin, vPat, vBuild, vExtra;
+
+ var versionLog = fso.OpenTextFile("version.log");
+ while (!versionLog.atEndOfStream) {
+ var versionLine = versionLog.readline();
+ var thisMatch = versionLine.replace('\n', '');
+ while (thisMatch.match(/\"/g)) {
+ thisMatch = thisMatch.replace('"', '');
+ }
+ versionLine = thisMatch;
+ if (versionLine.match(/VERSION_MAJOR=/g)) {
+ vMaj = versionLine.replace('VERSION_MAJOR=', '');
+ continue;
+ }
+ if (versionLine.match(/VERSION_MINOR=/g)) {
+ vMin = versionLine.replace('VERSION_MINOR=', '');
+ continue;
+ }
+ if (versionLine.match(/VERSION_PATCH=/g)) {
+ vPat = versionLine.replace('VERSION_PATCH=', '');
+ continue;
+ }
+ if (versionLine.match(/VERSION_EXTRA=/g)) {
+ vExtra = versionLine.replace('VERSION_EXTRA=', '');
+ continue;
+ }
+ if (versionLine.match(/VERSION_BUILD=/g)) {
+ vBuild = versionLine.replace('VERSION_BUILD=', '');
+ continue;
+ }
+ }
+ versionLog.close();
+ anopeVersion = vMaj+"."+vMin+"."+vPat+"."+vBuild+vExtra;
+ return;
+ }
+
+ function InstallerInput() {
+ var input = WScript.StdIn.Readline();
+ return input;
+ }
+
+ function findMySQL() {
+ WScript.Echo("\nLooking for MySQL...\n");
+ for (x in mysqlVersions) {
+ var thisSQLVer = mysqlVersions[x];
+ WScript.Echo("Looking for: "+thisSQLVer.name+"...");
+ if (!findFile("libmysql.lib", thisSQLVer.libpaths)) {
+ WScript.Echo("ERROR: Cannot find libmysql.lib - This version is probably not installed...\n");
+ continue;
+ }
+ if (!findFile("mysql.h", thisSQLVer.incpaths)) {
+ WScript.Echo("ERROR: Cannot find mysql.h - Half of this version of MySQL is installed (strange)...\n");
+ continue;
+ }
+ WScript.Echo("SUCCESS: "+thisSQLVer.name+" is installed, and is complete!\n");
+ softwareVersions.MySQLDB = thisSQLVer;
+ return true;
+ }
+ return false;
+ }
+
+ function findCompiler() {
+ WScript.Echo("\nLooking for a suitable compiler...\n");
+ var noPSDK = false;
+ for (x in buildPackages) {
+ var thisPack = buildPackages[x];
+ WScript.Echo("Looking for: "+thisPack.name+"...");
+ if (!findFile("MSVCRT.lib", thisPack.libpaths)) {
+ WScript.Echo("ERROR: Cannot find MSVCRT.lib - This version is probably not installed...\n");
+ continue;
+ }
+ if (!findFile("wsock32.lib", thisPack.libpaths)) {
+ WScript.Echo("ERROR: Cannot find wsock32.lib - Probably missing PlatformSDK...\n");
+ noPSDK = true;
+ continue;
+ }
+ if (!findFile("advapi32.lib", thisPack.libpaths)) {
+ WScript.Echo("ERROR: Cannot find advapi32.lib - Probably missing PlatformSDK...\n");
+ noPSDK = true;
+ continue;
+ }
+ if (!findFile("stdio.h", thisPack.incpaths)) {
+ WScript.Echo("ERROR: Cannot find stdio.h - Missing core header files...\n");
+ continue;
+ }
+ if (!findFile("windows.h", thisPack.incpaths)) {
+ WScript.Echo("ERROR: Cannot find windows.h - Probably missing PlatformSDK headers...\n");
+ noPSDK = true;
+ continue;
+ }
+ if (!findFile("nmake.exe", thisPack.nmake)) {
+ WScript.Echo("ERROR: Cannot find a copy of nmake.exe...\n");
+ WScript.Echo("In order to compile Anope, you need a working copy of nmake.exe on your system.");
+ WScript.Echo("A freely available copy can be downloaded from the url below.");
+ WScript.Echo("nmake.exe is also available in the PlatformSDK which can be freely downloaded from Microsoft.\n");
+ WScript.Echo("nmake.exe:\nhttp://download.microsoft.com/download/vc15/patch/1.52/w95/en-us/nmake15.exe\n");
+ break;
+ }
+ WScript.Echo("SUCCESS: "+thisPack.name+" was found, and is complete!");
+ softwareVersions.Compiler = thisPack;
+ return true;
+ }
+ if (noPSDK) {
+ WScript.Echo("Some of the build tools were detected on your computer, but the essential PlatformSDK components were missing.");
+ WScript.Echo("You will need to download the PlatformSDK from the URL below, ensuring that the Core Windows files, and Debugging Tools are installed.");
+ WScript.Echo("For more details on installing the PlatformSDK, visit http://windows.anope.org\n");
+ WScript.Echo("PSDK: http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe\n");
+ }
+ return false;
+ }
+
+ function findFile(fileName, arrayOfPaths) {
+ for (z in arrayOfPaths) {
+ var thisPath = arrayOfPaths[z];
+ if (fso.FileExists(defaultDrive+":\\"+thisPath+"\\"+fileName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
diff --git a/install.vbs b/install.vbs
deleted file mode 100644
index 8b47304e5..000000000
--- a/install.vbs
+++ /dev/null
@@ -1,400 +0,0 @@
-'
-' install.vbs - Windows Configuration
-'
-' (C) 2003-2005 Anope Team
-' Contact us at info@anope.org
-'
-' This program is free but copyrighted software; see the file COPYING for
-' details.
-'
-' Based on the original code of Epona by Lara.
-' Based on the original code of Services by Andy Church.
-'
-' $Id$
-'
-
-' Declare global variables
-Dim AnoVersion
-Dim UseMySQL
-Dim UseDBEnc
-Dim CompilerVer
-Dim fso
-Dim DefaultDrive
-Dim MySQLLibPath
-Dim MySQLHeadPath
-Dim LibPath
-Dim LibPath2
-Dim IncDir
-Dim IncDir2
-Dim verMaj
-Dim verMin
-Dim verPatch
-Dim verExtra
-Dim verBuild
-Dim verStringShort
-Dim verStringLong
-Dim f2
-Dim i
-
-' Set default values
-
- ' If you have installed your files onto a different drive letter
- ' please specify that drive letter here.
- DefaultDrive = "C"
-
-AnoVersion = "1.7.10"
-UseMySQL = "0"
-UseDBEnc = "0"
-CompilerVer = "VC7"
-Set fso = CreateObject("Scripting.FileSystemObject")
-MySQLLibPath = DefaultDrive & ":\Program Files\mysql\MySQL Server 4.1\lib\opt"
-MySQLHeadPath = DefaultDrive & ":\Program Files\mysql\MySQL Server 4.1\include"
-LibPath = ""
-LibPath2 = ""
-IncDir = ""
-IncDir2 = ""
-
-' Get Version
-If (fso.FileExists("version.log") = False) Then
- WScript.Echo "I can't find 'version.log' in this directory."
- WScript.Echo "Please run this script from a complete Anope source."
-Else
- Set f2 = fso.OpenTextFile("version.log", ForReading)
- Do While (i < 7)
- f2.SkipLine()
- i = i + 1
- Loop
- verMaj = Replace(Replace(Trim(f2.ReadLine), "VERSION_MAJOR=" & chr(34), ""), chr(34), "")
- verMin = Replace(Replace(Trim(f2.ReadLine), "VERSION_MINOR=" & chr(34), ""), chr(34), "")
- verPatch = Replace(Replace(Trim(f2.ReadLine), "VERSION_PATCH=" & chr(34), ""), chr(34), "")
- verExtra = Replace(Replace(Trim(f2.ReadLine), "VERSION_EXTRA=" & chr(34), ""), chr(34), "")
- verBuild = Replace(Replace(Trim(f2.ReadLine), "VERSION_BUILD=" & chr(34), ""), chr(34), "")
- f2.close
- verStringShort = verMaj & "." & verMin & "." & verPatch & verExtra
- verStringLong = verStringShort & "." & verBuild
-
- ' Display Header
- WScript.Echo ""
- WScript.Echo " ___"
- WScript.Echo " / _ \ http://www.anope.org"
- WScript.Echo " | /_\ | _ __ _ _ _ _ ___"
- WScript.Echo " | _ || '_ \/ _ \/ _ \ / _ \"
- WScript.Echo " | | | || | | |_| |_| | __/"
- WScript.Echo " |_| |_||_| |_\___/| _/ \___|"
- WScript.Echo " | |"
- WScript.Echo " |_| IRC Services"
- WScript.Echo " v" & verStringShort
- WScript.Echo ""
- WScript.Echo ""
- WScript.Echo "This program will help you to compile your Services, and ask you"
- WScript.Echo "questions regarding the compile-time settings of it during the"
- WScript.Echo "process."
- WScript.Echo ""
- WScript.Echo "Anope is a set of Services for IRC networks that allows users to"
- WScript.Echo "manage their nicks and channels in a secure and efficient way,"
- WScript.Echo "and administrators to manage their network with powerful tools."
- WScript.Echo ""
- WScript.Echo "Do not forget to read all the documents located in docs/,"
- WScript.Echo "especially the README and INSTALL files."
- WScript.Echo ""
- WScript.Echo "For all your Anope needs please visit our portal at"
- WScript.Echo "http://www.anope.org/"
- WScript.Echo ""
- WScript.Echo "Press Enter to Continue..."
- Wscript.StdIn.ReadLine
-
- ' Enable MySQL Support?
- Do While (UseMySQL <> "Y" AND UseMySQL <> "N" AND UseMySQL <> "YES" AND UseMySQL <> "NO")
- WScript.Echo "Would you like to compile Anope with MySQL Support?"
- WScript.Echo "(NOTE: You must have MySQL 3.23 or Later installed)"
- WScript.Echo ""
- WScript.Echo "Yes / No (Default)"
- UseMySQL = UCase(Trim(WScript.StdIn.ReadLine))
- If (UseMySQL = "") Then
- UseMySQL = "N"
- End If
- If (UseMySQL <> "Y" AND UseMySQL <> "N" AND UseMySQL <> "YES" AND UseMySQL <> "NO") Then
- WScript.Echo ""
- WScript.Echo "Invalid Selection!"
- WScript.Echo ""
- End If
- Loop
- WScript.Echo ""
-
- ' If enabled, find the required files
- If (UseMySQL = "Y" OR UseMySQL = "YES") Then
- If (fso.FileExists(MySQLLibPath & "\libmysql.lib") = False) Then
- Do While (fso.FileExists(MySQLLibPath & "\libmysql.lib") = False)
- WScript.Echo "ERROR: Cannot find 'libmysql.lib' in " & MySQLLibPath
- WScript.Echo ""
- WScript.Echo "Please enter the path to 'libmysql.lib': "
- WScript.Echo "(Please DO NOT include a trailing slash '\')"
- MySQLLibPath = Trim(WScript.StdIn.ReadLine)
- Loop
- End If
- If (fso.FileExists(MySQLHeadPath & "\mysql.h") = False) Then
- Do While (fso.FileExists(MySQLHeadPath & "\mysql.h") = False)
- WScript.Echo "ERROR: Cannot find 'mysql.h' in " & MySQLHeadPath
- WScript.Echo ""
- WScript.Echo "Please enter the path to 'mysql.h': "
- WScript.Echo "(Please DO NOT include a trailing slash '\')"
- MySQLHeadPath = Trim(WScript.StdIn.ReadLine)
- Loop
- End If
- WScript.Echo "All required files for MySQL Support have been located!"
- WScript.Echo "MySQL Support Enabled.."
- UseMySQL = "1"
- Else
- WScript.Echo "MySQL Support Disabled.."
- UseMySQL = "0"
- End If
- WScript.Echo ""
-
- ' Enable Database Encryption Support?
- Do While (UseDBEnc <> "Y" AND UseDBEnc <> "N" AND UseDBEnc <> "YES" AND UseDBEnc <> "NO")
- WScript.Echo "Would you like to enable Database Encryption?"
- WScript.Echo "(NOTE: If you enable encryption, you will NOT be able to recover"
- WScript.Echo "passwords at a later date. GETPASS and SENDPASS will also be useless)"
- WScript.Echo ""
- WScript.Echo "Yes / No (Default)"
- UseDBEnc = UCase(Trim(WScript.StdIn.ReadLine))
- If (UseDBEnc = "") Then
- UseDBEnc = "N"
- End If
- If (UseDBEnc <> "Y" AND UseDBEnc <> "N" AND UseDBEnc <> "YES" AND UseDBEnc <> "NO") Then
- WScript.Echo ""
- WScript.Echo "Invalid Selection!"
- WScript.Echo ""
- End If
- Loop
- WScript.Echo ""
- If (UseDBEnc = "Y" OR UseDBEnc = "YES") Then
- WScript.Echo "Database Encryption Enabled.."
- UseDBEnc = "1"
- Else
- WScript.Echo "Database Encryption Disabled.."
- UseDBEnc = "0"
- End If
- WScript.Echo ""
-
- ' Check for required libraries and paths
- WScript.Echo "I will now check you have all the things I need..."
- WScript.Echo ""
- If (fso.FolderExists(DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\VC7\Lib")) Then
- WScript.Echo "I found a copy of Microsoft Visual Studio .NET 2003.."
- LibPath = DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\VC7\Lib"
- LibPath2 = DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib"
- If (fso.FileExists(LibPath & "/MSVCRT.lib") = False And fso.FileExists(LibPath2 & "/MSVCRT.lib") = False) Then
- WScript.Echo "Hm. I can't seem to find the default library.. You probably only have the SDK installed.."
- LibPath = ""
- LibPath2 = ""
- ElseIf (fso.FileExists(LibPath & "/wsock32.lib") = False And fso.FileExists(LibPath2 & "/wsock32.lib") = False) Then
- WScript.Echo "I couldn't seem to find wsock32.lib.. You probably only have the SDK installed.."
- LibPath = ""
- LibPath2 = ""
- ElseIf (fso.FileExists(LibPath & "/advapi32.lib") = False And fso.FileExists(LibPath2 & "/advapi32.lib") = False) Then
- WScript.Echo "I couldn't seem to find advapi32.lib.. You probably only have the SDK installed.."
- LibPath = ""
- LibPath2 = ""
- ElseIf (fso.FileExists(LibPath & "/uuid.lib") = False And fso.FileExists(LibPath2 & "/uuid.lib") = False) Then
- WScript.Echo "I couldn't seem to find uuid.lib.. You probably only have the SDK installed.."
- LibPath = ""
- LibPath2 = ""
- End If
- IncDir = DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\VC7\Include"
- IncDir2 = DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include"
- End If
-
- If (fso.FolderExists(DefaultDrive & ":\Program Files\Microsoft Visual Studio\VC98\Lib") And LibPath = "") Then
- WScript.Echo "I found a copy of Microsoft Visual Studio 6.. It's old, but we can use it.."
- LibPath = DefaultDrive & ":\Program Files\Microsoft Visual Studio\VC98\Lib"
- CompilerVer = "VC6"
- If (fso.FileExists(LibPath & "/MSVCRT.lib") = False) Then
- WScript.Echo "Hm. I can't seem to find the default library.. Are you sure this is installed properly?"
- LibPath = ""
- ElseIf (fso.FileExists(LibPath & "/wsock32.lib") = False) Then
- WScript.Echo "I couldn't seem to find wsock32.lib.. We kind of need this.."
- LibPath = ""
- ElseIf (fso.FileExists(LibPath & "/advapi32.lib") = False) Then
- WScript.Echo "I couldn't seem to find advapi32.lib.. We kind of need this.."
- LibPath = ""
- ElseIf (fso.FileExists(LibPath & "/uuid.lib") = False) Then
- WScript.Echo "I couldn't seem to find uuid.lib.. We kind of need this.."
- LibPath = ""
- End If
- IncDir = DefaultDrive & ":\Program Files\Microsoft Visual Studio\VC98\Inlcude"
- End If
-
- If (fso.FolderExists(DefaultDrive & ":\Program Files\Microsoft Platform SDK\Lib") And LibPath = "") Then
- WScript.Echo "I found a copy of Microsoft Platform SDK.."
- LibPath = DefaultDrive & ":\Program Files\Microsoft Platform SDK\Lib"
- LibPath2 = DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\VC7\Lib"
- CompilerVer = "SDK"
- If (fso.FileExists(LibPath & "/MSVCRT.lib") = False And fso.FileExists(LibPath2 & "/MSVCRT.lib") = False) Then
- WScript.Echo "Hm. I can't seem to find the default library.. Are you sure this is installed properly?"
- LibPath = ""
- LibPath2 = ""
- ElseIf (fso.FileExists(LibPath & "/wsock32.lib") = False And fso.FileExists(LibPath2 & "/wsock32.lib") = False) Then
- WScript.Echo "I couldn't seem to find wsock32.lib.. We kind of need this.."
- LibPath = ""
- LibPath2 = ""
- ElseIf (fso.FileExists(LibPath & "/advapi32.lib") = False And fso.FileExists(LibPath2 & "/advapi32.lib") = False) Then
- WScript.Echo "I couldn't seem to find advapi32.lib.. We kind of need this.."
- LibPath = ""
- LibPath2 = ""
- ElseIf (fso.FileExists(LibPath & "/uuid.lib") = False And fso.FileExists(LibPath2 & "/uuid.lib") = False) Then
- WScript.Echo "I couldn't seem to find uuid.lib.. We kind of need this.."
- LibPath = ""
- LibPath2 = ""
- End If
- IncDir = DefaultDrive & ":\Program Files\Microsoft Visual C++ Toolkit 2003\include"
- IncDir2 = "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Include"
- End If
-
- If (fso.FileExists(DefaultDrive & ":\Program Files\Microsoft Visual Studio .NET 2003\VC7\Bin\nmake.exe") = False AND fso.FileExists(DefaultDrive & ":\Program Files\Microsoft Visual Studio\VC98\Bin\nmake.exe") = False AND fso.FileExists(DefaultDrive & ":\nmake.exe") = False AND fso.FileExists(DefaultDrive & ":\Program Files\Microsoft Platform SDK\Bin\nmake.exe") = False) Then
- WScript.Echo ""
- WScript.Echo "I couldn't seem to find a copy of nmake.exe on your system.."
- WScript.Echo ""
- WScript.Echo "I can continue without it for now, but you'll need it when you want to compile."
- WScript.Echo "I suggest downloading a copy from the URL below, and placing it in your C:\ drive."
- WScript.Echo ""
- WScript.Echo "http://download.microsoft.com/download/vc15/patch/1.52/w95/en-us/nmake15.exe"
- WScript.Echo ""
- WScript.Echo "You should place nmake.exe in " & DefaultDrive & ":\"
- WScript.Echo ""
- End If
-
- If (LibPath = "") Then
- Dim tmpPath
- WScript.Echo "I couldn't find any of the paths I was looking for.."
- WScript.Echo "If you have installed the Visual C++ Libraries in a non-standard location, enter"
- WScript.Echo "this location below, and I will try and look there.."
- WScript.Echo "(NOTE: Do NOT enter a trailing slash)"
- WScript.Echo ""
- WScript.Echo "Path to Visual C++ Libraries: "
- tmpPath = Trim(WScript.StdIn.ReadLine)
- If (fso.FolderExists(tmpPath) AND fso.FileExists(tmpPath & "\MSVCRT.lib")) Then
- LibPath = tmpPath
- If (fso.FileExists(LibPath & "\wsock32.lib") = False) Then
- WScript.Echo "I couldn't seem to find wsock32.lib.. We kind of need this.."
- LibPath = ""
- ElseIf (fso.FileExists(LibPath & "\advapi32.lib") = False) Then
- WScript.Echo "I couldn't seem to find advapi32.lib.. We kind of need this.."
- LibPath = ""
- ElseIf (fso.FileExists(LibPath & "\uuid.lib") = False) Then
- WScript.Echo "I couldn't seem to find uuid.lib.. We kind of need this.."
- LibPath = ""
- Else
- WScript.Echo "Okay, I found what I was looking for.."
- End If
- Else
- WScript.Echo "I couldn't find the default library in that folder."
- End If
- End If
-
- If (LibPath <> "") Then
- Dim f
- Const ForReading = 1, ForWriting = 2
- WScript.Echo "Looks like you've got all the libraries I need.."
- Set f = fso.OpenTextFile("Makefile.inc.win32", ForWriting)
- f.WriteLine("USE_MYSQL=" & UseMySQL)
- If (UseMySQL = "1") Then
- f.WriteLine("MYSQL_LIB=" & chr(34) & MySQLLibPath & chr(34))
- f.WriteLine("MYSQL_INC=" & chr(34) & MySQLHeadPath & chr(34))
- End If
- f.WriteLine("DB_ENCRYPTION=" & UseDBEnc)
- If (CompilerVer = "VC6") Then
- f.WriteLine("VC6=/QIfist")
- End If
- if (LibPath2 <> "") Then
- LibPath = LibPath2 & chr(34) & " /LIBPATH:" & chr(34) & LibPath
- End If
- f.WriteLine("VERSION=" & verMaj & "." & verMin & "." & verPatch & verExtra & "." & verBuild)
- f.WriteLine("LIBPATH=" & LibPath)
- f.WriteLine("PROGRAM=anope.exe")
- f.WriteLine("DATDEST=data")
- f.WriteLine("CC=cl")
- f.WriteLine("RC=rc")
- f.WriteLine("MAKE=nmake -f Makefile.win32")
- f.WriteLine("BASE_CFLAGS=/O2 /MD /I " & Chr(34) & IncDir & Chr(34))
- If IncDir2 <> "" Then
- f.WriteLine("BASE_CFLAGS=$(BASE_CFLAGS) /I " & Chr(34) & IncDir2 & Chr(34))
- f.WriteLine("RC_FLAGS=/i " & Chr(34) & IncDir2 & Chr(34))
- End If
- f.WriteLine("RC_FLAGS=$(RC_FLAGS) /i " & Chr(34) & IncDir & Chr(34))
- f.WriteLine("LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib")
- f.WriteLine("LFLAGS=/LIBPATH:" & chr(34) & "$(LIBPATH)" & chr(34))
- If (UseMySQL = "1") Then
- f.WriteLine("LIBS=$(LIBS) /LIBPATH:$(MYSQL_LIB)")
- f.WriteLine("MYSQL_LIB_PATH=/LIBPATH:$(MYSQL_LIB)")
- f.WriteLine("BASE_CFLAGS=$(BASE_CFLAGS) /I $(MYSQL_INC)")
- f.WriteLine("MYSQL_INC_PATH=/I $(MYSQL_INC)")
- f.WriteLine("RDB_C=rdb.c")
- f.WriteLine("RDB_O=rdb.obj")
- f.WriteLine("MYSQL_C=mysql.c")
- f.WriteLine("MYSQL_O=mysql.obj")
- f.WriteLine("BASE_CFLAGS=/D USE_MYSQL /D USE_RDB $(BASE_CFLAGS) /D HAVE_MYSQL_MYSQL_H")
- f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) \")
- f.WriteLine("/DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib")
- f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib")
- End If
- If (UseDBEnc = "1") Then
- f.WriteLine("BASE_CFLAGS=/D USE_ENCRYPTION /D ENCRYPT_MD5 $(BASE_CFLAGS)")
- End If
- f.WriteLine("MORE_CFLAGS = /I" & chr(34) & "../include" & chr(34))
- f.WriteLine("CFLAGS = /nologo $(VC6) $(CDEFS) $(BASE_CFLAGS) $(MORE_CFLAGS)")
- f.close()
- Set f = fso.CreateTextFile("make.bat")
- f.WriteLine("@echo off")
- Set WshShell = WScript.CreateObject("WScript.Shell")
- Set WshSysEnv = WshShell.Environment("SYSTEM")
- EnvLibPath = WshSysEnv("PATH")
- If CompilerVer = "SDK" Then
- If InStr(EnvLibPath, "C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin") Then
- f.WriteLine("Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%")
- f.WriteLine("Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%")
- f.WriteLine("Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%")
- End If
- ElseIf CompilerVer = "VC6" Then
- If InStr(EnvLibPath, "C:\PROGRA~1\MICROS~3\VC98\LIB") Then
- f.WriteLine("set VSCommonDir=C:\PROGRA~1\MICROS~3\Common")
- f.WriteLine("set MSDevDir=C:\PROGRA~1\MICROS~3\Common\msdev98")
- f.WriteLine("set MSVCDir=C:\PROGRA~1\MICROS~3\VC98")
- f.WriteLine("set VcOsDir=WIN95")
- f.WriteLine("if " & Chr(34) & "%OS%" & Chr(34) & " == " & Chr(34) & "Windows_NT" & Chr(34) & " set VcOsDir=WINNT")
- f.WriteLine("if " & Chr(34) & "%OS%" & Chr(34) & " == " & Chr(34) & "Windows_NT" & Chr(34) & " set PATH=%MSDevDir%\BIN;%MSVCDir%\BIN;%VSCommonDir%\TOOLS\%VcOsDir%;%VSCommonDir%\TOOLS;%PATH%")
- f.WriteLine("if " & Chr(34) & "%OS%" & Chr(34) & " == " & Chr(34) & "" & Chr(34) & " set PATH=" & Chr(34) & "%MSDevDir%\BIN" & Chr(34) & ";" & Chr(34) & "%MSVCDir%\BIN" & Chr(34) & ";" & Chr(34) & "%VSCommonDir%\TOOLS\%VcOsDir%" & Chr(34) & ";" & Chr(34) & "%VSCommonDir%\TOOLS" & Chr(34) & ";" & Chr(34) & "%windir%\SYSTEM" & Chr(34) & ";" & Chr(34) & "%PATH%" & Chr(34) & "")
- f.WriteLine("set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%")
- f.WriteLine("set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%")
- f.WriteLine("set VcOsDir=")
- f.WriteLine("set VSCommonDir=")
- End If
- Else
- If InStr(EnvLibPath, "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools") Then
- f.WriteLine("@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE")
- f.WriteLine("@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio .NET 2003")
- f.WriteLine("@set VCINSTALLDIR=%VSINSTALLDIR%")
- f.WriteLine("@set DevEnvDir=%VSINSTALLDIR%")
- f.WriteLine("@set MSVCDir=%VCINSTALLDIR%\VC7")
- f.WriteLine("@set PATH=%DevEnvDir%;%MSVCDir%\BIN;%VCINSTALLDIR%\Common7\Tools;%VCINSTALLDIR%\Common7\Tools\bin\prerelease;%VCINSTALLDIR%\Common7\Tools\bin;%FrameworkSDKDir%\bin;%FrameworkDir%\%FrameworkVersion%;%PATH%;")
- f.WriteLine("@set INCLUDE=%MSVCDir%\ATLMFC\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\PlatformSDK\include\prerelease;%MSVCDir%\PlatformSDK\include;%FrameworkSDKDir%\include;%INCLUDE%")
- f.WriteLine("@set LIB=%MSVCDir%\ATLMFC\LIB;%MSVCDir%\LIB;%MSVCDir%\PlatformSDK\lib\prerelease;%MSVCDir%\PlatformSDK\lib;%FrameworkSDKDir%\lib;%LIB%")
- End If
- End If
- If (fso.FileExists("anope.exe")) Then
- f.WriteLine("nmake -f Makefile.win32 spotless")
- End If
- f.WriteLine("nmake -f Makefile.win32")
- f.close()
- WScript.Echo "Configuration Complete!"
- WScript.Echo ""
- WScript.Echo "Type make to Compile Anope"
- Else
- WScript.Echo ""
- WScript.Echo "Sorry, but you didn't have all the required libraries installed."
- WScript.Echo ""
- WScript.Echo "See http://wiki.anope.org/Documentation:Windows for a list of downloads needed to install Anope"
- WScript.Echo ""
- End If
-
-End If
diff --git a/src/makefile.win32 b/src/makefile.win32
index 4ae70107e..31c90346f 100644
--- a/src/makefile.win32
+++ b/src/makefile.win32
@@ -44,9 +44,10 @@ spotless:
-@erase *.obj *.exe *.exp *.lib tools\*.exe *.res
install:
- -@copy anope.exe ..\anope.exe
+ -@copy anope.exe ..\anope.exe
-@mkdir ..\$(DATDEST)\bin
-@copy bin\* ..\$(DATDEST)\bin
+ -@copy anope.exe.manifest ..\anope.exe.manifest
win32.res: win32.rc
$(RC) /l 0x409 $(RC_FLAGS) /fowin32.res win32.rc
diff --git a/version.log b/version.log
index 07b8f93e9..8f946c8f7 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="14"
VERSION_EXTRA=""
-VERSION_BUILD="1060"
+VERSION_BUILD="1061"
# $Log$
#
+# BUILD : 1.7.14 (1061)
+# BUGS : 408
+# NOTES : Added support for Visual Studio 2005, partially by replacing install.vbs by a more robust install.js -- thanks heinz!
+#
# BUILD : 1.7.14 (1060)
# BUGS : 523
# NOTES : Module data was cleared before calling AnopeFini, thus being evil to saving-routines and such (like in ns_noop)