6 # On Windows, manually setting absolute path to Python binary may be required
7 # for launcher executable to work. From MSYS2, this can be done using the
8 # following command: "which python3 | cygpath -w -m -f -".
9 ifeq ($(OS
), Windows_NT
)
10 PYTHON
= $(shell cygpath
-w
-m
$(PREFIX
)/bin
/python3
)
15 @echo
"sudo make install"
16 @echo
" build and install SymbiYosys (sby)"
19 @echo
" build documentation in docs/build/html/"
29 mkdir
-p
$(DESTDIR
)$(PREFIX
)/bin
30 mkdir
-p
$(DESTDIR
)$(PREFIX
)/share
/yosys
/python3
31 cp sbysrc
/sby_
*.py
$(DESTDIR
)$(PREFIX
)/share
/yosys
/python3
/
32 sed
-e
's|##yosys-program-prefix##|"'$(PROGRAM_PREFIX
)'"|' < sbysrc
/sby_core.py
> $(DESTDIR
)$(PREFIX
)/share
/yosys
/python3
/sby_core.py
33 ifeq ($(OS
), Windows_NT
)
34 sed
-e
's|##yosys-sys-path##|sys.path += [os.path.dirname(__file__) + p for p in ["/share/python3", "/../share/yosys/python3"]]|;' \
35 -e
"s|#!/usr/bin/env python3|#!$(PYTHON)|" < sbysrc
/sby.py
> $(DESTDIR
)$(PREFIX
)/bin
/sby-script.py
36 gcc
-DGUI
=0 -O
-s
-o
$(DESTDIR
)$(PREFIX
)/bin
/sby.exe extern
/launcher.c
38 sed
's|##yosys-sys-path##|sys.path += [os.path.dirname(__file__) + p for p in ["/share/python3", "/../share/yosys/python3"]]|;' < sbysrc
/sby.py
> $(DESTDIR
)$(PREFIX
)/bin
/sby
39 chmod
+x
$(DESTDIR
)$(PREFIX
)/bin
/sby
43 test_demo1 test_demo2 test_demo3 \
44 test_abstract_abstr test_abstract_props \
45 test_demos_fib_cover test_demos_fib_prove test_demos_fib_live \
47 test_puzzles_djb2hash test_puzzles_pour853to4 test_puzzles_wolfgoatcabbage \
48 test_puzzles_primegen_primegen test_puzzles_primegen_primes_pass test_puzzles_primegen_primes_fail \
49 test_quickstart_demo test_quickstart_cover test_quickstart_prove test_quickstart_memory \
51 if yosys
-qp
'read -verific' 2> /dev
/null
; then set
-x
; \
52 YOSYS_NOVERIFIC
=1 $(MAKE
) ci
; \
56 cd sbysrc
&& python3 sby.py
-f demo1.sby
59 cd sbysrc
&& python3 sby.py
-f demo2.sby
62 cd sbysrc
&& python3 sby.py
-f demo3.sby
65 @if yosys
-qp
'read -verific' 2> /dev
/null
; then set
-x
; \
66 cd docs
/examples
/abstract
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f abstr.sby
; \
67 else echo
"skipping $@"; fi
70 if yosys
-qp
'read -verific' 2> /dev
/null
; then set
-x
; \
71 cd docs
/examples
/abstract
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f props.sby
; \
72 else echo
"skipping $@"; fi
75 cd docs
/examples
/demos
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f fib.sby cover
78 cd docs
/examples
/demos
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f fib.sby prove
81 cd docs
/examples
/demos
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f fib.sby live
84 cd docs
/examples
/multiclk
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f dpmem.sby
86 test_puzzles_djb2hash
:
87 cd docs
/examples
/puzzles
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f djb2hash.sby
89 test_puzzles_pour853to4
:
90 cd docs
/examples
/puzzles
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f pour_853_to_4.sby
92 test_puzzles_wolfgoatcabbage
:
93 cd docs
/examples
/puzzles
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f wolf_goat_cabbage.sby
95 test_puzzles_primegen_primegen
:
96 cd docs
/examples
/puzzles
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f primegen.sby primegen
98 test_puzzles_primegen_primes_pass
:
99 cd docs
/examples
/puzzles
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f primegen.sby primes_pass
101 test_puzzles_primegen_primes_fail
:
102 cd docs
/examples
/puzzles
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f primegen.sby primes_fail
104 test_quickstart_demo
:
105 cd docs
/examples
/quickstart
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f demo.sby
107 test_quickstart_cover
:
108 cd docs
/examples
/quickstart
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f cover.sby
110 test_quickstart_prove
:
111 cd docs
/examples
/quickstart
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f prove.sby
113 test_quickstart_memory
:
114 cd docs
/examples
/quickstart
&& python3 ..
/..
/..
/sbysrc
/sby.py
-f memory.sby
117 $(MAKE
) -C tests
test
123 $(MAKE
) -C docs
clean
124 rm -rf docs
/build sbysrc
/sby sbysrc
/__pycache__