hotspot/src/share/tools/MakeDeps/MakeDeps.java
author duke
Sat, 01 Dec 2007 00:00:00 +0000
changeset 1 489c9b5090e2
child 5547 f4b087cbb361
permissions -rw-r--r--
Initial load
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
/*
489c9b5090e2 Initial load
duke
parents:
diff changeset
     2
 * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     4
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
489c9b5090e2 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
489c9b5090e2 Initial load
duke
parents:
diff changeset
     7
 * published by the Free Software Foundation.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     8
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
489c9b5090e2 Initial load
duke
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
489c9b5090e2 Initial load
duke
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    13
 * accompanied this code).
489c9b5090e2 Initial load
duke
parents:
diff changeset
    14
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
489c9b5090e2 Initial load
duke
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    18
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    19
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    20
 * CA 95054 USA or visit www.sun.com if you need additional information or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    21
 * have any questions.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    22
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    23
 */
489c9b5090e2 Initial load
duke
parents:
diff changeset
    24
489c9b5090e2 Initial load
duke
parents:
diff changeset
    25
// This program reads an include file database.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    26
// The database should cover each self .c and .h file,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    27
//   but not files in /usr/include
489c9b5090e2 Initial load
duke
parents:
diff changeset
    28
// The database consists of pairs of nonblank words, where the first word is
489c9b5090e2 Initial load
duke
parents:
diff changeset
    29
//   the filename that needs to include the file named by the second word.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    30
// For each .c file, this program generates a fooIncludes.h file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    31
//  the .c file may include to include all the needed files in the right order.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    32
// It also generates a foo.dep file to include in the makefile.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    33
// Finally it detects cycles, and can work with two files, an old and a new one.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    34
// To incrementally write out only needed files after a small change.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    35
//
489c9b5090e2 Initial load
duke
parents:
diff changeset
    36
// Based on a suggestion by Roland Conybeare, algorithm suggested by Craig
489c9b5090e2 Initial load
duke
parents:
diff changeset
    37
//  Chambers, written by David Ungar, 3/1/89.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    38
//  Added PREFIX, {DEP/INC}_DIR, smaller dep output  10/92  -Urs
489c9b5090e2 Initial load
duke
parents:
diff changeset
    39
489c9b5090e2 Initial load
duke
parents:
diff changeset
    40
// Add something for precompiled headers
489c9b5090e2 Initial load
duke
parents:
diff changeset
    41
489c9b5090e2 Initial load
duke
parents:
diff changeset
    42
// To handle different platforms, I am introducing a platform file.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    43
// The platform file contains lines like:
489c9b5090e2 Initial load
duke
parents:
diff changeset
    44
// os = svr4
489c9b5090e2 Initial load
duke
parents:
diff changeset
    45
//
489c9b5090e2 Initial load
duke
parents:
diff changeset
    46
// Then, when processing the includeDB file, a token such as <os>
489c9b5090e2 Initial load
duke
parents:
diff changeset
    47
// gets replaced by svr4. -- dmu 3/25/97
489c9b5090e2 Initial load
duke
parents:
diff changeset
    48
489c9b5090e2 Initial load
duke
parents:
diff changeset
    49
// Modified to centralize Dependencies to speed up make -- dmu 5/97
489c9b5090e2 Initial load
duke
parents:
diff changeset
    50
489c9b5090e2 Initial load
duke
parents:
diff changeset
    51
public class MakeDeps {
489c9b5090e2 Initial load
duke
parents:
diff changeset
    52
489c9b5090e2 Initial load
duke
parents:
diff changeset
    53
    public static void usage() {
489c9b5090e2 Initial load
duke
parents:
diff changeset
    54
        System.out.println("usage:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    55
        System.out.println("\tmakeDeps platform-name     platform-file     database-file [MakeDeps args] [platform args]");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    56
        System.out.println("\tmakeDeps diffs platform-name old-platform-file old-database-file new-platform-file new-database-file [MakeDeps args] [platform args]");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    57
        System.out.println("where platform-name is the name of a platform MakeDeps supports");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    58
        System.out.println("(currently \"WinGammaPlatform\" or \"UnixPlatform\")");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    59
        System.out.println("MakeDeps options:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    60
        System.out.println("  -firstFile [filename]: Specify the first file in link order (i.e.,");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    61
        System.out.println("   to have a well-known function at the start of the output file)");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    62
        System.out.println("  -lastFile [filename]: Specify the last file in link order (i.e.,");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    63
        System.out.println("   to have a well-known function at the end of the output file)");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    64
        System.err.println("WinGammaPlatform platform-specific options:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    65
        System.err.println("  -sourceBase <path to directory (workspace) " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    66
                           "containing source files; no trailing slash>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    67
        System.err.println("  -dspFileName <full pathname to which .dsp file " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    68
                           "will be written; all parent directories must " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    69
                           "already exist>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    70
        System.err.println("  -envVar <environment variable to be inserted " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    71
                           "into .dsp file, substituting for path given in " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    72
                           "-sourceBase. Example: HotSpotWorkSpace>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    73
        System.err.println("  -dllLoc <path to directory in which to put " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    74
                           "jvm.dll and jvm_g.dll; no trailing slash>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    75
        System.err.println("  If any of the above are specified, "+
489c9b5090e2 Initial load
duke
parents:
diff changeset
    76
                           "they must all be.");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    77
        System.err.println("  Additional, optional arguments, which can be " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    78
                           "specified multiple times:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    79
        System.err.println("    -absoluteInclude <string containing absolute " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    80
                           "path to include directory>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    81
        System.err.println("    -relativeInclude <string containing include " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    82
                           "directory relative to -envVar>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    83
        System.err.println("    -define <preprocessor flag to be #defined " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    84
                           "(note: doesn't yet support " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    85
                           "#define (flag) (value))>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    86
        System.err.println("    -perFileLine <file> <line>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    87
        System.err.println("    -conditionalPerFileLine <file> <line for " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    88
                           "release build> <line for debug build>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    89
        System.err.println("  (NOTE: To work around a bug in nmake, where " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    90
                           "you can't have a '#' character in a quoted " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    91
                           "string, all of the lines outputted have \"#\"" +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    92
                           "prepended)");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    93
        System.err.println("    -startAt <subdir of sourceBase>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    94
        System.err.println("    -ignoreFile <file which won't be able to be " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    95
                           "found in the sourceBase because it's generated " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    96
                           "later>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
    97
        System.err.println("    -additionalFile <file not in database but " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    98
                           "which should show up in .dsp file, like " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
    99
                           "includeDB_core>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   100
        System.err.println("    -additionalGeneratedFile <environment variable of " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
   101
                           "generated file's location> <relative path to " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
   102
                           "directory containing file; no trailing slash> " +
489c9b5090e2 Initial load
duke
parents:
diff changeset
   103
                           "<name of file generated later in the build process>");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   104
        System.err.println("    -prelink <build> <desc> <cmds>:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   105
        System.err.println(" Generate a set of prelink commands for the given BUILD");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   106
        System.err.println(" (\"Debug\" or \"Release\"). The prelink description and commands");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   107
        System.err.println(" are both quoted strings.");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   108
        System.err.println("    Default includes: \".\"");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   109
        System.err.println("    Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\"");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   110
    }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   111
489c9b5090e2 Initial load
duke
parents:
diff changeset
   112
    public static void main(String[] args) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   113
        try {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   114
            if (args.length < 3) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   115
                usage();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   116
                System.exit(1);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   117
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   118
489c9b5090e2 Initial load
duke
parents:
diff changeset
   119
            int argc = 0;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   120
            boolean diffMode = false;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   121
            if (args[argc].equals("diffs")) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   122
                diffMode = true;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   123
                ++argc;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   124
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   125
489c9b5090e2 Initial load
duke
parents:
diff changeset
   126
            String platformName = args[argc++];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   127
            Class platformClass = Class.forName(platformName);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   128
489c9b5090e2 Initial load
duke
parents:
diff changeset
   129
            String plat1 = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   130
            String db1 = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   131
            String plat2 = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   132
            String db2 = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   133
489c9b5090e2 Initial load
duke
parents:
diff changeset
   134
            String firstFile = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   135
            String lastFile = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   136
489c9b5090e2 Initial load
duke
parents:
diff changeset
   137
            int numOptionalArgs =
489c9b5090e2 Initial load
duke
parents:
diff changeset
   138
                (diffMode ? (args.length - 6) : (args.length - 3));
489c9b5090e2 Initial load
duke
parents:
diff changeset
   139
            if (numOptionalArgs < 0) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   140
                usage();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   141
                System.exit(1);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   142
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   143
489c9b5090e2 Initial load
duke
parents:
diff changeset
   144
            plat1 = args[argc++];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   145
            db1   = args[argc++];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   146
489c9b5090e2 Initial load
duke
parents:
diff changeset
   147
            if (diffMode) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   148
              plat2 = args[argc++];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   149
              db2   = args[argc++];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   150
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   151
489c9b5090e2 Initial load
duke
parents:
diff changeset
   152
            // argc now points at start of optional arguments, if any
489c9b5090e2 Initial load
duke
parents:
diff changeset
   153
489c9b5090e2 Initial load
duke
parents:
diff changeset
   154
            try {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   155
              boolean gotOne = true;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   156
              while (gotOne && (argc < args.length - 1)) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   157
                gotOne = false;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   158
                String arg = args[argc];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   159
                if (arg.equals("-firstFile")) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   160
                  firstFile = args[argc + 1];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   161
                  argc += 2;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   162
                  gotOne = true;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   163
                } else if (arg.equals("-lastFile")) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   164
                  lastFile = args[argc + 1];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   165
                  argc += 2;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   166
                  gotOne = true;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   167
                }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   168
              }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   169
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   170
            catch (Exception e) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   171
              e.printStackTrace();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   172
              usage();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   173
              System.exit(1);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   174
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   175
489c9b5090e2 Initial load
duke
parents:
diff changeset
   176
            Platform platform = (Platform) platformClass.newInstance();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   177
            platform.setupFileTemplates();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   178
            long t = platform.defaultGrandIncludeThreshold();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   179
489c9b5090e2 Initial load
duke
parents:
diff changeset
   180
            String[] platformArgs = null;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   181
            int numPlatformArgs = args.length - argc;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   182
            if (numPlatformArgs > 0) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   183
                platformArgs = new String[numPlatformArgs];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   184
                int offset = argc;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   185
                while (argc < args.length) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   186
                  platformArgs[argc - offset] = args[argc];
489c9b5090e2 Initial load
duke
parents:
diff changeset
   187
                  ++argc;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   188
                }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   189
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   190
489c9b5090e2 Initial load
duke
parents:
diff changeset
   191
            // If you want to change the threshold, change the default
489c9b5090e2 Initial load
duke
parents:
diff changeset
   192
            // "grand include" threshold in Platform.java, or override
489c9b5090e2 Initial load
duke
parents:
diff changeset
   193
            // it in the platform-specific file like UnixPlatform.java
489c9b5090e2 Initial load
duke
parents:
diff changeset
   194
489c9b5090e2 Initial load
duke
parents:
diff changeset
   195
            Database previous = new Database(platform, t);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   196
            Database current = new Database(platform, t);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   197
489c9b5090e2 Initial load
duke
parents:
diff changeset
   198
            previous.canBeMissing();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   199
489c9b5090e2 Initial load
duke
parents:
diff changeset
   200
            if (firstFile != null) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   201
              previous.setFirstFile(firstFile);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   202
              current.setFirstFile(firstFile);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   203
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   204
            if (lastFile != null) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   205
              previous.setLastFile(lastFile);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   206
              current.setLastFile(lastFile);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   207
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   208
489c9b5090e2 Initial load
duke
parents:
diff changeset
   209
            if (diffMode) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   210
                System.out.println("Old database:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   211
                previous.get(plat1, db1);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   212
                previous.compute();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   213
                System.out.println("New database:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   214
                current.get(plat2, db2);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   215
                current.compute();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   216
                System.out.println("Deltas:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   217
                current.putDiffs(previous);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   218
            } else {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   219
                System.out.println("New database:");
489c9b5090e2 Initial load
duke
parents:
diff changeset
   220
                current.get(plat1, db1);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   221
                current.compute();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   222
                current.put();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   223
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   224
489c9b5090e2 Initial load
duke
parents:
diff changeset
   225
            if (platformArgs != null) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   226
                // Allow the platform to write platform-specific files
489c9b5090e2 Initial load
duke
parents:
diff changeset
   227
                platform.writePlatformSpecificFiles(previous, current,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   228
                                                    platformArgs);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   229
            }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   230
        }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   231
        catch (Exception e) {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   232
            e.printStackTrace();
489c9b5090e2 Initial load
duke
parents:
diff changeset
   233
              System.exit(1);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   234
        }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   235
    }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   236
}