Skip to content

Commit 4368804

Browse files
committed
Add YosysHQ/abc as a submodule located in abc
1 parent 7b28ece commit 4368804

10 files changed

+38
-62
lines changed

.github/workflows/codeql.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ jobs:
1515

1616
- name: Checkout repository
1717
uses: actions/checkout@v4
18-
18+
with:
19+
submodules: true
1920
- name: Initialize CodeQL
2021
uses: github/codeql-action/init@v3
2122
with:

.github/workflows/emcc.yml

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ jobs:
88
steps:
99
- uses: mymindstorm/setup-emsdk@v14
1010
- uses: actions/checkout@v4
11+
with:
12+
submodules: true
1113
- name: Build
1214
run: |
1315
make config-emcc

.github/workflows/test-linux.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ jobs:
8080
8181
- name: Checkout Yosys
8282
uses: actions/checkout@v4
83-
83+
with:
84+
submodules: true
8485
- name: Get iverilog
8586
shell: bash
8687
run: |

.github/workflows/test-macos.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ jobs:
3636
3737
- name: Checkout Yosys
3838
uses: actions/checkout@v4
39-
39+
with:
40+
submodules: true
4041
- name: Get iverilog
4142
shell: bash
4243
run: |

.github/workflows/version.yml

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
uses: actions/checkout@v4
1414
with:
1515
fetch-depth: 0
16+
submodules: true
1617
- name: Take last commit
1718
id: log
1819
run: echo "message=$(git log --no-merges -1 --oneline)" >> $GITHUB_OUTPUT

.github/workflows/vs.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,19 @@ jobs:
77
runs-on: ubuntu-latest
88
steps:
99
- uses: actions/checkout@v4
10+
with:
11+
submodules: true
1012
- name: Build
1113
run: make vcxsrc YOSYS_VER=latest
1214
- uses: actions/upload-artifact@v4
1315
with:
1416
name: vcxsrc
1517
path: yosys-win32-vcxsrc-latest.zip
16-
18+
1719
build:
1820
runs-on: windows-2019
1921
needs: yosys-vcxsrc
20-
steps:
22+
steps:
2123
- uses: actions/download-artifact@v4
2224
with:
2325
name: vcxsrc

.github/workflows/wasi.yml

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ jobs:
77
runs-on: ubuntu-latest
88
steps:
99
- uses: actions/checkout@v4
10+
with:
11+
submodules: true
1012
- name: Build
1113
run: |
1214
WASI_SDK=wasi-sdk-19.0

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ __pycache__
1818
/coverage.info
1919
/coverage_html
2020
/Makefile.conf
21-
/abc
2221
/viz.js
2322
/yosys
2423
/yosys.exe

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "abc"]
2+
path = abc
3+
url = https://github.com/YosysHQ/abc

Makefile

+20-56
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,6 @@ OBJS = kernel/version_$(GIT_REV).o
160160
bumpversion:
161161
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 0033808.. | wc -l`/;" Makefile
162162

163-
# set 'ABCREV = default' to use abc/ as it is
164-
#
165-
# Note: If you do ABC development, make sure that 'abc' in this directory
166-
# is just a symlink to your actual ABC working directory, as 'make mrproper'
167-
# will remove the 'abc' directory and you do not want to accidentally
168-
# delete your work on ABC..
169-
ABCREV = 0cd90d0
170-
ABCPULL = 1
171-
ABCURL ?= https://github.com/YosysHQ/abc
172163
ABCMKARGS = CC="$(CXX)" CXX="$(CXX)" ABC_USE_LIBSTDCXX=1 ABC_USE_NAMESPACE=abc VERBOSE=$(Q)
173164

174165
# set ABCEXTERNAL = <abc-command> to use an external ABC instance
@@ -216,7 +207,7 @@ ABC_ARCHFLAGS += "-DABC_NO_RLIMIT"
216207
endif
217208

218209
ifeq ($(CONFIG),clang)
219-
CXX ?= clang++
210+
CXX = clang++
220211
CXXFLAGS += -std=$(CXXSTD) -Os
221212
ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H $(ABC_ARCHFLAGS)"
222213

@@ -238,7 +229,7 @@ endif
238229
endif
239230

240231
else ifeq ($(CONFIG),gcc)
241-
CXX ?= g++
232+
CXX = g++
242233
CXXFLAGS += -std=$(CXXSTD) -Os
243234
ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H $(ABC_ARCHFLAGS)"
244235

@@ -254,17 +245,17 @@ ABCMKARGS += "ABC_USE_NO_PTHREADS=1"
254245
endif
255246

256247
else ifeq ($(CONFIG),afl-gcc)
257-
CXX ?= AFL_QUIET=1 AFL_HARDEN=1 afl-gcc
248+
CXX = AFL_QUIET=1 AFL_HARDEN=1 afl-gcc
258249
CXXFLAGS += -std=$(CXXSTD) -Os
259250
ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H"
260251

261252
else ifeq ($(CONFIG),cygwin)
262-
CXX ?= g++
253+
CXX = g++
263254
CXXFLAGS += -std=gnu++11 -Os
264255
ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H"
265256

266257
else ifeq ($(CONFIG),emcc)
267-
CXX ?= emcc
258+
CXX = emcc
268259
CXXFLAGS := -std=$(CXXSTD) $(filter-out -fPIC -ggdb,$(CXXFLAGS))
269260
ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H -DABC_MEMALIGN=8"
270261
EMCC_CXXFLAGS := -Os -Wno-warn-absolute-paths
@@ -304,12 +295,12 @@ yosys.html: misc/yosys.html
304295

305296
else ifeq ($(CONFIG),wasi)
306297
ifeq ($(WASI_SDK),)
307-
CXX ?= clang++
298+
CXX = clang++
308299
AR = llvm-ar
309300
RANLIB = llvm-ranlib
310301
WASIFLAGS := -target wasm32-wasi --sysroot $(WASI_SYSROOT) $(WASIFLAGS)
311302
else
312-
CXX ?= $(WASI_SDK)/bin/clang++
303+
CXX = $(WASI_SDK)/bin/clang++
313304
AR = $(WASI_SDK)/bin/ar
314305
RANLIB = $(WASI_SDK)/bin/ranlib
315306
WASIFLAGS := --sysroot $(WASI_SDK)/share/wasi-sysroot $(WASIFLAGS)
@@ -331,7 +322,7 @@ endif
331322

332323
else ifeq ($(CONFIG),mxe)
333324
PKG_CONFIG = /usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-pkg-config
334-
CXX ?= /usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-g++
325+
CXX = /usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-g++
335326
CXXFLAGS += -std=$(CXXSTD) -Os -D_POSIX_SOURCE -DYOSYS_MXE_HACKS -Wno-attributes
336327
CXXFLAGS := $(filter-out -fPIC,$(CXXFLAGS))
337328
LINKFLAGS := $(filter-out -rdynamic,$(LINKFLAGS)) -s
@@ -342,7 +333,7 @@ ABCMKARGS += LIBS="lib/x86/pthreadVC2.lib -s" LINKFLAGS="-Wl,--allow-multiple-de
342333
EXE = .exe
343334

344335
else ifeq ($(CONFIG),msys2-32)
345-
CXX ?= i686-w64-mingw32-g++
336+
CXX = i686-w64-mingw32-g++
346337
CXXFLAGS += -std=$(CXXSTD) -Os -D_POSIX_SOURCE -DYOSYS_WIN32_UNIX_DIR
347338
CXXFLAGS := $(filter-out -fPIC,$(CXXFLAGS))
348339
LINKFLAGS := $(filter-out -rdynamic,$(LINKFLAGS)) -s
@@ -352,7 +343,7 @@ ABCMKARGS += LIBS="-lpthread -lshlwapi -s" ABC_USE_NO_READLINE=0 CC="i686-w64-mi
352343
EXE = .exe
353344

354345
else ifeq ($(CONFIG),msys2-64)
355-
CXX ?= x86_64-w64-mingw32-g++
346+
CXX = x86_64-w64-mingw32-g++
356347
CXXFLAGS += -std=$(CXXSTD) -Os -D_POSIX_SOURCE -DYOSYS_WIN32_UNIX_DIR
357348
CXXFLAGS := $(filter-out -fPIC,$(CXXFLAGS))
358349
LINKFLAGS := $(filter-out -rdynamic,$(LINKFLAGS)) -s
@@ -788,41 +779,17 @@ $(PROGRAM_PREFIX)yosys-config: misc/yosys-config.in
788779
-e 's#@BINDIR@#$(strip $(BINDIR))#;' -e 's#@DATDIR@#$(strip $(DATDIR))#;' < $< > $(PROGRAM_PREFIX)yosys-config
789780
$(Q) chmod +x $(PROGRAM_PREFIX)yosys-config
790781

791-
abc/abc-$(ABCREV)$(EXE) abc/libabc-$(ABCREV).a:
782+
ABC_SOURCES := $(wildcard $(YOSYS_SRC)/abc/*)
783+
784+
$(YOSYS_SRC)/abc/abc$(EXE) $(YOSYS_SRC)/abc/libabc.a: $(ABC_SOURCES)
792785
$(P)
793-
ifneq ($(ABCREV),default)
794-
$(Q) if test -d abc/.hg; then \
795-
echo 'REEBE: NOP qverpgbel vf n ut jbexvat pbcl! Erzbir nop/ naq er-eha "znxr".' | tr 'A-Za-z' 'N-ZA-Mn-za-m'; false; \
796-
fi
797-
$(Q) if test -d abc && test -d abc/.git && ! git -C abc diff-index --quiet HEAD; then \
798-
echo 'REEBE: NOP pbagnvaf ybpny zbqvsvpngvbaf! Frg NOPERI=qrsnhyg va Lbflf Znxrsvyr!' | tr 'A-Za-z' 'N-ZA-Mn-za-m'; false; \
799-
fi
800-
$(Q) if test -d abc && ! test -d abc/.git && ! test "`cat abc/.gitcommit | cut -c1-7`" = "$(ABCREV)"; then \
801-
echo 'REEBE: Qbjaybnqrq NOP irefvbaf qbrf abg zngpu! Qbjaybnq sebz:' | tr 'A-Za-z' 'N-ZA-Mn-za-m'; echo $(ABCURL)/archive/$(ABCREV).tar.gz; false; \
802-
fi
803-
# set a variable so the test fails if git fails to run - when comparing outputs directly, empty string would match empty string
804-
$(Q) if test -d abc && ! test -d abc/.git && test "`cat abc/.gitcommit | cut -c1-7`" = "$(ABCREV)"; then \
805-
echo "Compiling local copy of ABC"; \
806-
elif ! (cd abc 2> /dev/null && rev="`git rev-parse $(ABCREV)`" && test "`git rev-parse HEAD`" = "$$rev"); then \
807-
test $(ABCPULL) -ne 0 || { echo 'REEBE: NOP abg hc gb qngr naq NOPCHYY frg gb 0 va Znxrsvyr!' | tr 'A-Za-z' 'N-ZA-Mn-za-m'; exit 1; }; \
808-
echo "Pulling ABC from $(ABCURL):"; set -x; \
809-
test -d abc || git clone $(ABCURL) abc; \
810-
cd abc && $(MAKE) DEP= clean && git fetch $(ABCURL) && git checkout $(ABCREV); \
811-
fi
812-
endif
813-
$(Q) rm -f abc/abc-[0-9a-f]*
814-
$(Q) $(MAKE) -C abc $(S) $(ABCMKARGS) $(if $(filter %.a,$@),PROG="abc-$(ABCREV)",PROG="abc-$(ABCREV)$(EXE)") MSG_PREFIX="$(eval P_OFFSET = 5)$(call P_SHOW)$(eval P_OFFSET = 10) ABC: " $(if $(filter %.a,$@),libabc-$(ABCREV).a)
815-
816-
ifeq ($(ABCREV),default)
817-
.PHONY: abc/abc-$(ABCREV)$(EXE)
818-
.PHONY: abc/libabc-$(ABCREV).a
819-
endif
820-
821-
$(PROGRAM_PREFIX)yosys-abc$(EXE): abc/abc-$(ABCREV)$(EXE)
822-
$(P) cp abc/abc-$(ABCREV)$(EXE) $(PROGRAM_PREFIX)yosys-abc$(EXE)
823-
824-
$(PROGRAM_PREFIX)yosys-libabc.a: abc/libabc-$(ABCREV).a
825-
$(P) cp abc/libabc-$(ABCREV).a $(PROGRAM_PREFIX)yosys-libabc.a
786+
$(Q) $(MAKE) -C $(YOSYS_SRC)/abc $(S) $(ABCMKARGS) $(if $(filter %.a,$@),PROG="abc",PROG="abc$(EXE)") MSG_PREFIX="$(eval P_OFFSET = 5)$(call P_SHOW)$(eval P_OFFSET = 10) ABC: " $(if $(filter %.a,$@),libabc.a)
787+
788+
$(PROGRAM_PREFIX)yosys-abc$(EXE): $(YOSYS_SRC)/abc/abc$(EXE)
789+
$(P) cp $(YOSYS_SRC)/abc/abc$(EXE) $(PROGRAM_PREFIX)yosys-abc$(EXE)
790+
791+
$(PROGRAM_PREFIX)yosys-libabc.a: $(YOSYS_SRC)/abc/libabc.a
792+
$(P) cp $(YOSYS_SRC)/abc/libabc.a $(PROGRAM_PREFIX)yosys-libabc.a
826793

827794
ifneq ($(SEED),)
828795
SEEDOPT="-S $(SEED)"
@@ -1129,9 +1096,6 @@ echo-yosys-ver:
11291096
echo-git-rev:
11301097
@echo "$(GIT_REV)"
11311098

1132-
echo-abc-rev:
1133-
@echo "$(ABCREV)"
1134-
11351099
echo-cxx:
11361100
@echo "$(CXX)"
11371101

0 commit comments

Comments
 (0)