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)