dol: initial dol commit
[jump.git] / dol / src / dol / visitor / yapi / YapiMakefileVisitor.java
diff --git a/dol/src/dol/visitor/yapi/YapiMakefileVisitor.java b/dol/src/dol/visitor/yapi/YapiMakefileVisitor.java
new file mode 100644 (file)
index 0000000..5103ec9
--- /dev/null
@@ -0,0 +1,76 @@
+/* $Id: YapiMakefileVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
+package dol.visitor.yapi;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.util.Vector;
+
+import dol.datamodel.pn.Process;
+import dol.datamodel.pn.ProcessNetwork;
+import dol.visitor.PNVisitor;
+
+/**
+ *
+ */
+public class YapiMakefileVisitor extends PNVisitor {
+
+    /**
+     *
+     */
+    public YapiMakefileVisitor(String dir) {
+        _dir = dir;
+    }
+
+    /**
+     *
+     */
+    public void visitComponent(ProcessNetwork pn) {
+        try {
+            String filename = _dir + _delimiter + "Makefile";
+            OutputStream file = new FileOutputStream(filename);
+            PrintStream ps = new PrintStream(file);
+            ps.println("YAPI = /lib/yapi");
+            ps.println("INCLUDES = -I$(YAPI)/include -Iwrappers -Ilib -Iprocesses -I.");
+            ps.println("LIBS = $(YAPI)/lib/libyapi.a");
+            ps.println("CXX = g++");
+            ps.println("CXXFLAGS = -g -Wall -O $(INCLUDES)");
+            ps.println("OBJS = application.o  \\");
+            Vector<String> processList = new Vector<String>();
+            for (Process p : pn.getProcessList()) {
+                String basename = p.getBasename();
+                if (!processList.contains(basename)) {
+                    processList.add(basename);
+                    ps.println("       wrappers/" + p.getBasename()
+                            + "_wrapper.o \\");
+                }
+            }
+            ps.println("       lib/dolSupport.o \\");
+            ps.println("       lib/ProcessWrapper.o \\");
+            ps.println("       lib/main.o");
+            ps.println();
+            ps.println("EXE = ./sc_application");
+            ps.println();
+            ps.println("all : $(EXE)");
+            ps.println();
+            ps.println("test : $(EXE)");
+            ps.println("\t@$(EXE)");
+            ps.println();
+            ps.println("$(EXE) : $(OBJS)");
+            ps.println("\t$(CXX) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXE)");
+            ps.println();
+            ps.println("clean : ;");
+            ps.println("\trm -rf $(OBJS) $(EXE)");
+        }
+        catch (IOException e) {
+            System.out.println(" Yapi Makefile Visitor: exception " +
+                               "occured: " + e.getMessage());
+            e.printStackTrace();
+        }
+    }
+
+    protected String _dir = null;
+    protected String _name = "sc_application";
+}
+