001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.cnd.makeproject.api.platforms;
043:
044: import org.netbeans.modules.cnd.api.compilers.CompilerSet;
045: import org.netbeans.modules.cnd.makeproject.api.configurations.LibraryItem;
046: import org.openide.util.Utilities;
047:
048: public abstract class Platform {
049: // Platform id's
050: public static final int PLATFORM_SOLARIS_SPARC = 0;
051: public static final int PLATFORM_SOLARIS_INTEL = 1;
052: public static final int PLATFORM_LINUX = 2;
053: public static final int PLATFORM_WINDOWS = 3;
054: public static final int PLATFORM_MACOSX = 4;
055: public static final int PLATFORM_GENERIC = 5;
056:
057: private static int defaultPlatform = -1;
058:
059: private String name;
060: private String displayName;
061: private int id;
062:
063: public Platform(String name, String displayName, int id) {
064: this .name = name;
065: this .displayName = displayName;
066: this .id = id;
067: }
068:
069: public String getName() {
070: return name;
071: }
072:
073: public String getDisplayName() {
074: return displayName;
075: }
076:
077: public int getId() {
078: return id;
079: }
080:
081: public abstract LibraryItem.StdLibItem[] getStandardLibraries();
082:
083: public abstract String getLibraryName(String baseName);
084:
085: public abstract String getLibraryLinkOption(String libName,
086: String libDir, String libPath, CompilerSet compilerSet);
087:
088: public LibraryItem.StdLibItem getStandardLibrarie(String name) {
089: for (int i = 0; i < getStandardLibraries().length; i++) {
090: if (getStandardLibraries()[i].getName().equals(name))
091: return getStandardLibraries()[i];
092: }
093: return null;
094: }
095:
096: public static int getDefaultPlatform() {
097: if (defaultPlatform <= 0) {
098: String arch = System.getProperty("os.arch"); // NOI18N
099: if (Utilities.isWindows())
100: defaultPlatform = Platform.PLATFORM_WINDOWS;
101: else if (Utilities.getOperatingSystem() == Utilities.OS_LINUX)
102: defaultPlatform = Platform.PLATFORM_LINUX;
103: else if (Utilities.getOperatingSystem() == Utilities.OS_SOLARIS
104: && arch.indexOf("86") >= 0) // NOI18N
105: defaultPlatform = Platform.PLATFORM_SOLARIS_INTEL;
106: else if (Utilities.getOperatingSystem() == Utilities.OS_SOLARIS)
107: defaultPlatform = Platform.PLATFORM_SOLARIS_SPARC;
108: else if (Utilities.getOperatingSystem() == Utilities.OS_MAC)
109: defaultPlatform = Platform.PLATFORM_MACOSX;
110: else
111: defaultPlatform = Platform.PLATFORM_GENERIC;
112: }
113: return defaultPlatform;
114: }
115: }
|