X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?a=blobdiff_plain;f=com%2Fquemaster%2Fant%2Fm2%2Fm2compile.java;h=32063347736790321a0a596197bc1390413c147d;hb=e8fff3dd8a6a1bf00c89dd4342fa3154c4000d48;hp=6d43534b6e8c996d4873e1969f6d438195ce2a91;hpb=6d27b63dfd8b246a63b14c9e38f89ca8c5869828;p=pub%2Fdonny%2Fant-tasks.git diff --git a/com/quemaster/ant/m2/m2compile.java b/com/quemaster/ant/m2/m2compile.java index 6d43534..3206334 100644 --- a/com/quemaster/ant/m2/m2compile.java +++ b/com/quemaster/ant/m2/m2compile.java @@ -2,15 +2,22 @@ package com.quemaster.ant.m2; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; +import org.apache.tools.ant.taskdefs.condition.Os; +import java.util.ArrayList; import java.io.*; +/** + m2compile is an Ant Task that executes a Modula 2 compiler on the give + module in the given dir. Currently it just assumes that the Native + XDS Modula 2 compiler "xc" is in the PATH, and if the OS is not + in the Windows family uses "wine" to execute it. + */ public class m2compile extends Task { private String module="program"; private File dir=null; - // needs to recognize whether it's linux or not // needs to check wheter the compilation is needed // based on the timestamps of the exe and mod @@ -18,9 +25,15 @@ public class m2compile extends Task { // The method executing the task public void execute() throws BuildException { int exit = -1; + ArrayList list = new ArrayList(); + if (!Os.isFamily(Os.FAMILY_WINDOWS)) + list.add("wine"); + list.add("xc"); + list.add("=make"); + list.add("=all"); + list.add(module); try{ - ProcessBuilder pb = new ProcessBuilder( - "wine", "xc", "=make", "=all", module); + ProcessBuilder pb = new ProcessBuilder(list); pb.directory(dir); pb.inheritIO();