Makefile now uses iverilog-vpi
authorTim 'mithro' Ansell <mithro@mithis.com>
Tue, 14 Apr 2015 08:28:56 +0000 (18:28 +1000)
committerSebastien Bourdeauducq <sb@m-labs.hk>
Tue, 14 Apr 2015 15:17:13 +0000 (23:17 +0800)
From `man iverilog-vpi`;
> iverilog-vpi is a tool to simplify the compilation of VPI modules for use
> with Icarus Verilog. It takes on the command line a list of C or C++ source
> files, and generates as output a linked VPI module.

Fixes https://github.com/m-labs/migen/issues/11

vpi/Makefile

index dc2fa02501c15991afb77b785c0f101a60a3a802..54ab175bae5d2906768f00840bd27c9ac5ce923a 100644 (file)
@@ -1,15 +1,17 @@
-INSTDIR=/usr/lib/ivl
-INCDIRS=-I/usr/include/iverilog
+INSTDIR = $(shell iverilog-vpi --install-dir)
+
+CFLAGS = -Wall -O2 $(CFLAGS_$@)
+VPI_CFLAGS := $(shell iverilog-vpi --cflags)
 
 OBJ=ipc.o main.o
 
 all: migensim.vpi
 
 %.o: %.c
-       $(CC) -fPIC -Wall -O2 -c $(INCDIRS) -o $@ $<
+       $(CC) $(CFLAGS) $(VPI_CFLAGS) -c $(INCDIRS) -o $@ $<
 
 migensim.vpi: $(OBJ)
-       $(CC) -shared -o $@ $(OBJ) -lvpi
+       iverilog-vpi --name=migensim $^
 
 install: migensim.vpi
        install -m755 -t $(INSTDIR) $^