summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 15:28:17 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 15:28:17 +0200
commit90bb7e959496c3a12bebe055f6344b9f06f22809 (patch)
tree6635decc697d91c8cba6da9db8959b706ad9842f /ast-to-instr
parentc5a23ef9d6ab1e89b85016831fc8b2431f68f87f (diff)
Improving clarity through better Makefiles.
Diffstat (limited to 'ast-to-instr')
-rw-r--r--ast-to-instr/Makefile59
-rw-r--r--ast-to-instr/src/Main.java11
-rw-r--r--ast-to-instr/src/OutputFile.java8
-rw-r--r--ast-to-instr/src/Parameters.java18
4 files changed, 66 insertions, 30 deletions
diff --git a/ast-to-instr/Makefile b/ast-to-instr/Makefile
index 4a19d4f..86a6d88 100644
--- a/ast-to-instr/Makefile
+++ b/ast-to-instr/Makefile
@@ -1,35 +1,60 @@
-INPUT_FILE = ../data/ast/best_chronometer_ever.xml
+## Parameters ##################################################################
+#### GHDL's xml AST output.
+ifndef AST_FILE
+AST_FILE =
+endif
+
+#### Where to output the models.
+ifndef MODEL_DIR
+MODEL_DIR =
+endif
+
+#### Binaries
+###### JRE binary
+ifndef JAVA
+JAVA = java
+endif
-## Executables #################################################################
+###### JDK binary
+ifndef JAVAC
JAVAC = javac
-JAVA = java
-DOWNLOADER = wget
+endif
+
+## Parameters Sanity Check #####################################################
+ifeq ($(strip $(AST_FILE)),)
+$(error No AST_FILE defined as parameter.)
+endif
+
+ifeq ($(strip $(MODEL_DIR)),)
+$(error No output directory defined for the models.)
+endif
+
+ifeq ($(strip $(JAVA)),)
+$(error No Java executable defined as parameter.)
+endif
+
+ifeq ($(strip $(JAVAC)),)
+$(error No Java compiler defined as parameter.)
+endif
## Java Config #################################################################
CLASSPATH = "./src/"
-## Dependencies ################################################################
-JAR_SOURCE = https://noot-noot.org/onera_2017/jar/
-REQUIRED_JARS =
-
## Makefile Magic ##############################################################
SOURCES = $(wildcard src/*.java)
CLASSES = $(SOURCES:.java=.class)
## Makefile Rules ##############################################################
-all: structural.mod
+$(MODEL_DIR)/structural.mod: $(CLASSES) $(AST_FILE)
+ $(JAVA) -cp $(CLASSPATH) Main $(AST_FILE) $(MODEL_DIR)
clean:
rm -f $(CLASSES)
- rm -f *.mod
-
-structural.mod: $(CLASSES) $(REQUIRED_JARS) $(INPUT_FILE)
- $(JAVA) -cp $(CLASSPATH) Main $(INPUT_FILE)
+ rm -f $(MODEL_DIR)/*.mod
-%.class: %.java $(REQUIRED_JARS)
+%.class: %.java
$(JAVAC) -cp $(CLASSPATH) $<
-%.jar:
- echo "Attempting to download missing jar '$@'"
- $(DOWNLOADER) "$(JAR_SOURCE)/$@"
+$(MODEL_DIR):
+ mkdir -p $@
diff --git a/ast-to-instr/src/Main.java b/ast-to-instr/src/Main.java
index 0e24f57..4f33ae1 100644
--- a/ast-to-instr/src/Main.java
+++ b/ast-to-instr/src/Main.java
@@ -55,11 +55,7 @@ public class Main
return;
}
- MAIN_OUTPUT =
- OutputFile.new_output_file
- (
- PARAMETERS.get_main_output_filename()
- );
+ MAIN_OUTPUT = OutputFile.new_output_file("structural.mod");
try
{
@@ -176,4 +172,9 @@ public class Main
{
return MAIN_OUTPUT;
}
+
+ public static Parameters get_parameters ()
+ {
+ return PARAMETERS;
+ }
}
diff --git a/ast-to-instr/src/OutputFile.java b/ast-to-instr/src/OutputFile.java
index 42a6ad5..201ca2b 100644
--- a/ast-to-instr/src/OutputFile.java
+++ b/ast-to-instr/src/OutputFile.java
@@ -26,7 +26,13 @@ public class OutputFile
{
final OutputFile result;
- result = new OutputFile(filename);
+ result =
+ new OutputFile
+ (
+ Main.get_parameters().get_output_directory()
+ + "/"
+ + filename
+ );
ALL_OUTPUT_FILES.add(result);
diff --git a/ast-to-instr/src/Parameters.java b/ast-to-instr/src/Parameters.java
index 0407bb4..a7552d8 100644
--- a/ast-to-instr/src/Parameters.java
+++ b/ast-to-instr/src/Parameters.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
public class Parameters
{
private final String xml_file;
+ private final String output_dir;
private final boolean are_valid;
@@ -13,27 +14,30 @@ public class Parameters
(
"AST-to-Instr\n"
+ "USAGE:\n"
- + "\tjava Main <XML_FILE>\n"
+ + "\tjava Main <XML_FILE> <OUTPUT_DIR>\n"
+ "PARAMETERS:\n"
- + "\t- <XML_FILE>\tThe AST (XML format)."
+ + "\t- <XML_FILE>\tThe AST (XML format).\n"
+ + "\t- <OUTPUT_DIR>\tThe output directory (must already exist)."
);
}
public Parameters (String... args)
{
- if (args.length != 1)
+ if (args.length != 2)
{
print_usage();
xml_file = new String();
+ output_dir = new String();
are_valid = false;
return;
}
- are_valid = true;
-
xml_file = args[0];
+ output_dir = args[1];
+
+ are_valid = true;
}
public String get_xml_file ()
@@ -41,9 +45,9 @@ public class Parameters
return xml_file;
}
- public String get_main_output_filename()
+ public String get_output_directory ()
{
- return "structural.mod";
+ return output_dir;
}
public boolean are_valid ()