summaryrefslogtreecommitdiff
path: root/win/build_all.py
diff options
context:
space:
mode:
Diffstat (limited to 'win/build_all.py')
-rw-r--r--win/build_all.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/win/build_all.py b/win/build_all.py
new file mode 100644
index 0000000..47716a1
--- /dev/null
+++ b/win/build_all.py
@@ -0,0 +1,69 @@
+import getopt, sys
+from config_all import main as config_all
+from build import main as build_openvpn
+from build_ddk import main as build_ddk
+from make_dist import main as make_dist
+
+def Usage():
+ '''Show usage information'''
+ print "Usage: build_all.py [OPTIONS]..."
+ print "Build OpenVPN using Visual Studio tools"
+ print
+ print " -h, --help Show this help"
+ print " -u, --unsigned Do not sign the TAP drivers"
+ print " -n, --notap Don't build the TAP driver"
+ sys.exit(1)
+
+def main(config):
+
+ # Do a signed build by default
+ signedBuild=True
+
+ # Build the TAP driver by default
+ tap=True
+
+ # Parse the command line argument(s)
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "hun", ["help", "unsigned", "notap"])
+ except getopt.GetoptError:
+ Usage()
+
+ for o, a in opts:
+ if o in ("-h","--help"):
+ Usage()
+ if o in ("-u", "--unsigned"):
+ signedBuild=False
+ if o in ("-n", "--notap"):
+ tap=False
+
+ # Check if the SignTool module is present. This avoids ImportErrors popping
+ # up annoyingly _after_ the build.
+ if signedBuild:
+ try:
+ from signtool import SignTool
+ except (ImportError):
+ print "ERROR: SignTool python module not found! Can't do a signed build."
+ sys.exit(1)
+ else:
+ print "Doing an unsigned build as requested"
+
+ # Start the build
+ config_all(config)
+ build_openvpn()
+
+ if tap:
+ build_ddk(config, 'tap', 'all')
+ build_ddk(config, 'tapinstall', 'all')
+ if signedBuild:
+ sign(config, 'all')
+ make_dist(config,tap=True)
+
+ else:
+ if 'TAP_PREBUILT' in config:
+ print "Using prebuilt TAP driver"
+ make_dist(config,tap=False)
+
+# if we are run directly, and not loaded as a module
+if __name__ == "__main__":
+ from wb import config
+ main(config)