diff --git a/bindings/java/hyperic_jni/jni-build.xml b/bindings/java/hyperic_jni/jni-build.xml index 7c0d0631..034ec21f 100644 --- a/bindings/java/hyperic_jni/jni-build.xml +++ b/bindings/java/hyperic_jni/jni-build.xml @@ -25,7 +25,6 @@ USA. - @@ -195,11 +194,6 @@ USA. - - - - diff --git a/bindings/java/hyperic_jni/src/org/hyperic/jni/ArchNameTask.java b/bindings/java/hyperic_jni/src/org/hyperic/jni/ArchNameTask.java index 4041b134..e1c275d3 100644 --- a/bindings/java/hyperic_jni/src/org/hyperic/jni/ArchNameTask.java +++ b/bindings/java/hyperic_jni/src/org/hyperic/jni/ArchNameTask.java @@ -18,6 +18,11 @@ package org.hyperic.jni; +import java.io.File; +import java.io.FileFilter; +import java.util.Arrays; +import java.util.Comparator; + import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; @@ -78,5 +83,34 @@ public class ArchNameTask extends Task { getProject().setProperty("jni.gccm", "-m31"); } } + + if (ArchLoader.IS_DARWIN) { + //default to most recent SDK + //MacOSX10.3.9.sdk, MacOSX10.4u.sdk, MacOSX10.5.sdk,etc. + File[] sdks = + new File("/Developer/SDKs").listFiles(new FileFilter() { + public boolean accept(File file) { + String name = file.getName(); + return + name.startsWith("MacOSX10.") && + name.endsWith(".sdk"); + } + }); + if (sdks != null) { + Arrays.sort(sdks, new Comparator() { + public int compare(Object s1, Object s2) { + return (int)(((File)s2).lastModified() - + ((File)s1).lastModified()); + } + }); + final String prop = "uni.sdk"; + String sdk = getProject().getProperty(prop); + if (sdk == null) { + sdk = sdks[0].getPath(); + getProject().setProperty(prop, sdk); + } + System.out.println("Using SDK=" + sdk); + } + } } }