aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-11-27 09:08:35 +0100
committerClifford Wolf <clifford@clifford.at>2013-11-27 09:08:35 +0100
commit38e7fa6530f0c5ba5044dcd79f391e49fcdef84c (patch)
tree031c5757ecf204357c41e542672dcaac0c3855a1
parentbc3cc8871973c23043da48c1db76f352b33ea259 (diff)
downloadyosys-38e7fa6530f0c5ba5044dcd79f391e49fcdef84c.tar.gz
yosys-38e7fa6530f0c5ba5044dcd79f391e49fcdef84c.tar.bz2
yosys-38e7fa6530f0c5ba5044dcd79f391e49fcdef84c.zip
Tighter integration of ABC build
-rw-r--r--CHANGELOG11
-rw-r--r--Makefile23
-rw-r--r--README6
-rw-r--r--passes/abc/Makefile.inc2
4 files changed, 35 insertions, 7 deletions
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 000000000..fe0534c0e
--- /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.
+
diff --git a/Makefile b/Makefile
index 40bc61f4d..c477c93d5 100644
--- 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 940689689..650095472 100644
--- 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
diff --git a/passes/abc/Makefile.inc b/passes/abc/Makefile.inc
index 91a571c3d..dbb7496cf 100644
--- a/passes/abc/Makefile.inc
+++ b/passes/abc/Makefile.inc
@@ -1,5 +1,7 @@
+ifeq ($(ENABLE_ABC),1)
OBJS += passes/abc/abc.o
OBJS += passes/abc/vlparse.o
OBJS += passes/abc/blifparse.o
+endif