@@ -30,6 +30,7 @@ ENABLE_GCOV := 0
3030ENABLE_GPROF := 0
3131ENABLE_DEBUG := 0
3232ENABLE_NDEBUG := 0
33+ ENABLE_CCACHE := 0
3334LINK_CURSES := 0
3435LINK_TERMCAP := 0
3536LINK_ABC := 0
@@ -81,7 +82,7 @@ all: top-all
8182YOSYS_SRC := $(dir $(firstword $(MAKEFILE_LIST ) ) )
8283VPATH := $(YOSYS_SRC )
8384
84- CXXFLAGS := $(CXXFLAGS ) -Wall -Wextra -ggdb -I. -I"$(YOSYS_SRC ) " -MD -D_YOSYS_ -fPIC -I$(PREFIX ) /include
85+ CXXFLAGS := $(CXXFLAGS ) -Wall -Wextra -ggdb -I. -I"$(YOSYS_SRC ) " -MD -MP - D_YOSYS_ -fPIC -I$(PREFIX ) /include
8586LDLIBS := $(LDLIBS ) -lstdc++ -lm
8687PLUGIN_LDFLAGS :=
8788
@@ -122,7 +123,7 @@ LDFLAGS += -rdynamic
122123LDLIBS += -lrt
123124endif
124125
125- YOSYS_VER := 0.9+2406
126+ YOSYS_VER := 0.9+3683
126127GIT_REV := $(shell cd $(YOSYS_SRC ) && git rev-parse --short HEAD 2> /dev/null || echo UNKNOWN)
127128OBJS = kernel/version_$(GIT_REV ) .o
128129
170171PYTHON_CONFIG := $(PYTHON_EXECUTABLE ) -config
171172endif
172173
173- PYTHON_PREFIX := $(shell $(PYTHON_CONFIG ) --prefix)
174- PYTHON_DESTDIR := $(PYTHON_PREFIX ) /lib/python$(PYTHON_VERSION ) /site-packages
174+ PYTHON_DESTDIR := $(shell $(PYTHON_EXECUTABLE ) -c "import site; print(site.getsitepackages() [-1]);")
175175
176176# Reload Makefile.conf to override python specific variables if defined
177177ifneq ($(wildcard Makefile.conf) ,)
@@ -246,7 +246,7 @@ CXXFLAGS := -std=c++11 $(filter-out -fPIC -ggdb,$(CXXFLAGS))
246246ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H -DABC_MEMALIGN=8"
247247EMCCFLAGS := -Os -Wno-warn-absolute-paths
248248EMCCFLAGS += --memory-init-file 0 --embed-file share -s NO_EXIT_RUNTIME=1
249- EMCCFLAGS += -s EXPORTED_FUNCTIONS="['_main','_run','_prompt','_errmsg']"
249+ EMCCFLAGS += -s EXPORTED_FUNCTIONS="['_main','_run','_prompt','_errmsg','_memset' ]"
250250EMCCFLAGS += -s TOTAL_MEMORY=134217728
251251EMCCFLAGS += -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]'
252252# https://github.com/kripken/emscripten/blob/master/src/settings.js
@@ -528,6 +528,10 @@ ifeq ($(ENABLE_COVER),1)
528528CXXFLAGS += -DYOSYS_ENABLE_COVER
529529endif
530530
531+ ifeq ($(ENABLE_CCACHE ) ,1)
532+ CXX := ccache $(CXX )
533+ endif
534+
531535define add_share_file
532536EXTRA_TARGETS += $(subst //,/,$(1 ) /$(notdir $(2 ) ) )
533537$(subst //,/,$(1 ) /$(notdir $(2 ) ) ) : $(2 )
@@ -580,13 +584,16 @@ $(eval $(call add_include_file,kernel/modtools.h))
580584$(eval $(call add_include_file,kernel/macc.h))
581585$(eval $(call add_include_file,kernel/utils.h))
582586$(eval $(call add_include_file,kernel/satgen.h))
587+ $(eval $(call add_include_file,kernel/ff.h))
588+ $(eval $(call add_include_file,kernel/ffinit.h))
589+ $(eval $(call add_include_file,kernel/mem.h))
583590$(eval $(call add_include_file,libs/ezsat/ezsat.h))
584591$(eval $(call add_include_file,libs/ezsat/ezminisat.h))
585592$(eval $(call add_include_file,libs/sha1/sha1.h))
586593$(eval $(call add_include_file,libs/json11/json11.hpp))
587594$(eval $(call add_include_file,passes/fsm/fsmdata.h))
588595$(eval $(call add_include_file,frontends/ast/ast.h))
589- $(eval $(call add_include_file,backends/ilang/ilang_backend .h))
596+ $(eval $(call add_include_file,backends/rtlil/rtlil_backend .h))
590597$(eval $(call add_include_file,backends/cxxrtl/cxxrtl.h))
591598$(eval $(call add_include_file,backends/cxxrtl/cxxrtl_vcd.h))
592599$(eval $(call add_include_file,backends/cxxrtl/cxxrtl_capi.cc))
@@ -595,7 +602,7 @@ $(eval $(call add_include_file,backends/cxxrtl/cxxrtl_vcd_capi.cc))
595602$(eval $(call add_include_file,backends/cxxrtl/cxxrtl_vcd_capi.h))
596603
597604OBJS += kernel/driver.o kernel/register.o kernel/rtlil.o kernel/log.o kernel/calc.o kernel/yosys.o
598- OBJS += kernel/cellaigs.o kernel/celledges.o
605+ OBJS += kernel/cellaigs.o kernel/celledges.o kernel/satgen.o kernel/mem.o
599606
600607kernel/log.o : CXXFLAGS += -DYOSYS_SRC='"$(YOSYS_SRC ) "'
601608kernel/yosys.o : CXXFLAGS += -DYOSYS_DATDIR='"$(DATDIR ) "' -DYOSYS_PROGRAM_PREFIX='"$(PROGRAM_PREFIX ) "'
@@ -627,7 +634,7 @@ include $(YOSYS_SRC)/techlibs/*/Makefile.inc
627634else
628635
629636include $(YOSYS_SRC ) /frontends/verilog/Makefile.inc
630- include $(YOSYS_SRC ) /frontends/ilang /Makefile.inc
637+ include $(YOSYS_SRC ) /frontends/rtlil /Makefile.inc
631638include $(YOSYS_SRC ) /frontends/ast/Makefile.inc
632639include $(YOSYS_SRC ) /frontends/blif/Makefile.inc
633640
@@ -644,7 +651,7 @@ include $(YOSYS_SRC)/passes/opt/Makefile.inc
644651include $(YOSYS_SRC ) /passes/techmap/Makefile.inc
645652
646653include $(YOSYS_SRC ) /backends/verilog/Makefile.inc
647- include $(YOSYS_SRC ) /backends/ilang /Makefile.inc
654+ include $(YOSYS_SRC ) /backends/rtlil /Makefile.inc
648655
649656include $(YOSYS_SRC ) /techlibs/common/Makefile.inc
650657
@@ -654,6 +661,10 @@ ifeq ($(LINK_ABC),1)
654661OBJS += $(PROGRAM_PREFIX ) yosys-libabc.a
655662endif
656663
664+ # prevent the CXXFLAGS set by this Makefile from reaching abc/Makefile,
665+ # especially the -MD flag which will break the build when CXX is clang
666+ unexport CXXFLAGS
667+
657668top-all : $(TARGETS ) $(EXTRA_TARGETS )
658669 @echo " "
659670 @echo " Build successful."
@@ -679,7 +690,7 @@ endif
679690
680691% .pyh : % .h
681692 $(Q ) mkdir -p $(dir $@ )
682- $(P ) cat $< | grep -E -v " #[ ]*(include|error)" | $(LD ) -x c++ -o $@ -E -P -
693+ $(P ) cat $< | grep -E -v " #[ ]*(include|error)" | $(LD ) $( CXXFLAGS ) -x c++ -o $@ -E -P -
683694
684695ifeq ($(ENABLE_PYOSYS ) ,1)
685696$(PY_WRAPPER_FILE ) .cc : misc/$(PY_GEN_SCRIPT ) .py $(PY_WRAP_INCLUDES )
@@ -783,6 +794,7 @@ test: $(TARGETS) $(EXTRA_TARGETS)
783794 +cd tests/arch/anlogic && bash run-test.sh $(SEEDOPT )
784795 +cd tests/arch/gowin && bash run-test.sh $(SEEDOPT )
785796 +cd tests/arch/intel_alm && bash run-test.sh $(SEEDOPT )
797+ +cd tests/arch/nexus && bash run-test.sh $(SEEDOPT )
786798 +cd tests/rpc && bash run-test.sh
787799 +cd tests/memfile && bash run-test.sh
788800 +cd tests/verilog && bash run-test.sh
@@ -839,9 +851,9 @@ ifeq ($(ENABLE_LIBYOSYS),1)
839851 $(INSTALL_SUDO) cp libyosys.so $(DESTDIR)$(LIBDIR)/
840852 $(INSTALL_SUDO) $(STRIP) -S $(DESTDIR)$(LIBDIR)/libyosys.so
841853ifeq ($(ENABLE_PYOSYS ) ,1)
842- $(INSTALL_SUDO) mkdir -p $(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys
843- $(INSTALL_SUDO) cp libyosys.so $(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/libyosys.so
844- $(INSTALL_SUDO) cp misc/__init__.py $(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/
854+ $(INSTALL_SUDO) mkdir -p $(DESTDIR)$( PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys
855+ $(INSTALL_SUDO) cp libyosys.so $(DESTDIR)$( PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/libyosys.so
856+ $(INSTALL_SUDO) cp misc/__init__.py $(DESTDIR)$( PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/
845857endif
846858endif
847859
@@ -851,9 +863,9 @@ uninstall:
851863ifeq ($(ENABLE_LIBYOSYS ) ,1)
852864 $(INSTALL_SUDO) rm -vf $(DESTDIR)$(LIBDIR)/libyosys.so
853865ifeq ($(ENABLE_PYOSYS ) ,1)
854- $(INSTALL_SUDO) rm -vf $(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/libyosys.so
855- $(INSTALL_SUDO) rm -vf $(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/__init__.py
856- $(INSTALL_SUDO) rmdir $(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys
866+ $(INSTALL_SUDO) rm -vf $(DESTDIR)$( PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/libyosys.so
867+ $(INSTALL_SUDO) rm -vf $(DESTDIR)$( PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/__init__.py
868+ $(INSTALL_SUDO) rmdir $(DESTDIR)$( PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys
857869endif
858870endif
859871
0 commit comments