| summaryrefslogtreecommitdiff |
path: root/ast-to-instr
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-03 15:28:17 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-03 15:28:17 +0200 |
| commit | 90bb7e959496c3a12bebe055f6344b9f06f22809 (patch) | |
| tree | 6635decc697d91c8cba6da9db8959b706ad9842f /ast-to-instr | |
| parent | c5a23ef9d6ab1e89b85016831fc8b2431f68f87f (diff) | |
Improving clarity through better Makefiles.
Diffstat (limited to 'ast-to-instr')
| -rw-r--r-- | ast-to-instr/Makefile | 59 | ||||
| -rw-r--r-- | ast-to-instr/src/Main.java | 11 | ||||
| -rw-r--r-- | ast-to-instr/src/OutputFile.java | 8 | ||||
| -rw-r--r-- | ast-to-instr/src/Parameters.java | 18 |
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 () |


