11 # features (the more the better)
27 # other configuration flags
35 # Needed for environments that don't have proper thread support (i.e. emscripten)
36 DISABLE_ABC_THREADS
:= 0
42 # SANITIZER = undefined
46 OS
:= $(shell uname
-s
)
50 ifneq ($(wildcard Makefile.conf
),)
54 BINDIR
:= $(PREFIX
)/bin
55 LIBDIR
:= $(PREFIX
)/lib
56 DATDIR
:= $(PREFIX
)/share
/yosys
63 TARGETS
= yosys
$(EXE
) yosys-config
69 UNITESTPATH
:= tests
/unit
73 YOSYS_SRC
:= $(dir $(firstword $(MAKEFILE_LIST
)))
76 CXXFLAGS
:= $(CXXFLAGS
) -Wall
-Wextra
-ggdb
-I.
-I
"$(YOSYS_SRC)" -MD
-D_YOSYS_
-fPIC
-I
$(PREFIX
)/include
77 LDFLAGS
:= $(LDFLAGS
) -L
$(LIBDIR
)
78 LDLIBS
:= $(LDLIBS
) -lstdc
++ -lm
81 PKG_CONFIG ?
= pkg-config
88 PLUGIN_LDFLAGS
+= -undefined dynamic_lookup
90 # homebrew search paths
91 ifneq ($(shell :; command
-v brew
),)
92 BREW_PREFIX
:= $(shell brew
--prefix)/opt
93 $(info $$BREW_PREFIX is
[${BREW_PREFIX}])
94 ifeq ($(ENABLE_PYOSYS
),1)
95 CXXFLAGS
+= -I
$(BREW_PREFIX
)/boost
/include/boost
96 LDFLAGS
+= -L
$(BREW_PREFIX
)/boost
/lib
98 CXXFLAGS
+= -I
$(BREW_PREFIX
)/readline
/include
99 LDFLAGS
+= -L
$(BREW_PREFIX
)/readline
/lib
100 PKG_CONFIG_PATH
:= $(BREW_PREFIX
)/libffi
/lib
/pkgconfig
:$(PKG_CONFIG_PATH
)
101 PKG_CONFIG_PATH
:= $(BREW_PREFIX
)/tcl-tk
/lib
/pkgconfig
:$(PKG_CONFIG_PATH
)
102 export PATH
:= $(BREW_PREFIX
)/bison
/bin
:$(BREW_PREFIX
)/gettext
/bin
:$(BREW_PREFIX
)/flex
/bin
:$(PATH
)
104 # macports search paths
105 else ifneq ($(shell :; command
-v port
),)
106 PORT_PREFIX
:= $(patsubst %/bin
/port
,%,$(shell :; command
-v port
))
107 CXXFLAGS
+= -I
$(PORT_PREFIX
)/include
108 LDFLAGS
+= -L
$(PORT_PREFIX
)/lib
109 PKG_CONFIG_PATH
:= $(PORT_PREFIX
)/lib
/pkgconfig
:$(PKG_CONFIG_PATH
)
110 export PATH
:= $(PORT_PREFIX
)/bin
:$(PATH
)
118 YOSYS_VER
:= 0.9+1706
119 GIT_REV
:= $(shell cd
$(YOSYS_SRC
) && git rev-parse
--short HEAD
2> /dev
/null || echo UNKNOWN
)
120 OBJS
= kernel
/version_
$(GIT_REV
).o
123 sed
-i
"/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 8a4c6e6.. | wc -l`/;" Makefile
125 # set 'ABCREV = default' to use abc/ as it is
127 # Note: If you do ABC development, make sure that 'abc' in this directory
128 # is just a symlink to your actual ABC working directory, as 'make mrproper'
129 # will remove the 'abc' directory and you do not want to accidentally
130 # delete your work on ABC..
133 ABCURL ?
= https
://github.com
/berkeley-abc
/abc
134 ABCMKARGS
= CC
="$(CXX)" CXX
="$(CXX)" ABC_USE_LIBSTDCXX
=1
136 # set ABCEXTERNAL = <abc-command> to use an external ABC instance
137 # Note: The in-tree ABC (yosys-abc) will not be installed when ABCEXTERNAL is set.
145 ifneq ($(wildcard Makefile.conf
),)
146 $(info $(subst $$--$$,$(newline
),$(shell sed
's,^,[Makefile.conf] ,; s,$$,$$--$$,;' < Makefile.conf | tr
-d
'\n' | sed
's,\$$--\$$$$,,')))
147 include Makefile.conf
150 PYTHON_EXECUTABLE
:= $(shell if python3
-c
""; then echo
"python3"; else echo
"python"; fi
)
151 ifeq ($(ENABLE_PYOSYS
),1)
152 PYTHON_VERSION_TESTCODE
:= "import sys;t='{v[0]}.{v[1]}'.format(v=list(sys.version_info[:2]));print(t)"
153 PYTHON_VERSION
:= $(shell $(PYTHON_EXECUTABLE
) -c
""$(PYTHON_VERSION_TESTCODE
)"")
154 PYTHON_MAJOR_VERSION
:= $(shell echo
$(PYTHON_VERSION
) | cut
-f1
-d.
)
156 ENABLE_PYTHON_CONFIG_EMBED ?
= $(shell $(PYTHON_EXECUTABLE
)-config
--embed
--libs
> /dev
/null
&& echo
1)
157 ifeq ($(ENABLE_PYTHON_CONFIG_EMBED
),1)
158 PYTHON_CONFIG
:= $(PYTHON_EXECUTABLE
)-config
--embed
160 PYTHON_CONFIG
:= $(PYTHON_EXECUTABLE
)-config
163 PYTHON_PREFIX
:= $(shell $(PYTHON_CONFIG
) --prefix)
164 PYTHON_DESTDIR
:= $(PYTHON_PREFIX
)/lib
/python
$(PYTHON_VERSION
)/site-packages
166 # Reload Makefile.conf to override python specific variables if defined
167 ifneq ($(wildcard Makefile.conf
),)
168 include Makefile.conf
173 ifeq ($(CONFIG
),clang
)
176 CXXFLAGS
+= -std
=c
++11 -Os
177 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H"
179 ifneq ($(SANITIZER
),)
180 $(info [Clang Sanitizer
] $(SANITIZER
))
181 CXXFLAGS
+= -g
-O1
-fno-omit-frame-pointer
-fno-optimize-sibling-calls
-fsanitize
=$(SANITIZER
)
182 LDFLAGS
+= -g
-fsanitize
=$(SANITIZER
)
183 ifeq ($(SANITIZER
),address
)
186 ifeq ($(SANITIZER
),memory
)
187 CXXFLAGS
+= -fPIE
-fsanitize-memory-track-origins
188 LDFLAGS
+= -fPIE
-fsanitize-memory-track-origins
190 ifeq ($(SANITIZER
),cfi
)
196 else ifeq ($(CONFIG
),gcc
)
199 CXXFLAGS
+= -std
=c
++11 -Os
200 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H"
202 else ifeq ($(CONFIG
),gcc-static
)
204 LDFLAGS
:= $(filter-out -rdynamic
,$(LDFLAGS
)) -static
205 LDLIBS
:= $(filter-out -lrt
,$(LDLIBS
))
206 CXXFLAGS
:= $(filter-out -fPIC
,$(CXXFLAGS
))
207 CXXFLAGS
+= -std
=c
++11 -Os
208 ABCMKARGS
= CC
="$(CC)" CXX
="$(CXX)" LD
="$(LD)" ABC_USE_LIBSTDCXX
=1 LIBS
="-lm -lpthread -static" OPTFLAGS
="-O" \
209 ARCHFLAGS
="-DABC_USE_STDINT_H -DABC_NO_DYNAMIC_LINKING=1 -Wno-unused-but-set-variable $(ARCHFLAGS)" ABC_USE_NO_READLINE
=1
210 ifeq ($(DISABLE_ABC_THREADS
),1)
211 ABCMKARGS
+= "ABC_USE_NO_PTHREADS=1"
214 else ifeq ($(CONFIG
),gcc-4.8
)
217 CXXFLAGS
+= -std
=c
++11 -Os
218 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H"
220 else ifeq ($(CONFIG
),afl-gcc
)
221 CXX
= AFL_QUIET
=1 AFL_HARDEN
=1 afl-gcc
222 LD
= AFL_QUIET
=1 AFL_HARDEN
=1 afl-gcc
223 CXXFLAGS
+= -std
=c
++11 -Os
224 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H"
226 else ifeq ($(CONFIG
),cygwin
)
229 CXXFLAGS
+= -std
=gnu
++11 -Os
230 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H"
232 else ifeq ($(CONFIG
),emcc
)
235 CXXFLAGS
:= -std
=c
++11 $(filter-out -fPIC
-ggdb
,$(CXXFLAGS
))
236 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H -DABC_MEMALIGN=8"
237 EMCCFLAGS
:= -Os
-Wno-warn-absolute-paths
238 EMCCFLAGS
+= --memory-init-file
0 --embed-file share
-s NO_EXIT_RUNTIME
=1
239 EMCCFLAGS
+= -s EXPORTED_FUNCTIONS
="['_main','_run','_prompt','_errmsg']"
240 EMCCFLAGS
+= -s TOTAL_MEMORY
=128*1024*1024
241 # https://github.com/kripken/emscripten/blob/master/src/settings.js
242 CXXFLAGS
+= $(EMCCFLAGS
)
243 LDFLAGS
+= $(EMCCFLAGS
)
247 TARGETS
:= $(filter-out yosys-config
,$(TARGETS
))
248 EXTRA_TARGETS
+= yosysjs-
$(YOSYS_VER
).zip
250 ifeq ($(ENABLE_ABC
),1)
252 DISABLE_ABC_THREADS
:= 1
256 wget
-O viz.js.part https
://github.com
/mdaines
/viz.js
/releases
/download
/0.0.3/viz.js
257 mv viz.js.part viz.js
259 yosysjs-
$(YOSYS_VER
).zip
: yosys.js viz.js misc
/yosysjs
/*
260 rm -rf yosysjs-
$(YOSYS_VER
) yosysjs-
$(YOSYS_VER
).zip
261 mkdir
-p yosysjs-
$(YOSYS_VER
)
262 cp viz.js misc
/yosysjs
/* yosys.js yosysjs-
$(YOSYS_VER
)/
263 zip
-r yosysjs-
$(YOSYS_VER
).zip yosysjs-
$(YOSYS_VER
)
265 yosys.html
: misc
/yosys.html
266 $(P
) cp misc
/yosys.html yosys.html
268 else ifeq ($(CONFIG
),mxe
)
269 PKG_CONFIG
= /usr
/local
/src
/mxe
/usr
/bin
/i686-w64-mingw32.static-pkg-config
270 CXX
= /usr
/local
/src
/mxe
/usr
/bin
/i686-w64-mingw32.static-g
++
271 LD
= /usr
/local
/src
/mxe
/usr
/bin
/i686-w64-mingw32.static-g
++
272 CXXFLAGS
+= -std
=c
++11 -Os
-D_POSIX_SOURCE
-DYOSYS_MXE_HACKS
-Wno-attributes
273 CXXFLAGS
:= $(filter-out -fPIC
,$(CXXFLAGS
))
274 LDFLAGS
:= $(filter-out -rdynamic
,$(LDFLAGS
)) -s
275 LDLIBS
:= $(filter-out -lrt
,$(LDLIBS
))
276 ABCMKARGS
+= ARCHFLAGS
="-DWIN32_NO_DLL -DHAVE_STRUCT_TIMESPEC -fpermissive -w"
277 # TODO: Try to solve pthread linking issue in more appropriate way
278 ABCMKARGS
+= LIBS
="lib/x86/pthreadVC2.lib -s" LDFLAGS
="-Wl,--allow-multiple-definition" ABC_USE_NO_READLINE
=1 CC
="/usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-gcc"
281 else ifeq ($(CONFIG
),msys2
)
282 CXX
= i686-w64-mingw32-g
++
283 LD
= i686-w64-mingw32-g
++
284 CXXFLAGS
+= -std
=c
++11 -Os
-D_POSIX_SOURCE
-DYOSYS_WIN32_UNIX_DIR
285 CXXFLAGS
:= $(filter-out -fPIC
,$(CXXFLAGS
))
286 LDFLAGS
:= $(filter-out -rdynamic
,$(LDFLAGS
)) -s
287 LDLIBS
:= $(filter-out -lrt
,$(LDLIBS
))
288 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H -DWIN32_NO_DLL -DHAVE_STRUCT_TIMESPEC -fpermissive -w"
289 ABCMKARGS
+= LIBS
="-lpthread -s" ABC_USE_NO_READLINE
=0 CC
="i686-w64-mingw32-gcc" CXX
="$(CXX)"
292 else ifeq ($(CONFIG
),msys2-64
)
293 CXX
= x86_64-w64-mingw32-g
++
294 LD
= x86_64-w64-mingw32-g
++
295 CXXFLAGS
+= -std
=c
++11 -Os
-D_POSIX_SOURCE
-DYOSYS_WIN32_UNIX_DIR
296 CXXFLAGS
:= $(filter-out -fPIC
,$(CXXFLAGS
))
297 LDFLAGS
:= $(filter-out -rdynamic
,$(LDFLAGS
)) -s
298 LDLIBS
:= $(filter-out -lrt
,$(LDLIBS
))
299 ABCMKARGS
+= ARCHFLAGS
="-DABC_USE_STDINT_H -DWIN32_NO_DLL -DHAVE_STRUCT_TIMESPEC -fpermissive -w"
300 ABCMKARGS
+= LIBS
="-lpthread -s" ABC_USE_NO_READLINE
=0 CC
="x86_64-w64-mingw32-gcc" CXX
="$(CXX)"
303 else ifneq ($(CONFIG
),none
)
304 $(error Invalid CONFIG setting
'$(CONFIG)'. Valid values
: clang
, gcc
, gcc-4.8
, emcc
, mxe
, msys2
, msys2-64
)
307 ifeq ($(ENABLE_LIBYOSYS
),1)
308 TARGETS
+= libyosys.so
311 ifeq ($(ENABLE_PYOSYS
),1)
313 #Detect name of boost_python library. Some distros usbe boost_python-py<version>, other boost_python<version>, some only use the major version number, some a concatenation of major and minor version numbers
315 BOOST_PYTHON_LIB ?
= $(shell \
316 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
$(shell $(PYTHON_CONFIG
) --ldflags) -lboost_python-py
$(subst .
,,$(PYTHON_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python-py$(subst .,,$(PYTHON_VERSION))"; else \
317 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
$(shell $(PYTHON_CONFIG
) --ldflags) -lboost_python-py
$(subst .
,,$(PYTHON_MAJOR_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python-py$(subst .,,$(PYTHON_MAJOR_VERSION))"; else \
318 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
$(shell $(PYTHON_CONFIG
) --ldflags) -lboost_python
$(subst .
,,$(PYTHON_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python$(subst .,,$(PYTHON_VERSION))"; else \
319 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
$(shell $(PYTHON_CONFIG
) --ldflags) -lboost_python
$(subst .
,,$(PYTHON_MAJOR_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python$(subst .,,$(PYTHON_MAJOR_VERSION))"; else \
320 echo
""; fi
; fi
; fi
; fi
;)
322 BOOST_PYTHON_LIB ?
= $(shell \
323 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
`$(PYTHON_CONFIG) --libs` -lboost_python-py
$(subst .
,,$(PYTHON_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python-py$(subst .,,$(PYTHON_VERSION))"; else \
324 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
`$(PYTHON_CONFIG) --libs` -lboost_python-py
$(subst .
,,$(PYTHON_MAJOR_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python-py$(subst .,,$(PYTHON_MAJOR_VERSION))"; else \
325 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
`$(PYTHON_CONFIG) --libs` -lboost_python
$(subst .
,,$(PYTHON_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python$(subst .,,$(PYTHON_VERSION))"; else \
326 if echo
"int main(int argc, char ** argv) {return 0;}" |
$(CXX
) -xc
-o
/dev
/null
`$(PYTHON_CONFIG) --libs` -lboost_python
$(subst .
,,$(PYTHON_MAJOR_VERSION
)) - > /dev
/null
2>&1; then echo
"-lboost_python$(subst .,,$(PYTHON_MAJOR_VERSION))"; else \
327 echo
""; fi
; fi
; fi
; fi
;)
330 ifeq ($(BOOST_PYTHON_LIB
),)
331 $(error BOOST_PYTHON_LIB could not be detected. Please
define manualy
)
335 ifeq ($(PYTHON_MAJOR_VERSION
),3)
336 LDLIBS
+= $(shell $(PYTHON_CONFIG
) --ldflags) $(BOOST_PYTHON_LIB
) -lboost_system
-lboost_filesystem
337 CXXFLAGS
+= $(shell $(PYTHON_CONFIG
) --includes
) -DWITH_PYTHON
339 LDLIBS
+= $(shell $(PYTHON_CONFIG
) --ldflags) $(BOOST_PYTHON_LIB
) -lboost_system
-lboost_filesystem
340 CXXFLAGS
+= $(shell $(PYTHON_CONFIG
) --includes
) -DWITH_PYTHON
343 ifeq ($(PYTHON_MAJOR_VERSION
),3)
344 LDLIBS
+= $(shell $(PYTHON_CONFIG
) --libs
) $(BOOST_PYTHON_LIB
) -lboost_system
-lboost_filesystem
345 CXXFLAGS
+= $(shell $(PYTHON_CONFIG
) --includes
) -DWITH_PYTHON
347 LDLIBS
+= $(shell $(PYTHON_CONFIG
) --libs
) $(BOOST_PYTHON_LIB
) -lboost_system
-lboost_filesystem
348 CXXFLAGS
+= $(shell $(PYTHON_CONFIG
) --includes
) -DWITH_PYTHON
352 ifeq ($(ENABLE_PYOSYS
),1)
353 PY_WRAPPER_FILE
= kernel
/python_wrappers
354 OBJS
+= $(PY_WRAPPER_FILE
).o
355 PY_GEN_SCRIPT
= py_wrap_generator
356 PY_WRAP_INCLUDES
:= $(shell python
$(PYTHON_VERSION
) -c
"from misc import $(PY_GEN_SCRIPT); $(PY_GEN_SCRIPT).print_includes()")
360 ifeq ($(ENABLE_READLINE
),1)
361 CXXFLAGS
+= -DYOSYS_ENABLE_READLINE
362 ifeq ($(OS
), FreeBSD
)
363 CXXFLAGS
+= -I
/usr
/local
/include
366 ifeq ($(LINK_CURSES
),1)
368 ABCMKARGS
+= "ABC_READLINE_LIBRARIES=-lcurses -lreadline"
370 ifeq ($(LINK_TERMCAP
),1)
372 ABCMKARGS
+= "ABC_READLINE_LIBRARIES=-lreadline -ltermcap"
378 ifeq ($(ENABLE_EDITLINE
),1)
379 CXXFLAGS
+= -DYOSYS_ENABLE_EDITLINE
380 LDLIBS
+= -ledit
-ltinfo
-lbsd
382 ABCMKARGS
+= "ABC_USE_NO_READLINE=1"
386 ifeq ($(DISABLE_ABC_THREADS
),1)
387 ABCMKARGS
+= "ABC_USE_NO_PTHREADS=1"
390 ifeq ($(ENABLE_PLUGINS
),1)
391 CXXFLAGS
+= $(shell PKG_CONFIG_PATH
=$(PKG_CONFIG_PATH
) $(PKG_CONFIG
) --silence-errors
--cflags libffi
) -DYOSYS_ENABLE_PLUGINS
392 LDLIBS
+= $(shell PKG_CONFIG_PATH
=$(PKG_CONFIG_PATH
) $(PKG_CONFIG
) --silence-errors
--libs libffi || echo
-lffi
)
393 ifneq ($(OS
), FreeBSD
)
398 ifeq ($(ENABLE_GLOB
),1)
399 CXXFLAGS
+= -DYOSYS_ENABLE_GLOB
402 ifeq ($(ENABLE_ZLIB
),1)
403 CXXFLAGS
+= -DYOSYS_ENABLE_ZLIB
408 ifeq ($(ENABLE_TCL
),1)
409 TCL_VERSION ?
= tcl
$(shell bash
-c
"tclsh <(echo 'puts [info tclversion]')")
410 ifeq ($(OS
), FreeBSD
)
411 TCL_INCLUDE ?
= /usr
/local
/include/$(TCL_VERSION
)
413 TCL_INCLUDE ?
= /usr
/include/$(TCL_VERSION
)
417 CXXFLAGS
+= -DYOSYS_ENABLE_TCL
418 LDLIBS
+= -ltcl86
-lwsock32
-lws2_32
-lnetapi32
-lz
-luserenv
420 CXXFLAGS
+= $(shell PKG_CONFIG_PATH
=$(PKG_CONFIG_PATH
) $(PKG_CONFIG
) --silence-errors
--cflags tcl || echo
-I
$(TCL_INCLUDE
)) -DYOSYS_ENABLE_TCL
421 ifeq ($(OS
), FreeBSD
)
422 # FreeBSD uses tcl8.6, but lib is named "libtcl86"
423 LDLIBS
+= $(shell PKG_CONFIG_PATH
=$(PKG_CONFIG_PATH
) $(PKG_CONFIG
) --silence-errors
--libs tcl || echo
-l
$(TCL_VERSION
) | tr
-d
'.')
425 LDLIBS
+= $(shell PKG_CONFIG_PATH
=$(PKG_CONFIG_PATH
) $(PKG_CONFIG
) --silence-errors
--libs tcl || echo
-l
$(TCL_VERSION
))
430 ifeq ($(ENABLE_GCOV
),1)
431 CXXFLAGS
+= --coverage
432 LDFLAGS
+= --coverage
435 ifeq ($(ENABLE_GPROF
),1)
440 ifeq ($(ENABLE_NDEBUG
),1)
441 CXXFLAGS
:= -O3
-DNDEBUG
$(filter-out -Os
-ggdb
,$(CXXFLAGS
))
444 ifeq ($(ENABLE_DEBUG
),1)
445 ifeq ($(CONFIG
),clang
)
446 CXXFLAGS
:= -O0
-DDEBUG
$(filter-out -Os
,$(CXXFLAGS
))
448 CXXFLAGS
:= -Og
-DDEBUG
$(filter-out -Os
,$(CXXFLAGS
))
452 ifeq ($(ENABLE_ABC
),1)
453 CXXFLAGS
+= -DYOSYS_ENABLE_ABC
455 CXXFLAGS
+= -DYOSYS_LINK_ABC
456 ifeq ($(DISABLE_ABC_THREADS
),0)
460 ifeq ($(ABCEXTERNAL
),)
461 TARGETS
+= yosys-abc
$(EXE
)
466 ifeq ($(ENABLE_VERIFIC
),1)
467 VERIFIC_DIR ?
= /usr
/local
/src
/verific_lib
468 VERIFIC_COMPONENTS ?
= verilog vhdl database util containers hier_tree
469 CXXFLAGS
+= $(patsubst %,-I
$(VERIFIC_DIR
)/%,$(VERIFIC_COMPONENTS
)) -DYOSYS_ENABLE_VERIFIC
471 LDLIBS
+= $(patsubst %,$(VERIFIC_DIR
)/%/*-mac.a
,$(VERIFIC_COMPONENTS
)) -lz
473 LDLIBS
+= $(patsubst %,$(VERIFIC_DIR
)/%/*-linux.a
,$(VERIFIC_COMPONENTS
)) -lz
477 ifeq ($(ENABLE_PROTOBUF
),1)
478 LDLIBS
+= $(shell pkg-config
--cflags --libs protobuf
)
481 ifeq ($(ENABLE_COVER
),1)
482 CXXFLAGS
+= -DYOSYS_ENABLE_COVER
485 define add_share_file
486 EXTRA_TARGETS
+= $(subst //,/,$(1)/$(notdir $(2)))
487 $(subst //,/,$(1)/$(notdir $(2))): $(2)
489 $$(Q
) cp
"$(YOSYS_SRC)"/$(2) $(subst //,/,$(1)/$(notdir $(2)))
492 define add_gen_share_file
493 EXTRA_TARGETS
+= $(subst //,/,$(1)/$(notdir $(2)))
494 $(subst //,/,$(1)/$(notdir $(2))): $(2)
496 $$(Q
) cp
$(2) $(subst //,/,$(1)/$(notdir $(2)))
499 define add_include_file
500 $(eval
$(call add_share_file
,$(dir share
/include/$(1)),$(1)))
503 define add_extra_objs
511 P_UPDATE
= $(eval P_STATUS
=$(shell echo
$(OBJS
) yosys
$(EXE
) |
$(AWK
) 'BEGIN { RS = " "; I = $(P_STATUS)+0; } $$1 == "$@" && NR > I { I = NR; } END { print I; }'))
512 P_SHOW
= [$(shell $(AWK
) "BEGIN { N=$(words $(OBJS) yosys$(EXE)); printf \"%3d\", $(P_OFFSET)+90*$(P_STATUS)/N; exit; }")%]
513 P
= @echo
"$(if $(findstring $@,$(TARGETS) $(EXTRA_TARGETS)),$(eval P_OFFSET = 10))$(call P_UPDATE)$(call P_SHOW) Building $@";
523 $(eval
$(call add_include_file
,kernel
/yosys.h
))
524 $(eval
$(call add_include_file
,kernel
/hashlib.h
))
525 $(eval
$(call add_include_file
,kernel
/log.h
))
526 $(eval
$(call add_include_file
,kernel
/rtlil.h
))
527 $(eval
$(call add_include_file
,kernel
/register.h
))
528 $(eval
$(call add_include_file
,kernel
/celltypes.h
))
529 $(eval
$(call add_include_file
,kernel
/celledges.h
))
530 $(eval
$(call add_include_file
,kernel
/consteval.h
))
531 $(eval
$(call add_include_file
,kernel
/sigtools.h
))
532 $(eval
$(call add_include_file
,kernel
/modtools.h
))
533 $(eval
$(call add_include_file
,kernel
/macc.h
))
534 $(eval
$(call add_include_file
,kernel
/utils.h
))
535 $(eval
$(call add_include_file
,kernel
/satgen.h
))
536 $(eval
$(call add_include_file
,libs
/ezsat
/ezsat.h
))
537 $(eval
$(call add_include_file
,libs
/ezsat
/ezminisat.h
))
538 $(eval
$(call add_include_file
,libs
/sha1
/sha1.h
))
539 $(eval
$(call add_include_file
,libs
/json11
/json11.hpp
))
540 $(eval
$(call add_include_file
,passes
/fsm
/fsmdata.h
))
541 $(eval
$(call add_include_file
,frontends
/ast
/ast.h
))
542 $(eval
$(call add_include_file
,backends
/ilang
/ilang_backend.h
))
544 OBJS
+= kernel
/driver.o kernel
/register.o kernel
/rtlil.o kernel
/log.o kernel
/calc.o kernel
/yosys.o
545 OBJS
+= kernel
/cellaigs.o kernel
/celledges.o
547 kernel
/log.o
: CXXFLAGS
+= -DYOSYS_SRC
='"$(YOSYS_SRC)"'
548 kernel
/yosys.o
: CXXFLAGS
+= -DYOSYS_DATDIR
='"$(DATDIR)"'
550 OBJS
+= libs
/bigint
/BigIntegerAlgorithms.o libs
/bigint
/BigInteger.o libs
/bigint
/BigIntegerUtils.o
551 OBJS
+= libs
/bigint
/BigUnsigned.o libs
/bigint
/BigUnsignedInABase.o
553 OBJS
+= libs
/sha1
/sha1.o
557 OBJS
+= libs
/json11
/json11.o
559 OBJS
+= libs
/subcircuit
/subcircuit.o
561 OBJS
+= libs
/ezsat
/ezsat.o
562 OBJS
+= libs
/ezsat
/ezminisat.o
564 OBJS
+= libs
/minisat
/Options.o
565 OBJS
+= libs
/minisat
/SimpSolver.o
566 OBJS
+= libs
/minisat
/Solver.o
567 OBJS
+= libs
/minisat
/System.o
569 include $(YOSYS_SRC
)/frontends
/*/Makefile.inc
570 include $(YOSYS_SRC
)/passes
/*/Makefile.inc
571 include $(YOSYS_SRC
)/backends
/*/Makefile.inc
572 include $(YOSYS_SRC
)/techlibs
/*/Makefile.inc
576 include frontends
/verilog
/Makefile.inc
577 include frontends
/ilang
/Makefile.inc
578 include frontends
/ast
/Makefile.inc
579 include frontends
/blif
/Makefile.inc
581 OBJS
+= passes
/hierarchy
/hierarchy.o
582 OBJS
+= passes
/cmds
/select.o
583 OBJS
+= passes
/cmds
/show.o
584 OBJS
+= passes
/cmds
/stat.o
585 OBJS
+= passes
/cmds
/cover.o
586 OBJS
+= passes
/cmds
/design.o
587 OBJS
+= passes
/cmds
/plugin.o
589 include passes
/proc
/Makefile.inc
590 include passes
/opt
/Makefile.inc
591 include passes
/techmap
/Makefile.inc
593 include backends
/verilog
/Makefile.inc
594 include backends
/ilang
/Makefile.inc
596 include techlibs
/common
/Makefile.inc
601 OBJS
+= yosys-libabc.a
604 top-all
: $(TARGETS
) $(EXTRA_TARGETS
)
606 @echo
" Build successful."
609 ifeq ($(CONFIG
),emcc
)
610 yosys.js
: $(filter-out yosysjs-
$(YOSYS_VER
).zip
,$(EXTRA_TARGETS
))
614 $(P
) $(LD
) -o yosys
$(EXE
) $(LDFLAGS
) $(OBJS
) $(LDLIBS
)
616 libyosys.so
: $(filter-out kernel
/driver.o
,$(OBJS
))
618 $(P
) $(LD
) -o libyosys.so
-shared
-Wl
,-install_name
,libyosys.so
$(LDFLAGS
) $^
$(LDLIBS
)
620 $(P
) $(LD
) -o libyosys.so
-shared
-Wl
,-soname
,libyosys.so
$(LDFLAGS
) $^
$(LDLIBS
)
624 $(Q
) mkdir
-p
$(dir $@
)
625 $(P
) $(CXX
) -o
$@
-c
$(CPPFLAGS
) $(CXXFLAGS
) $<
628 $(Q
) mkdir
-p
$(dir $@
)
629 $(P
) cat
$< | grep
-E
-v
"#[ ]*(include|error)" |
$(LD
) -x c
++ -o
$@
-E
-P
-
631 ifeq ($(ENABLE_PYOSYS
),1)
632 $(PY_WRAPPER_FILE
).
cc: misc
/$(PY_GEN_SCRIPT
).py
$(PY_WRAP_INCLUDES
)
633 $(Q
) mkdir
-p
$(dir $@
)
634 $(P
) python
$(PYTHON_VERSION
) -c
"from misc import $(PY_GEN_SCRIPT); $(PY_GEN_SCRIPT).gen_wrappers(\"$(PY_WRAPPER_FILE).cc\")"
638 $(Q
) mkdir
-p
$(dir $@
)
639 $(P
) $(CXX
) -o
$@
-c
$(CPPFLAGS
) $(CXXFLAGS
) $<
641 YOSYS_VER_STR
:= Yosys
$(YOSYS_VER
) (git sha1
$(GIT_REV
), $(notdir $(CXX
)) $(shell \
642 $(CXX
) --version | tr
' ()' '\n' | grep
'^[0-9]' | head
-n1
) $(filter -f
% -m
% -O
% -DNDEBUG
,$(CXXFLAGS
)))
644 kernel
/version_
$(GIT_REV
).
cc: $(YOSYS_SRC
)/Makefile
645 $(P
) rm -f kernel
/version_
*.o kernel
/version_
*.d kernel
/version_
*.
cc
646 $(Q
) mkdir
-p kernel
&& echo
"namespace Yosys { extern const char *yosys_version_str; const char *yosys_version_str=\"$(YOSYS_VER_STR)\"; }" > kernel
/version_
$(GIT_REV
).
cc
648 ifeq ($(ENABLE_VERIFIC
),1)
649 CXXFLAGS_NOVERIFIC
= $(foreach v
,$(CXXFLAGS
),$(if
$(findstring $(VERIFIC_DIR
),$(v
)),,$(v
)))
650 LDLIBS_NOVERIFIC
= $(foreach v
,$(LDLIBS
),$(if
$(findstring $(VERIFIC_DIR
),$(v
)),,$(v
)))
652 CXXFLAGS_NOVERIFIC
= $(CXXFLAGS
)
653 LDLIBS_NOVERIFIC
= $(LDLIBS
)
656 yosys-config
: misc
/yosys-config.in
657 $(P
) $(SED
) -e
's#@CXXFLAGS@#$(subst -I. -I"$(YOSYS_SRC)",-I"$(DATDIR)/include",$(strip $(CXXFLAGS_NOVERIFIC)))#;' \
658 -e
's#@CXX@#$(strip $(CXX))#;' -e
's#@LDFLAGS@#$(strip $(LDFLAGS) $(PLUGIN_LDFLAGS))#;' -e
's#@LDLIBS@#$(strip $(LDLIBS_NOVERIFIC))#;' \
659 -e
's#@BINDIR@#$(strip $(BINDIR))#;' -e
's#@DATDIR@#$(strip $(DATDIR))#;' < $< > yosys-config
660 $(Q
) chmod
+x yosys-config
662 abc
/abc-
$(ABCREV
)$(EXE
) abc
/libabc-
$(ABCREV
).a
:
664 ifneq ($(ABCREV
),default
)
665 $(Q
) if
test -d abc
/.hg
; then \
666 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
; \
668 $(Q
) if
( cd abc
2> /dev
/null
&& ! git diff-index
--quiet HEAD
; ); then \
669 echo
'REEBE: NOP pbagnvaf ybpny zbqvsvpngvbaf! Frg NOPERI=qrsnhyg va Lbflf Znxrsvyr!' | tr
'A-Za-z' 'N-ZA-Mn-za-m'; false
; \
671 $(Q
) if
test "`cd abc 2> /dev/null && git rev-parse --short HEAD`" != "$(ABCREV)"; then \
672 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; }; \
673 echo
"Pulling ABC from $(ABCURL):"; set
-x
; \
674 test -d abc || git clone
$(ABCURL
) abc
; \
675 cd abc
&& $(MAKE
) DEP
= clean && git fetch
origin master
&& git checkout
$(ABCREV
); \
678 $(Q
) rm -f abc
/abc-
[0-9a-f
]*
679 $(Q
) cd abc
&& $(MAKE
) $(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
)
681 ifeq ($(ABCREV
),default
)
682 .PHONY
: abc
/abc-
$(ABCREV
)$(EXE
)
683 .PHONY
: abc
/libabc-
$(ABCREV
).a
686 yosys-abc
$(EXE
): abc
/abc-
$(ABCREV
)$(EXE
)
687 $(P
) cp abc
/abc-
$(ABCREV
)$(EXE
) yosys-abc
$(EXE
)
689 yosys-libabc.a
: abc
/libabc-
$(ABCREV
).a
690 $(P
) cp abc
/libabc-
$(ABCREV
).a yosys-libabc.a
698 ifneq ($(ABCEXTERNAL
),)
699 ABCOPT
="-A $(ABCEXTERNAL)"
704 test: $(TARGETS
) $(EXTRA_TARGETS
)
705 +cd tests
/simple
&& bash run-test.sh
$(SEEDOPT
)
706 +cd tests
/simple_abc9
&& bash run-test.sh
$(SEEDOPT
)
707 +cd tests
/hana
&& bash run-test.sh
$(SEEDOPT
)
708 +cd tests
/asicworld
&& bash run-test.sh
$(SEEDOPT
)
709 # +cd tests/realmath && bash run-test.sh $(SEEDOPT)
710 +cd tests
/share
&& bash run-test.sh
$(SEEDOPT
)
711 +cd tests
/opt_share
&& bash run-test.sh
$(SEEDOPT
)
712 +cd tests
/fsm
&& bash run-test.sh
$(SEEDOPT
)
713 +cd tests
/techmap
&& bash run-test.sh
714 +cd tests
/memories
&& bash run-test.sh
$(ABCOPT
) $(SEEDOPT
)
715 +cd tests
/bram
&& bash run-test.sh
$(SEEDOPT
)
716 +cd tests
/various
&& bash run-test.sh
717 +cd tests
/sat
&& bash run-test.sh
718 +cd tests
/svinterfaces
&& bash run-test.sh
$(SEEDOPT
)
719 +cd tests
/svtypes
&& bash run-test.sh
$(SEEDOPT
)
720 +cd tests
/proc
&& bash run-test.sh
721 +cd tests
/opt
&& bash run-test.sh
722 +cd tests
/aiger
&& bash run-test.sh
$(ABCOPT
)
723 +cd tests
/arch
&& bash run-test.sh
724 +cd tests
/arch
/ice40
&& bash run-test.sh
$(SEEDOPT
)
725 +cd tests
/arch
/xilinx
&& bash run-test.sh
$(SEEDOPT
)
726 +cd tests
/arch
/ecp5
&& bash run-test.sh
$(SEEDOPT
)
727 +cd tests
/arch
/efinix
&& bash run-test.sh
$(SEEDOPT
)
728 +cd tests
/arch
/anlogic
&& bash run-test.sh
$(SEEDOPT
)
729 +cd tests
/arch
/gowin
&& bash run-test.sh
$(SEEDOPT
)
730 +cd tests
/rpc
&& bash run-test.sh
731 +cd tests
/memfile
&& bash run-test.sh
733 @echo
" Passed \"make test\"."
736 VALGRIND ?
= valgrind
--error-exitcode
=1 --leak-check
=full
--show-reachable
=yes
--errors-for-leak-kinds
=all
738 vgtest
: $(TARGETS
) $(EXTRA_TARGETS
)
739 $(VALGRIND
) .
/yosys
-p
'setattr -mod -unset top; synth' $$( ls tests
/simple
/*.v | grep
-v repwhile.v
)
741 @echo
" Passed \"make vgtest\"."
744 vloghtb
: $(TARGETS
) $(EXTRA_TARGETS
)
745 +cd tests
/vloghtb
&& bash run-test.sh
747 @echo
" Passed \"make vloghtb\"."
750 ystests
: $(TARGETS
) $(EXTRA_TARGETS
)
752 git clone https
://github.com
/YosysHQ
/yosys-tests.git tests
/ystests
753 +$(MAKE
) PATH
="$$PWD:$$PATH" -C tests
/ystests
755 @echo
" Finished \"make ystests\"."
759 unit-test
: libyosys.so
760 @
$(MAKE
) -C
$(UNITESTPATH
) CXX
="$(CXX)" CPPFLAGS
="$(CPPFLAGS)" \
761 CXXFLAGS
="$(CXXFLAGS)" LDLIBS
="$(LDLIBS)" ROOTPATH
="$(CURDIR)"
764 @
$(MAKE
) -C
$(UNITESTPATH
) clean
766 install: $(TARGETS
) $(EXTRA_TARGETS
)
767 $(INSTALL_SUDO
) mkdir
-p
$(DESTDIR
)$(BINDIR
)
768 $(INSTALL_SUDO
) cp
$(TARGETS
) $(DESTDIR
)$(BINDIR
)
769 ifneq ($(filter yosys
,$(TARGETS
)),)
770 $(INSTALL_SUDO
) $(STRIP
) -S
$(DESTDIR
)$(BINDIR
)/yosys
772 ifneq ($(filter yosys-abc
,$(TARGETS
)),)
773 $(INSTALL_SUDO
) $(STRIP
) $(DESTDIR
)$(BINDIR
)/yosys-abc
775 ifneq ($(filter yosys-filterlib
,$(TARGETS
)),)
776 $(INSTALL_SUDO
) $(STRIP
) $(DESTDIR
)$(BINDIR
)/yosys-filterlib
778 $(INSTALL_SUDO
) mkdir
-p
$(DESTDIR
)$(DATDIR
)
779 $(INSTALL_SUDO
) cp
-r share
/.
$(DESTDIR
)$(DATDIR
)/.
780 ifeq ($(ENABLE_LIBYOSYS
),1)
781 $(INSTALL_SUDO
) mkdir
-p
$(DESTDIR
)$(LIBDIR
)
782 $(INSTALL_SUDO
) cp libyosys.so
$(DESTDIR
)$(LIBDIR
)/
783 $(INSTALL_SUDO
) $(STRIP
) -S
$(DESTDIR
)$(LIBDIR
)/libyosys.so
784 ifeq ($(ENABLE_PYOSYS
),1)
785 $(INSTALL_SUDO
) mkdir
-p
$(PYTHON_DESTDIR
)/pyosys
786 $(INSTALL_SUDO
) cp libyosys.so
$(PYTHON_DESTDIR
)/pyosys
/
787 $(INSTALL_SUDO
) cp misc
/__init__.py
$(PYTHON_DESTDIR
)/pyosys
/
792 $(INSTALL_SUDO
) rm -vf
$(addprefix $(DESTDIR
)$(BINDIR
)/,$(notdir $(TARGETS
)))
793 $(INSTALL_SUDO
) rm -rvf
$(DESTDIR
)$(DATDIR
)
794 ifeq ($(ENABLE_LIBYOSYS
),1)
795 $(INSTALL_SUDO
) rm -vf
$(DESTDIR
)$(LIBDIR
)/libyosys.so
796 ifeq ($(ENABLE_PYOSYS
),1)
797 $(INSTALL_SUDO
) rm -vf
$(PYTHON_DESTDIR
)/pyosys
/libyosys.so
798 $(INSTALL_SUDO
) rm -vf
$(PYTHON_DESTDIR
)/pyosys
/__init__.py
799 $(INSTALL_SUDO
) rmdir
$(PYTHON_DESTDIR
)/pyosys
803 update-manual
: $(TARGETS
) $(EXTRA_TARGETS
)
804 cd manual
&& ..
/yosys
-p
'help -write-tex-command-reference-manual'
806 manual
: $(TARGETS
) $(EXTRA_TARGETS
)
807 cd manual
&& bash appnotes.sh
808 cd manual
&& bash presentation.sh
809 cd manual
&& bash manual.sh
814 if
test -d manual
; then cd manual
&& sh
clean.sh
; fi
815 rm -f
$(OBJS
) $(GENFILES
) $(TARGETS
) $(EXTRA_TARGETS
) $(EXTRA_OBJS
) $(PY_WRAP_INCLUDES
) $(PY_WRAPPER_FILE
).
cc
816 rm -f kernel
/version_
*.o kernel
/version_
*.
cc
817 rm -f libs
/*/*.d frontends
/*/*.d passes
/*/*.d backends
/*/*.d kernel
/*.d techlibs
/*/*.d
818 rm -rf tests
/asicworld
/*.out tests
/asicworld
/*.log
819 rm -rf tests
/hana
/*.out tests
/hana
/*.log
820 rm -rf tests
/simple
/*.out tests
/simple
/*.log
821 rm -rf tests
/memories
/*.out tests
/memories
/*.log tests
/memories
/*.dmp
822 rm -rf tests
/sat
/*.log tests
/techmap
/*.log tests
/various
/*.log
823 rm -rf tests
/bram
/temp tests
/fsm
/temp tests
/realmath
/temp tests
/share
/temp tests
/smv
/temp
824 rm -rf vloghtb
/Makefile vloghtb
/refdat vloghtb
/rtl vloghtb
/scripts vloghtb
/spec vloghtb
/check_yosys vloghtb
/vloghammer_tb.
tar.bz2 vloghtb
/temp vloghtb
/log_test_
*
825 rm -f tests
/svinterfaces
/*.log_stdout tests
/svinterfaces
/*.log_stderr tests
/svinterfaces
/dut_result.txt tests
/svinterfaces
/reference_result.txt tests
/svinterfaces
/a.out tests
/svinterfaces
/*_syn.v tests
/svinterfaces
/*.diff
826 rm -f tests
/tools
/cmp_tbdata
829 $(MAKE
) -C abc DEP
= clean
830 rm -f yosys-abc
$(EXE
) yosys-libabc.a abc
/abc-
[0-9a-f
]* abc
/libabc-
[0-9a-f
]*.a
836 .
/yosys
-qp
'help; help -all'
837 rm -rf coverage.
info coverage_html
838 lcov
--capture
-d .
--no-external
-o coverage.
info
839 genhtml coverage.
info --output-directory coverage_html
842 { for file in
$(basename $(OBJS
)); do \
843 for
prefix in
cc y l
; do if
[ -f
$${file}.
$${prefix} ]; then echo
$$file.
$${prefix}; fi
; done \
844 done
; find backends frontends kernel libs passes
-type f \
( -name
'*.h' -o
-name
'*.hh' \
); } > qtcreator.files
845 { echo .
; find backends frontends kernel libs passes
-type f \
( -name
'*.h' -o
-name
'*.hh' \
) -printf
'%h\n' |
sort -u
; } > qtcreator.includes
846 touch qtcreator.config qtcreator.creator
848 vcxsrc
: $(GENFILES
) $(EXTRA_TARGETS
)
849 rm -rf yosys-win32-vcxsrc-
$(YOSYS_VER
){,.zip
}
850 set
-e
; for f in
`ls $(filter %.cc %.cpp,$(GENFILES)) $(addsuffix .cc,$(basename $(OBJS))) $(addsuffix .cpp,$(basename $(OBJS))) 2> /dev/null`; do \
851 echo
"Analyse: $$f" >&2; cpp -std
=c
++11 -MM
-I.
-D_YOSYS_
$$f; done | sed
's,.*:,,; s,//*,/,g; s,/[^/]*/\.\./,/,g; y, \\,\n\n,;' | grep
'^[^/]' |
sort -u | grep
-v kernel
/version_
> srcfiles.txt
852 bash misc
/create_vcxsrc.sh yosys-win32-vcxsrc
$(YOSYS_VER
) $(GIT_REV
)
853 echo
"namespace Yosys { extern const char *yosys_version_str; const char *yosys_version_str=\"Yosys (Version Information Unavailable)\"; }" > kernel
/version.
cc
854 zip yosys-win32-vcxsrc-
$(YOSYS_VER
)/genfiles.zip
$(GENFILES
) kernel
/version.
cc
855 zip
-r yosys-win32-vcxsrc-
$(YOSYS_VER
).zip yosys-win32-vcxsrc-
$(YOSYS_VER
)/
856 rm -f srcfiles.txt kernel
/version.
cc
859 mxebin
: $(TARGETS
) $(EXTRA_TARGETS
)
860 rm -rf yosys-win32-mxebin-
$(YOSYS_VER
){,.zip
}
861 mkdir
-p yosys-win32-mxebin-
$(YOSYS_VER
)
862 cp
-r yosys.exe share
/ yosys-win32-mxebin-
$(YOSYS_VER
)/
863 ifeq ($(ENABLE_ABC
),1)
864 cp
-r yosys-abc.exe abc
/lib
/x86
/pthreadVC2.dll yosys-win32-mxebin-
$(YOSYS_VER
)/
866 echo
-en
'This is Yosys $(YOSYS_VER) for Win32.\r\n' > yosys-win32-mxebin-
$(YOSYS_VER
)/readme.txt
867 echo
-en
'Documentation at http://www.clifford.at/yosys/.\r\n' >> yosys-win32-mxebin-
$(YOSYS_VER
)/readme.txt
868 zip
-r yosys-win32-mxebin-
$(YOSYS_VER
).zip yosys-win32-mxebin-
$(YOSYS_VER
)/
875 echo
'CONFIG := clang' > Makefile.conf
878 echo
'CONFIG := gcc' > Makefile.conf
880 config-gcc-static
: clean
881 echo
'CONFIG := gcc-static' > Makefile.conf
882 echo
'ENABLE_PLUGINS := 0' >> Makefile.conf
883 echo
'ENABLE_READLINE := 0' >> Makefile.conf
884 echo
'ENABLE_TCL := 0' >> Makefile.conf
886 config-gcc-4.8
: clean
887 echo
'CONFIG := gcc-4.8' > Makefile.conf
889 config-afl-gcc
: clean
890 echo
'CONFIG := afl-gcc' > Makefile.conf
893 echo
'CONFIG := emcc' > Makefile.conf
894 echo
'ENABLE_TCL := 0' >> Makefile.conf
895 echo
'ENABLE_ABC := 0' >> Makefile.conf
896 echo
'ENABLE_PLUGINS := 0' >> Makefile.conf
897 echo
'ENABLE_READLINE := 0' >> Makefile.conf
900 echo
'CONFIG := mxe' > Makefile.conf
901 echo
'ENABLE_PLUGINS := 0' >> Makefile.conf
904 echo
'CONFIG := msys2' > Makefile.conf
905 echo
'ENABLE_PLUGINS := 0' >> Makefile.conf
907 config-msys2-64
: clean
908 echo
'CONFIG := msys2-64' > Makefile.conf
909 echo
'ENABLE_PLUGINS := 0' >> Makefile.conf
912 echo
'CONFIG := cygwin' > Makefile.conf
915 echo
'CONFIG := gcc' > Makefile.conf
916 echo
'ENABLE_GCOV := 1' >> Makefile.conf
917 echo
'ENABLE_DEBUG := 1' >> Makefile.conf
920 echo
'CONFIG := gcc' > Makefile.conf
921 echo
'ENABLE_GPROF := 1' >> Makefile.conf
924 echo
"INSTALL_SUDO := sudo" >> Makefile.conf
933 -include frontends
/*/*.d
934 -include passes
/*/*.d
935 -include backends
/*/*.d
937 -include techlibs
/*/*.d
939 .PHONY
: all top-all abc
test install install-abc manual
clean mrproper qtcreator coverage vcxsrc mxebin
940 .PHONY
: config-clean config-clang config-gcc config-gcc-static config-gcc-4.8 config-afl-gcc config-gprof config-sudo