#!/usr/bin/env python ## Copyright (C) 2006, 2011 Free Software Foundation ## Written by Gary Benson ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. import sys sys.path.insert(0, "@python_mod_dir_expanded@") import aotcompile import getopt import os usage = """\ Usage: %s [OPTION...] SRCDIR DSTDIR AOT-compile all Java bytecode in SRCDIR into DSTDIR. Options: -M, --make=PATH make executable to use (%s) -C, --gcj=PATH gcj executable to use (%s) -D, --dbtool=PATH gcj-dbtool executable to use (%s) -m, --makeflags=FLAGS flags to pass to make during build -c, --gcjflags=FLAGS flags to pass to gcj during compilation in addition to %s -l, --ldflags=FLAGS flags to pass to gcj during linking in addition to %s -e, --exclude=PATH do not compile PATH Extra flags may also be passed using the AOT_MAKEFLAGS, AOT_GCJFLAGS and AOT_LDFLAGS environment variables.""" % ( os.path.basename(sys.argv[0]), aotcompile.PATHS["make"], aotcompile.PATHS["gcj"], aotcompile.PATHS["dbtool"], repr(" ".join(aotcompile.GCJFLAGS)), repr(" ".join(aotcompile.LDFLAGS))) try: if os.environ.has_key("RPM_PACKAGE_NAME"): raise aotcompile.Error, "not for use within rpm specfiles" try: opts, args = getopt.getopt( sys.argv[1:], "M:C:D:m:c:l:e:", ["make=", "gcj=", "dbtool=", "makeflags=" "gcjflags=", "ldflags=", "exclude="]) srcdir, dstdir = args except: print >>sys.stderr, usage sys.exit(1) compiler = aotcompile.Compiler(srcdir, dstdir) for o, a in opts: if o in ("-M", "--make"): aotcompile.PATHS["make"] = a if o in ("-C", "--gcj"): aotcompile.PATHS["gcj"] = a if o in ("-D", "--dbtool"): aotcompile.PATHS["dbtool"] = a if o in ("-m", "--makeflags"): compiler.makeflags[0:0] = a.split() if o in ("-c", "--gcjflags"): compiler.gcjflags[0:0] = a.split() if o in ("-l", "--ldflags"): compiler.ldflags[0:0] = a.split() if o in ("-e", "--exclude"): compiler.exclusions.append(a) compiler.makeflags[0:0] = os.environ.get("AOT_MAKEFLAGS", "").split() compiler.gcjflags[0:0] = os.environ.get("AOT_GCJFLAGS", "").split() compiler.ldflags[0:0] = os.environ.get("AOT_LDFLAGS", "").split() compiler.compile() except aotcompile.Error, e: print >>sys.stderr, "%s: error: %s" % ( os.path.basename(sys.argv[0]), e) sys.exit(1)