14 TARGETS
= yosys yosys-config
18 CXXFLAGS
= -Wall
-Wextra
-ggdb
-I
"$(shell pwd)" -MD
-D_YOSYS_
-fPIC
20 LDLIBS
= -lstdc
++ -lreadline
-lm
-ldl
23 -include Makefile.conf
25 ifeq ($(CONFIG
),clang-debug
)
27 CXXFLAGS
+= -std
=c
++11 -O0
30 ifeq ($(CONFIG
),gcc-debug
)
32 CXXFLAGS
+= -std
=gnu
++0x
-O0
35 ifeq ($(CONFIG
),release
)
37 CXXFLAGS
+= -std
=gnu
++0x
-march
=native
-O3
-DNDEBUG
40 ifeq ($(ENABLE_TCL
),1)
41 CXXFLAGS
+= -I
/usr
/include/tcl8.5
-DYOSYS_ENABLE_TCL
45 ifeq ($(ENABLE_GPROF
),1)
50 ifeq ($(ENABLE_QT4
),1)
51 TARGETS
+= yosys-svgviewer
54 OBJS
+= kernel
/driver.o kernel
/register.o kernel
/rtlil.o kernel
/log.o kernel
/calc.o
56 OBJS
+= libs
/bigint
/BigIntegerAlgorithms.o libs
/bigint
/BigInteger.o libs
/bigint
/BigIntegerUtils.o
57 OBJS
+= libs
/bigint
/BigUnsigned.o libs
/bigint
/BigUnsignedInABase.o
59 OBJS
+= libs
/sha1
/sha1.o
60 OBJS
+= libs
/subcircuit
/subcircuit.o
61 OBJS
+= libs
/ezsat
/ezsat.o
63 ifeq ($(ENABLE_MINISAT
),1)
64 CXXFLAGS
+= -DYOSYS_ENABLE_MINISAT
65 OBJS
+= libs
/ezsat
/ezminisat.o
69 include frontends
/*/Makefile.inc
70 include passes
/*/Makefile.inc
71 include backends
/*/Makefile.inc
72 include techlibs
/Makefile.inc
74 top-all
: $(TARGETS
) $(EXTRA_TARGETS
)
77 $(CXX
) -o yosys
$(LDFLAGS
) $(OBJS
) $(LDLIBS
)
79 yosys-config
: yosys-config.in
80 sed
's,@CXX@,$(CXX),; s,@CXXFLAGS@,$(CXXFLAGS),; s,@LDFLAGS@,$(LDFLAGS),; s,@LDLIBS@,$(LDLIBS),;' < yosys-config.in
> yosys-config
83 yosys-svgviewer
: libs
/svgviewer
/*.h libs
/svgviewer
/*.
cpp
84 cd libs
/svgviewer
&& $(QMAKE
) && make
85 cp libs
/svgviewer
/svgviewer yosys-svgviewer
88 test -d abc || hg clone https
://bitbucket.org
/alanmi
/abc abc
89 cd abc
&& hg pull
&& make
93 cd tests
/simple
&& bash run-test.sh
94 cd tests
/hana
&& bash run-test.sh
95 cd tests
/asicworld
&& bash run-test.sh
98 install $(TARGETS
) /usr
/local
/bin
/
101 install yosys-abc
/usr
/local
/bin
/
104 rm -f
$(OBJS
) $(GENFILES
) $(TARGETS
)
105 rm -f libs
/*/*.d frontends
/*/*.d passes
/*/*.d backends
/*/*.d kernel
/*.d
106 test ! -f libs
/svgviewer
/Makefile || make
-C libs
/svgviewer
distclean
112 { for file in
$(basename $(OBJS
)); do \
113 for
prefix in
cc y l
; do if
[ -f
$${file}.
$${prefix} ]; then echo
$$file.
$${prefix}; fi
; done \
114 done
; find backends frontends kernel libs passes
-type f \
( -name
'*.h' -o
-name
'*.hh' \
); } > qtcreator.files
115 { echo .
; find backends frontends kernel libs passes
-type f \
( -name
'*.h' -o
-name
'*.hh' \
) -printf
'%h\n' |
sort -u
; } > qtcreator.includes
116 touch qtcreator.config qtcreator.creator
121 config-clang-debug
: clean
122 echo
'CONFIG := clang-debug' > Makefile.conf
124 config-gcc-debug
: clean
125 echo
'CONFIG := gcc-debug' > Makefile.conf
127 config-release
: clean
128 echo
'CONFIG := release' > Makefile.conf
131 echo
'CONFIG := release' > Makefile.conf
132 echo
'ENABLE_GPROF := 1' >> Makefile.conf
135 -include frontends
/*/*.d
136 -include passes
/*/*.d
137 -include backends
/*/*.d
140 .PHONY
: all top-all abc
test install install-abc
clean mrproper qtcreator
141 .PHONY
: config-clean config-clang-debug config-gcc-debug config-release