GHDL=ghdl GHDL_STD=08 GHDL_FLAGS= --std=$(GHDL_STD) --workdir=ghdl GHDL_FLAGS+=--ieee=standard GHDL_FLAGS+=-fsynopsys GHDL_RUN_FLAGS= MODULES=\ carry_ripple_adder.o \ alu.o \ full_adder.o \ alu_testbench \ carry_ripple_adder_testbench \ full_adder_testbench # Default target : elaborate all : elab # Elaborate target. Almost useless elab : force $(GHDL) -c $(GHDL_FLAGS) -e top_gc_di_tb # Run target run : force $(GHDL) -c $(GHDL_FLAGS) -r top_gc_di_tb $(GHDLRUNFLAGS) # Targets to analyze libraries init: force $(GHDL) -a $(GHDL_FLAGS) rtl\top_gc_di.vhd $(GHDL) -a $(GHDL_FLAGS) testbenchs\top_gc_di_tb.vhd test: $(MODULES) ./full_adder_testbench --vcd=full_adder_testbench.vcd ./carry_ripple_adder_testbench --vcd=carry_ripple_adder_testbench.vcd ./alu_testbench --vcd=alu_testbench.vcd # Binary depends on the object file %: %.o $(GHDL) -e $(GHDL_FLAGS) $@ # Object file depends on source %.o: %.vhd $(GHDL) -a $(GHDL_FLAGS) $< clean: echo "Cleaning up..." rm -f *.o *_testbench full_adder carry_ripple_adder work*.cf e*.lst force: