Tighter integration of ABC build
authorClifford Wolf <clifford@clifford.at>
Wed, 27 Nov 2013 08:08:35 +0000 (09:08 +0100)
committerClifford Wolf <clifford@clifford.at>
Wed, 27 Nov 2013 08:08:35 +0000 (09:08 +0100)
CHANGELOG [new file with mode: 0644]
Makefile
README
passes/abc/Makefile.inc

diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644 (file)
index 0000000..fe0534c
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,11 @@
+
+List of incompatible changes and major milestones between releases
+==================================================================
+
+
+Yosys 0.1.0 .. Yoys 0.1.0+
+--------------------------
+
+ - Tighter integration of ABC build with Yosys build. The make
+   targets 'make abc' and 'make install-abc' are now obsolete.
+
index 40bc61f4d22857e59b30303a7ac090fcb3405b43..c477c93d5e234db7593f1ab69ea77050d3469471 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,9 +3,13 @@ CONFIG := clang-debug
 # CONFIG := gcc-debug
 # CONFIG := release
 
+# features (the more the better)
 ENABLE_TCL := 1
 ENABLE_QT4 := 1
 ENABLE_MINISAT := 1
+ENABLE_ABC := 1
+
+# other configuration flags
 ENABLE_GPROF := 0
 
 DESTDIR := /usr/local
@@ -61,6 +65,10 @@ ifeq ($(ENABLE_QT4),1)
 TARGETS += yosys-svgviewer
 endif
 
+ifeq ($(ENABLE_ABC),1)
+TARGETS += yosys-abc
+endif
+
 OBJS += kernel/driver.o kernel/register.o kernel/rtlil.o kernel/log.o kernel/calc.o
 
 OBJS += libs/bigint/BigIntegerAlgorithms.o libs/bigint/BigInteger.o libs/bigint/BigIntegerUtils.o
@@ -107,6 +115,18 @@ endif
        cd abc && $(MAKE)
        cp abc/abc yosys-abc
 
+abc/abc-$(ABCREV):
+       if test "`cd abc && hg identify`" != "$(ABCREV)"; then \
+               test $(ABCPULL) -ne 0 || { echo; echo "!!! ABC not up to date and ABCPULL set to 0 in Makefile !!!"; echo; exit 1; }; \
+               test -d abc || hg clone https://bitbucket.org/alanmi/abc abc; \
+               cd abc && hg pull && hg update -r $(ABCREV); \
+       fi
+       cd abc && $(MAKE)
+       cp abc/abc abc/abc-$(ABCREV)
+
+yosys-abc: abc/abc-$(ABCREV)
+       cp abc/abc-$(ABCREV) yosys-abc
+
 test: yosys
        cd tests/simple && bash run-test.sh
        cd tests/hana && bash run-test.sh
@@ -118,9 +138,6 @@ install: $(TARGETS) $(EXTRA_TARGETS)
        $(INSTALL_SUDO) mkdir -p $(DESTDIR)/share/yosys
        $(INSTALL_SUDO) cp -r share/. $(DESTDIR)/share/yosys/.
 
-install-abc:
-       $(INSTALL_SUDO) install yosys-abc $(DESTDIR)/bin/
-
 manual:
        cd manual && bash make.sh
 
diff --git a/README b/README
index 9406896895da238c5a7e4796a4556560b7bbb086..6500954728f1927413867b39df5b66c28d5de6f4 100644 (file)
--- a/README
+++ b/README
@@ -93,10 +93,8 @@ To build Yosys simply type 'make' in this directory.
 If you encounter any problems during build, make sure to check the section
 "Workarounds for known build problems" at the end of this README file.
 
-To also build and install ABC (recommended) use the following commands:
-
-       $ make abc
-       $ sudo make install-abc
+Note that this also downloads, builds and installs ABC (using yosys-abc
+as executeable name).
 
 Yosys can be used with the interactive command shell, with
 synthesis scripts or with command line arguments. Let's perform
index 91a571c3dcb4abc2f88e10b43efff9ecdafbf2eb..dbb7496cfe8049bc990b57ef4ffb430036e8bf0c 100644 (file)
@@ -1,5 +1,7 @@
 
+ifeq ($(ENABLE_ABC),1)
 OBJS += passes/abc/abc.o
 OBJS += passes/abc/vlparse.o
 OBJS += passes/abc/blifparse.o
+endif