Added "make abc" and "make install-abc"
authorClifford Wolf <clifford@clifford.at>
Sat, 8 Jun 2013 21:48:19 +0000 (23:48 +0200)
committerClifford Wolf <clifford@clifford.at>
Sat, 8 Jun 2013 21:48:19 +0000 (23:48 +0200)
.gitignore
Makefile
README
passes/abc/abc.cc

index 191b95992e7e378661917cbb4e3edc4c857a9fad..0ea495e7b41d3927c91ba197851f9d8610703db8 100644 (file)
@@ -9,7 +9,9 @@ qtcreator.config
 qtcreator.creator
 qtcreator.creator.user
 Makefile.conf
+abc
 yosys
+yosys-abc
 yosys-config
 yosys-filterlib
 yosys-svgviewer
index 79220486c9537634b1ddb39ac0f2200d30abccfd..a84a787d0bd422f71c35a1a9cf21809442e94ac9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -83,6 +83,11 @@ yosys-svgviewer: libs/svgviewer/*.h libs/svgviewer/*.cpp
        cd libs/svgviewer && qmake-qt4 && make
        cp libs/svgviewer/svgviewer yosys-svgviewer
 
+abc:
+       test -d abc || hg clone https://bitbucket.org/alanmi/abc abc
+       cd abc && hg pull && make
+       cp abc/abc yosys-abc
+
 test: yosys
        cd tests/simple && bash run-test.sh
        cd tests/hana && bash run-test.sh
@@ -91,6 +96,9 @@ test: yosys
 install: $(TARGETS)
        install $(TARGETS) /usr/local/bin/
 
+install-abc:
+       install yosys-abc /usr/local/bin/
+
 clean:
        rm -f $(OBJS) $(GENFILES) $(TARGETS)
        rm -f libs/*/*.d frontends/*/*.d passes/*/*.d backends/*/*.d kernel/*.d
@@ -128,6 +136,6 @@ config-gprof: clean
 -include backends/*/*.d
 -include kernel/*.d
 
-.PHONY: all top-all test clean mrproper qtcreator
+.PHONY: all top-all abc test install install-abc clean mrproper qtcreator
 .PHONY: config-clean config-clang-debug config-gcc-debug config-release
 
diff --git a/README b/README
index a4a218636ce4a8cad4833b928b0216fd9271c5da..699b83ba61162f3e1ac58e90362db44af0833ceb 100644 (file)
--- a/README
+++ b/README
@@ -63,6 +63,11 @@ To build Yosys simply type 'make' in this directory.
        $ make test
        $ sudo make install
 
+To also build and install ABC (recommended) use the following commands:
+
+       $ make abc
+       $ sudo make install-abc
+
 Yosys can be used with the interactive command shell, with
 synthesis scripts or with command line arguments. Let's perform
 a simple synthesis job using the interactive command shell:
index 9a13a446bf419fe38404317daea8c509b29f04fc..3c670014744f5fa47d4428e621dfe34b2fee0497 100644 (file)
@@ -630,6 +630,7 @@ struct AbcPass : public Pass {
        AbcPass() : Pass("abc", "use ABC for technology mapping") { }
        virtual void help()
        {
+               //   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
                log("\n");
                log("    abc [options] [selection]\n");
                log("\n");
@@ -637,8 +638,8 @@ struct AbcPass : public Pass {
                log("library to a target architecture.\n");
                log("\n");
                log("    -exe <command>\n");
-               log("        use the specified command name instead of \"abc\" to execute ABC. This\n");
-               log("        can e.g. be used to call a specific version of ABC or a wrapper script.\n");
+               log("        use the specified command name instead of \"yosys-abc\" to execute ABC.\n");
+               log("        This can e.g. be used to call a specific version of ABC or a wrapper.\n");
                log("\n");
                log("    -script <file>\n");
                log("        use the specified ABC script file instead of the default script.\n");
@@ -664,7 +665,7 @@ struct AbcPass : public Pass {
                log_header("Executing ABC pass (technology mapping using ABC).\n");
                log_push();
 
-               std::string exe_file = "abc";
+               std::string exe_file = "yosys-abc";
                std::string script_file, liberty_file;
                bool cleanup = true;