aoqi@0: /* aoqi@0: * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. aoqi@0: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. aoqi@0: * aoqi@0: * This code is free software; you can redistribute it and/or modify it aoqi@0: * under the terms of the GNU General Public License version 2 only, as aoqi@0: * published by the Free Software Foundation. aoqi@0: * aoqi@0: * This code is distributed in the hope that it will be useful, but WITHOUT aoqi@0: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or aoqi@0: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License aoqi@0: * version 2 for more details (a copy is included in the LICENSE file that aoqi@0: * accompanied this code). aoqi@0: * aoqi@0: * You should have received a copy of the GNU General Public License version aoqi@0: * 2 along with this work; if not, write to the Free Software Foundation, aoqi@0: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. aoqi@0: * aoqi@0: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA aoqi@0: * or visit www.oracle.com if you need additional information or have any aoqi@0: * questions. aoqi@0: * aoqi@0: */ aoqi@0: aoqi@0: public class ProjectCreator { aoqi@0: aoqi@0: public static void usage() { aoqi@0: System.out.println("ProjectCreator options:"); aoqi@0: System.err.println("WinGammaPlatform platform-specific options:"); aoqi@0: System.err.println(" -sourceBase "); aoqi@0: System.err.println(" -dspFileName "); aoqi@0: System.err.println(" -envVar "); aoqi@0: System.err.println(" -dllLoc "); aoqi@0: System.err.println(" If any of the above are specified, " aoqi@0: + "they must all be."); aoqi@0: System.err.println(" Note: if '-altRelativeInclude' option below is " aoqi@0: + "used, then the '-relativeAltSrcInclude' option must be used " aoqi@0: + "to specify the alternate source dir, e.g., 'src\\closed'"); aoqi@0: System.err.println(" Additional, optional arguments, which can be " aoqi@0: + "specified multiple times:"); aoqi@0: System.err.println(" -absoluteInclude "); aoqi@0: System.err.println(" -altRelativeInclude "); aoqi@0: System.err.println(" -relativeInclude "); aoqi@0: System.err.println(" -define "); aoqi@0: System.err.println(" -perFileLine "); aoqi@0: System.err.println(" -conditionalPerFileLine "); aoqi@0: System.err.println(" (NOTE: To work around a bug in nmake, where " aoqi@0: + "you can't have a '#' character in a quoted " aoqi@0: + "string, all of the lines outputted have \"#\"" + "prepended)"); aoqi@0: System.err.println(" -startAt "); aoqi@0: System.err.println(" -ignoreFile "); aoqi@0: System.err.println(" -additionalFile "); aoqi@0: System.err aoqi@0: .println(" -additionalGeneratedFile " aoqi@0: + ""); aoqi@0: System.err.println(" -prelink :"); aoqi@0: System.err aoqi@0: .println(" Generate a set of prelink commands for the given BUILD"); aoqi@0: System.err aoqi@0: .println(" (\"Debug\" or \"Release\"). The prelink description and commands"); aoqi@0: System.err.println(" are both quoted strings."); aoqi@0: System.err.println(" Default includes: \".\""); aoqi@0: System.err aoqi@0: .println(" Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\""); aoqi@0: } aoqi@0: aoqi@0: public static void main(String[] args) { aoqi@0: try { aoqi@0: if (args.length < 3) { aoqi@0: usage(); aoqi@0: System.exit(1); aoqi@0: } aoqi@0: aoqi@0: String platformName = args[0]; aoqi@0: Class platformClass = Class.forName(platformName); aoqi@0: WinGammaPlatform platform = (WinGammaPlatform) platformClass aoqi@0: .newInstance(); aoqi@0: aoqi@0: String[] platformArgs = new String[args.length - 1]; aoqi@0: System.arraycopy(args, 1, platformArgs, 0, platformArgs.length); aoqi@0: aoqi@0: // Allow the platform to write platform-specific files aoqi@0: platform.createVcproj(platformArgs); aoqi@0: } catch (Exception e) { aoqi@0: e.printStackTrace(); aoqi@0: System.exit(1); aoqi@0: } aoqi@0: } aoqi@0: }