#!/usr/bin/env python # encoding: utf-8 """ configure.py Created by Eric Naeseth on 2006-08-24. Copyright (c) 2006 ionws.com. All rights reserved. """ import sys import getopt import os.path help_message = ''' -h --help This help information -v --version Print BNCSutil version -p --prefix=PREFIX Install prefix -e --endian=ORDER Manually specify byte order -w --windows Force build for Windows -d --enable-debug Compile in debugging symbols --enable-debug-output Enable output of debugging information --with-gmp=PATH Path to GMP library --with-libtool=TOOL Specify libtool to use --enable-shared Build shared library (default: yes) --disable-shared --enable-static Build static library (default: yes) --disable-static ''' class Usage(Exception): def __init__(self, msg): self.msg = msg source = ( ('bsha1.cpp', None) ('cdkeydecoder.cpp', None) ('checkrevision.cpp', None) ('debug.c', None) ('decodekey.cpp', None) ('file.c', None) ('hashtable.c', None) ('libinfo.cpp', None) ('nls.c', None) ('oldauth.cpp', None) ('pe.c', None) ('sha1.c', None) ('stack.c', None) ) common_headers = ( 'bncsutil.h', 'mutil.h', 'mutil_types.h' ) class Makefile(object): def __init__(self, source_files, common_headers): self.source_files = source_files self.common_headers = common_headers self.f = None self.path = os.path.abspath(os.path.dirname(sys.argv[0])) self.decls = { 'prefix': '/usr/local', 'cbase': os.path.join(self.path, 'src'), 'src': os.path.join(self.path, 'src', 'bncsutil'), 'tests': os.path.join(self.path, 'tests'), 'cc': 'gcc', 'cxx': 'g++', 'cflags': '-O2 -I$(CBASE)', 'ldflags': } def _decls(self): def generate(self): self.f = open('Makefile', 'w') def main(argv=None): if argv is None: argv = sys.argv try: try: opts, args = getopt.getopt(argv[1:], "hvp:e:wd", ["help", "version", "prefix=", "endian=", "windows", "enable-debug", "enable-debug-output", "with-gmp=", "with-libtool=", "enable-shared", "disable-shared", "enable-static", "disable-static"]) except getopt.error, msg: raise Usage(msg) # option processing for option, value in opts: if option == "-v": verbose = True if option in ("-h", "--help"): raise Usage(help_message) if option in ("-o", "--output"): output = value except Usage, err: print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg) print >> sys.stderr, "\t for help use --help" return 2 if __name__ == "__main__": sys.exit(main())