diff options
Diffstat (limited to 'win/build_all.py')
-rw-r--r-- | win/build_all.py | 69 |
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) |