diff --git a/Makefile.in b/Makefile.in index c31f68513..172511286 100644 --- a/Makefile.in +++ b/Makefile.in @@ -139,7 +139,7 @@ ivl@EXEEXT@: $O ivl.def $(CXX) -o ivl@EXEEXT@ $O $(dllib) @EXTRALIBS@ dlltool --dllname ivl@EXEEXT@ --def ivl.def \ --output-lib libivl.a --output-exp ivl.exp - $(CXX) -o ivl@EXEEXT@ ivl.exp $O $(dllib) @EXTRALIBS@ + $(CXX) $(LDFLAGS) -o ivl@EXEEXT@ ivl.exp $O $(dllib) @EXTRALIBS@ else ivl@EXEEXT@: $O $(CXX) $(LDFLAGS) -o ivl@EXEEXT@ $O $(dllib) @@ -153,6 +153,9 @@ all: dep iverilog-vpi iverilog-vpi: iverilog-vpi.sh sed -e 's;@SHARED@;@shared@;' -e 's;@PIC@;@PICFLAG@;' \ + -e 's;@IVCC@;$(CC);' \ + -e 's;@IVCXX@;$(CXX);' \ + -e 's;@IVCFLAGS@;$(CXXFLAGS);' \ -e 's;@INCLUDEDIR@;@includedir@;' \ -e 's;@LIBDIR64@;@libdir64@;' \ -e 's;@VPIDIR1@;@vpidir1@;' -e 's;@VPIDIR2@;@vpidir2@;' \ diff --git a/iverilog-vpi.man b/iverilog-vpi.man index f49af2d7f..fb559691f 100644 --- a/iverilog-vpi.man +++ b/iverilog-vpi.man @@ -27,6 +27,15 @@ first source file is named \fIfoo.c\fP, the output becomes Include the named library in the link of the VPI module. This allows VPI modules to further reference external libraries. +.TP 8 +.B -I\fIdirectory\fP +Add \fIdirectory\fP to the list of directories that will be search for +header files. + +.TP 8 +.B -D\fIdefine\fP +Define a macro named \fIdefine\fP. + .TP 8 .B --name=\fIname\fP Normally, the output VPI module will be named after the first source @@ -39,6 +48,10 @@ This flag causes the program to print the install directory for VPI modules, then exit. It is a convenience for makefiles or automated plug-in installers. +.TP 8 +.B --cflags, --ldflags and -ldlibs +These flags provide compile time information. + .SH "PC-ONLY OPTIONS" The PC port of \fIiverilog-vpi\fP includes two special flags needed to diff --git a/iverilog-vpi.sh b/iverilog-vpi.sh index 4268ca278..3643b1004 100644 --- a/iverilog-vpi.sh +++ b/iverilog-vpi.sh @@ -20,12 +20,12 @@ #ident "$Id: iverilog-vpi.sh,v 1.14 2004/05/20 00:40:34 steve Exp $" # These are the variables used for compiling files -CC=gcc -CXX=gcc -CFLAGS="@PIC@ -O -I@INCLUDEDIR@" +CC=@IVCC@ +CXX=@IVCXX@ +CFLAGS="@PIC@ @IVCFLAGS@ -I@INCLUDEDIR@" # These are used for linking... -LD=gcc +LD=$CC LDFLAGS32="@SHARED@ -L@LIBDIR@" LDFLAGS64="@SHARED@ -L@LIBDIR64@" LDFLAGS="$LDFLAGS64" @@ -46,6 +46,7 @@ OBJ= LIB= OUT= INCOPT= +DEFS= # -- # parse the command line switches. This collects the source files @@ -63,11 +64,19 @@ do ;; *.cc) CXSRC="$CXSRC $parm" + LD=$CXX if [ x$OUT = x ]; then OUT=`basename $parm .cc` fi ;; + *.cpp) CXSRC="$CXSRC $parm" + LD=$CXX + if [ x$OUT = x ]; then + OUT=`basename $parm .cpp` + fi + ;; + *.o) OBJ="$OBJ $parm" if [ x$OUT = x ]; then OUT=`basename $parm .o` @@ -82,7 +91,9 @@ do ;; -I*) INCOPT="$INCOPT $parm" - echo "$parm" + ;; + + -D*) DEFS="$DEFS $parm" ;; -m32) LDFLAGS="-m32 $LDFLAGS32" @@ -130,7 +141,7 @@ do obj=$base".o" echo "Compiling $src..." - $CC -c -o $obj $CFLAGS $INCOPT $src || compile_errors=`expr $compile_errors + 1` + $CC -c -o $obj $DEFS $CFLAGS $INCOPT $src || compile_errors=`expr $compile_errors + 1` OBJ="$OBJ $obj" done @@ -140,7 +151,7 @@ do obj=$base".o" echo "Compiling $src..." - $CXX -c -o $obj $CFLAGS $INCOPT $src || compile_errors=`expr $compile_errors + 1` + $CXX -c -o $obj $DEFS $CFLAGS $INCOPT $src || compile_errors=`expr $compile_errors + 1` OBJ="$OBJ $obj" done