dol: initial dol commit
[jump.git] / dol / src / dol / visitor / yapi / YapiMakefileVisitor.java
1 /* $Id: YapiMakefileVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
2 package dol.visitor.yapi;
3
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6 import java.io.OutputStream;
7 import java.io.PrintStream;
8 import java.util.Vector;
9
10 import dol.datamodel.pn.Process;
11 import dol.datamodel.pn.ProcessNetwork;
12 import dol.visitor.PNVisitor;
13
14 /**
15  *
16  */
17 public class YapiMakefileVisitor extends PNVisitor {
18
19     /**
20      *
21      */
22     public YapiMakefileVisitor(String dir) {
23         _dir = dir;
24     }
25
26     /**
27      *
28      */
29     public void visitComponent(ProcessNetwork pn) {
30         try {
31             String filename = _dir + _delimiter + "Makefile";
32             OutputStream file = new FileOutputStream(filename);
33             PrintStream ps = new PrintStream(file);
34             ps.println("YAPI = /lib/yapi");
35             ps.println("INCLUDES = -I$(YAPI)/include -Iwrappers -Ilib -Iprocesses -I.");
36             ps.println("LIBS = $(YAPI)/lib/libyapi.a");
37             ps.println("CXX = g++");
38             ps.println("CXXFLAGS = -g -Wall -O $(INCLUDES)");
39             ps.println("OBJS = application.o  \\");
40             Vector<String> processList = new Vector<String>();
41             for (Process p : pn.getProcessList()) {
42                 String basename = p.getBasename();
43                 if (!processList.contains(basename)) {
44                     processList.add(basename);
45                     ps.println("       wrappers/" + p.getBasename()
46                             + "_wrapper.o \\");
47                 }
48             }
49             ps.println("       lib/dolSupport.o \\");
50             ps.println("       lib/ProcessWrapper.o \\");
51             ps.println("       lib/main.o");
52             ps.println();
53             ps.println("EXE = ./sc_application");
54             ps.println();
55             ps.println("all : $(EXE)");
56             ps.println();
57             ps.println("test : $(EXE)");
58             ps.println("\t@$(EXE)");
59             ps.println();
60             ps.println("$(EXE) : $(OBJS)");
61             ps.println("\t$(CXX) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXE)");
62             ps.println();
63             ps.println("clean : ;");
64             ps.println("\trm -rf $(OBJS) $(EXE)");
65         }
66         catch (IOException e) {
67             System.out.println(" Yapi Makefile Visitor: exception " +
68                                "occured: " + e.getMessage());
69             e.printStackTrace();
70         }
71     }
72
73     protected String _dir = null;
74     protected String _name = "sc_application";
75 }
76