summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorAlon Bar-Lev <alon.barlev@gmail.com>2012-02-29 22:12:12 +0200
committerDavid Sommerseth <davids@redhat.com>2012-03-22 22:53:39 +0100
commit4b1a82db0975088dbfe69c2a97f0a96ef972b2a4 (patch)
treefc61e38d86d9fe0898e8c427e7f3f2cf4d464529 /build
parent709f7a1f73baade82f07146273d31d53007f394d (diff)
downloadopenvpn-4b1a82db0975088dbfe69c2a97f0a96ef972b2a4.tar.gz
openvpn-4b1a82db0975088dbfe69c2a97f0a96ef972b2a4.tar.xz
openvpn-4b1a82db0975088dbfe69c2a97f0a96ef972b2a4.zip
build: win-msvc: msbuild format
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com> Acked-by: Samuli Seppänen <samuli@openvpn.net> Signed-off-by: David Sommerseth <davids@redhat.com>
Diffstat (limited to 'build')
-rw-r--r--build/Makefile.am2
-rw-r--r--build/msvc/Makefile.am15
-rw-r--r--build/msvc/msvc-generate/Makefile.am18
-rwxr-xr-xbuild/msvc/msvc-generate/Makefile.mak13
-rw-r--r--build/msvc/msvc-generate/msvc-generate.js118
-rw-r--r--build/msvc/msvc-generate/msvc-generate.vcproj74
6 files changed, 240 insertions, 0 deletions
diff --git a/build/Makefile.am b/build/Makefile.am
index a993b20..b53ff52 100644
--- a/build/Makefile.am
+++ b/build/Makefile.am
@@ -13,3 +13,5 @@ MAINTAINERCLEANFILES = \
EXTRA_DIST = \
ltrc.inc
+
+SUBDIRS = msvc
diff --git a/build/msvc/Makefile.am b/build/msvc/Makefile.am
new file mode 100644
index 0000000..7dc3def
--- /dev/null
+++ b/build/msvc/Makefile.am
@@ -0,0 +1,15 @@
+#
+# OpenVPN -- An application to securely tunnel IP networks
+# over a single UDP port, with support for SSL/TLS-based
+# session authentication and key exchange,
+# packet encryption, packet authentication, and
+# packet compression.
+#
+# Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
+# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
+#
+
+MAINTAINERCLEANFILES = \
+ $(srcdir)/Makefile.in
+
+SUBDIRS = msvc-generate
diff --git a/build/msvc/msvc-generate/Makefile.am b/build/msvc/msvc-generate/Makefile.am
new file mode 100644
index 0000000..035ae22
--- /dev/null
+++ b/build/msvc/msvc-generate/Makefile.am
@@ -0,0 +1,18 @@
+#
+# OpenVPN -- An application to securely tunnel IP networks
+# over a single UDP port, with support for SSL/TLS-based
+# session authentication and key exchange,
+# packet encryption, packet authentication, and
+# packet compression.
+#
+# Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
+# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
+#
+
+MAINTAINERCLEANFILES = \
+ $(srcdir)/Makefile.in
+
+dist_noinst_DATA = \
+ msvc-generate.vcproj \
+ Makefile.mak \
+ msvc-generate.js
diff --git a/build/msvc/msvc-generate/Makefile.mak b/build/msvc/msvc-generate/Makefile.mak
new file mode 100755
index 0000000..72415f1
--- /dev/null
+++ b/build/msvc/msvc-generate/Makefile.mak
@@ -0,0 +1,13 @@
+# Copyright (C) 2008-2012 Alon Bar-Lev <alon.barlev@gmail.com>
+
+CONFIG=$(SOURCEBASE)/version.m4
+INPUT=$(SOURCEBASE)/config-msvc-version.h.in
+OUTPUT=$(SOURCEBASE)/config-msvc-version.h
+
+all: $(OUTPUT)
+
+$(OUTPUT): $(INPUT) $(CONFIG)
+ cscript //nologo msvc-generate.js --config="$(CONFIG)" --input="$(INPUT)" --output="$(OUTPUT)"
+
+clean:
+ -del "$(OUTPUT)"
diff --git a/build/msvc/msvc-generate/msvc-generate.js b/build/msvc/msvc-generate/msvc-generate.js
new file mode 100644
index 0000000..d9564cf
--- /dev/null
+++ b/build/msvc/msvc-generate/msvc-generate.js
@@ -0,0 +1,118 @@
+/*
+ * msvc-generate.js - string transformation
+ *
+ * Copyright (C) 2008-2012 Alon Bar-Lev <alon.barlev@gmail.com>
+ *
+ * BSD License
+ * ============
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * o Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * o Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * o Neither the name of the Alon Bar-Lev nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+var ForReading = 1;
+var fso = new ActiveXObject("Scripting.FileSystemObject");
+var input = "nul";
+var output = "nul";
+var files = new Array();
+var env = new Array();
+
+function initialize() {
+ for (var i=0;i<WScript.Arguments.length;i++) {
+ var arg = WScript.Arguments(i);
+ if (arg.match(/^--input=(.*)$/)) {
+ input=RegExp.$1;
+ }
+ else if (arg.match(/^--output=(.*)$/)) {
+ output=RegExp.$1;
+ }
+ else if (arg.match(/^--config=(.*)$/)) {
+ files.push(RegExp.$1);
+ }
+ else if (arg.match(/^--var=([^=]*)=(.*)$/)) {
+ env[RegExp.$1] = RegExp.$2;
+ }
+ }
+}
+
+function process_config(vars, file) {
+ try {
+ var fin = fso.OpenTextFile(file, ForReading);
+
+ while (!fin.AtEndOfStream) {
+ var content = fin.ReadLine();
+ if (content.match(/^[ \t]*define\(\[(.*)\],[ \t]*\[(.*)\]\)[ \t]*/)) {
+ vars[RegExp.$1] = RegExp.$2;
+ }
+ }
+ }
+ catch(e) {
+ throw new Error(1, "Cannot process '" + file + "'.");
+ }
+}
+
+function process_file(vars, input, output) {
+ var fin = fso.OpenTextFile(input, ForReading);
+ var fout = fso.CreateTextFile(output);
+ var content = fin.ReadAll();
+
+ for (var i in vars) {
+ content = content.replace(new RegExp("@"+i+"@", "g"), vars[i]);
+ }
+
+ fout.Write(content);
+}
+
+function build_vars() {
+ var vars = new Array();
+ for (var f in files) {
+ process_config(vars, files[f]);
+ }
+ for (var e in env) {
+ vars[e] = env[e];
+ }
+ return vars;
+}
+
+function main() {
+ try {
+ initialize();
+
+ var vars = build_vars();
+
+ process_file(
+ vars,
+ input,
+ output
+ );
+
+ WScript.Quit(0);
+ }
+ catch(e) {
+ WScript.Echo("ERROR: when procssing " + output + ": " + e.description);
+ WScript.Quit(1);
+ }
+}
+
+main();
diff --git a/build/msvc/msvc-generate/msvc-generate.vcproj b/build/msvc/msvc-generate/msvc-generate.vcproj
new file mode 100644
index 0000000..3b7dc18
--- /dev/null
+++ b/build/msvc/msvc-generate/msvc-generate.vcproj
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="msvc-generate"
+ ProjectGUID="{8598C2C8-34C4-47A1-99B0-7C295A890615}"
+ RootNamespace="msvc-generate"
+ Keyword="MakeFileProj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="nmake -f Makefile.mak all"
+ ReBuildCommandLine="nmake -f Makefile.mak clean all"
+ CleanCommandLine="nmake -f Makefile.mak clean"
+ Output="config-msvc-version.h"
+ PreprocessorDefinitions="WIN32;_DEBUG"
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="nmake -f Makefile.mak all"
+ ReBuildCommandLine="nmake -f Makefile.mak clean all"
+ CleanCommandLine="nmake -f Makefile.mak clean"
+ Output="config-msvc-version.h"
+ PreprocessorDefinitions="WIN32;NDEBUG"
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath=".\Makefile.mak"
+ >
+ </File>
+ <File
+ RelativePath=".\msc-generate.js"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>