1 /* $Id: YapiMakefileVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
2 package dol.visitor.yapi;
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;
10 import dol.datamodel.pn.Process;
11 import dol.datamodel.pn.ProcessNetwork;
12 import dol.visitor.PNVisitor;
17 public class YapiMakefileVisitor extends PNVisitor {
22 public YapiMakefileVisitor(String dir) {
29 public void visitComponent(ProcessNetwork pn) {
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()
49 ps.println(" lib/dolSupport.o \\");
50 ps.println(" lib/ProcessWrapper.o \\");
51 ps.println(" lib/main.o");
53 ps.println("EXE = ./sc_application");
55 ps.println("all : $(EXE)");
57 ps.println("test : $(EXE)");
58 ps.println("\t@$(EXE)");
60 ps.println("$(EXE) : $(OBJS)");
61 ps.println("\t$(CXX) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXE)");
63 ps.println("clean : ;");
64 ps.println("\trm -rf $(OBJS) $(EXE)");
66 catch (IOException e) {
67 System.out.println(" Yapi Makefile Visitor: exception " +
68 "occured: " + e.getMessage());
73 protected String _dir = null;
74 protected String _name = "sc_application";