From 34bb00144f3e3e770920935650e2e49c8d5c6e95 Mon Sep 17 00:00:00 2001 From: Cary R Date: Mon, 13 Aug 2012 18:09:00 -0700 Subject: [PATCH] V0.9: back port some cross compile changes --- Makefile.in | 7 ++++--- cadpli/Makefile.in | 4 +--- configure.in | 4 ++++ driver-vpi/Makefile.in | 3 ++- ivlpp/Makefile.in | 2 +- libveriuser/Makefile.in | 6 ++++-- vpi/Makefile.in | 4 ++-- vvp/Makefile.in | 14 ++++++++------ vvp/ivl_dlfcn.h | 2 +- 9 files changed, 27 insertions(+), 19 deletions(-) diff --git a/Makefile.in b/Makefile.in index e7dabd928..1aabdae62 100644 --- a/Makefile.in +++ b/Makefile.in @@ -69,6 +69,7 @@ dllib=@DLLIB@ CC = @CC@ HOSTCC = @CC@ CXX = @CXX@ +DLLTOOL = @DLLTOOL@ INSTALL = @INSTALL@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -92,7 +93,7 @@ all: dep config.h _pli_types.h version_tag.h ivl@EXEEXT@ version.exe iverilog-vp ifeq (@MINGW32@,yes) all: dep dosify.exe dosify.exe: $(srcdir)/dosify.c - $(CC) -o dosify.exe $(srcdir)/dosify.c + $(HOSTCC) -o dosify.exe $(srcdir)/dosify.c endif # This rule rules the compiler in the trivial hello.vl program to make @@ -184,8 +185,8 @@ ifeq (@WIN32@,yes) # that really exports the things that the import library imports. ivl@EXEEXT@: $O $(srcdir)/ivl.def $(CXX) -o ivl@EXEEXT@ $O $(dllib) @EXTRALIBS@ - dlltool --dllname ivl@EXEEXT@ --def $(srcdir)/ivl.def \ - --output-lib libivl.a --output-exp ivl.exp + $(DLLTOOL) --dllname ivl@EXEEXT@ --def $(srcdir)/ivl.def \ + --output-lib libivl.a --output-exp ivl.exp $(CXX) $(LDFLAGS) -o ivl@EXEEXT@ ivl.exp $O $(dllib) @EXTRALIBS@ else ivl@EXEEXT@: $O diff --git a/cadpli/Makefile.in b/cadpli/Makefile.in index 6e401ee6a..c41cb8d01 100644 --- a/cadpli/Makefile.in +++ b/cadpli/Makefile.in @@ -41,8 +41,6 @@ CPPFLAGS = -I$(srcdir) -I$(srcdir)/.. -I.. @CPPFLAGS@ @DEFS@ @PICFLAG@ CFLAGS = @WARNING_FLAGS@ @CFLAGS@ LDFLAGS = @LDFLAGS@ -SHARED = @shared@ - all: all: dep cadpli.vpl $(ALL32) @@ -68,7 +66,7 @@ ifeq (@MINGW32@,yes) endif cadpli.vpl: $O ../vvp/libvpi.a ../libveriuser/libveriuser.o - $(CC) @shared@ -o $@ $O ../libveriuser/libveriuser.o $(SYSTEM_VPI_LDFLAGS) + $(CC) @shared@ $(LDFLAGS) -o $@ $O ../libveriuser/libveriuser.o $(SYSTEM_VPI_LDFLAGS) clean: rm -rf *.o dep cadpli.vpl diff --git a/configure.in b/configure.in index 9a57a5bab..7824c8338 100644 --- a/configure.in +++ b/configure.in @@ -20,7 +20,11 @@ AC_PREREQ([2.60]) AC_PROG_CC_C99 AC_PROG_CXX AC_PROG_RANLIB +AC_CHECK_TOOL(LD, ld, true) +AC_CHECK_TOOL(AR, ar, true) +AC_CHECK_TOOL(DLLTOOL, dlltool, true) AC_CHECK_TOOL(STRIP, strip, true) +AC_CHECK_TOOL(WINDRES, windres, true) AC_CHECK_PROGS(XGPERF,gperf,none) AC_CHECK_PROGS(MAN,man,none) AC_CHECK_PROGS(PS2PDF,ps2pdf,none) diff --git a/driver-vpi/Makefile.in b/driver-vpi/Makefile.in index f61ff7464..9fe4777e4 100644 --- a/driver-vpi/Makefile.in +++ b/driver-vpi/Makefile.in @@ -37,6 +37,7 @@ mandir = @mandir@ dllib=@DLLIB@ CC = @CC@ +WINDRES = @WINDRES@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ @@ -79,7 +80,7 @@ res.rc: $(srcdir)/res.rc.in ../version.exe $(srcdir)/res.rc.in > $@ res.o: res.rc - windres -i res.rc -o res.o + $(WINDRES) -i res.rc -o res.o # install: all installdirs $(bindir)/iverilog-vpi$(suffix)@EXEEXT@ diff --git a/ivlpp/Makefile.in b/ivlpp/Makefile.in index d0733decc..a26ee0ce2 100644 --- a/ivlpp/Makefile.in +++ b/ivlpp/Makefile.in @@ -60,7 +60,7 @@ O = main.o lexor.o ivlpp@EXEEXT@: $O $(CC) $(LDFLAGS) $O -o ivlpp@EXEEXT@ @EXTRALIBS@ -lexor.c: lexor.lex +lexor.c: $(srcdir)/lexor.lex $(LEX) -t $< > $@ install: all installdirs $(libdir)/ivl$(suffix)/ivlpp@EXEEXT@ diff --git a/libveriuser/Makefile.in b/libveriuser/Makefile.in index 31e16b8b4..a0348d820 100644 --- a/libveriuser/Makefile.in +++ b/libveriuser/Makefile.in @@ -31,6 +31,9 @@ libdir = @libdir@ includedir = $(prefix)/include CC = @CC@ +RANLIB = @RANLIB@ +AR = @AR@ +LD = @LD@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ @@ -38,7 +41,6 @@ INSTALL_DATA = @INSTALL_DATA@ CPPFLAGS = -I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@ @PICFLAG@ CFLAGS = @WARNING_FLAGS@ @CFLAGS@ LDFLAGS = @LDFLAGS@ -RANLIB = @RANLIB@ A = a_close.o a_compare_handles.o a_configure.o a_fetch_argc.o \ a_fetch_argv.o a_fetch_dir.o a_fetch_fullname.o a_fetch_location.o \ @@ -72,7 +74,7 @@ libveriuser.o: $O libveriuser.a: libveriuser.o rm -f $@ - ar cvq $@ libveriuser.o + $(AR) cvq $@ libveriuser.o $(RANLIB) $@ dep: diff --git a/vpi/Makefile.in b/vpi/Makefile.in index 2b87d23cb..d422f6f1e 100644 --- a/vpi/Makefile.in +++ b/vpi/Makefile.in @@ -86,12 +86,12 @@ endif system.vpi: $O ../vvp/libvpi.a $(CC) @shared@ -o $@ $O -L../vvp $(LDFLAGS) -lvpi $(SYSTEM_VPI_LDFLAGS) -sys_readmem_lex.c: sys_readmem_lex.lex +sys_readmem_lex.c: $(srcdir)/sys_readmem_lex.lex $(LEX) -Preadmem -t $< > $@ sdf_lexor.o: sdf_lexor.c sdf_parse.h -sdf_lexor.c: sdf_lexor.lex +sdf_lexor.c: $(srcdir)/sdf_lexor.lex $(LEX) -Psdf -t $< > $@ # Build this in two steps to avoid parallel build issues (see pr3462585) diff --git a/vvp/Makefile.in b/vvp/Makefile.in index e0b04c36a..a7d62cb05 100644 --- a/vvp/Makefile.in +++ b/vvp/Makefile.in @@ -35,11 +35,13 @@ includedir = @includedir@ CC = @CC@ HOSTCC = @CC@ CXX = @CXX@ +DLLTOOL = @DLLTOOL@ +AR = @AR@ +RANLIB = @RANLIB@ INSTALL = @INSTALL@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ -RANLIB = @RANLIB@ LEX = @LEX@ YACC = @YACC@ MAN = @MAN@ @@ -102,7 +104,7 @@ ifeq (@WIN32@,yes) # executable to build the library. vvp@EXEEXT@ libvpi.a: $O $(srcdir)/vvp.def $(CXX) -o vvp$(suffix)@EXEEXT@ $(LDFLAGS) $O $(dllib) $(LIBS) - dlltool --dllname vvp$(suffix)@EXEEXT@ --def $(srcdir)/vvp.def \ + $(DLLTOOL) --dllname vvp$(suffix)@EXEEXT@ --def $(srcdir)/vvp.def \ --output-lib libvpi.a --output-exp vvp.exp rm -f vvp$(suffix)@EXEEXT@ $(CXX) $(LDFLAGS) -o vvp@EXEEXT@ vvp.exp $(LDFLAGS) $O $(dllib) $(LIBS) @@ -110,7 +112,7 @@ else libvpi.a: libvpi.c $(CC) -c $(srcdir)/libvpi.c rm -f libvpi.a - ar cqv libvpi.a libvpi.o + $(AR) cqv libvpi.a libvpi.o $(RANLIB) libvpi.a vvp@EXEEXT@: $O @@ -129,9 +131,9 @@ dep: mv $*.d dep/$*.d tables.cc: $(srcdir)/draw_tt.c - $(HOSTCC) @WARNING_FLAGS@ -o draw_tt $(srcdir)/draw_tt.c - ./draw_tt > tables.cc - rm draw_tt@EXEEXT@ + $(HOSTCC) @WARNING_FLAGS@ -o draw_tt.exe $(srcdir)/draw_tt.c + ./draw_tt.exe > tables.cc + rm draw_tt.exe lexor.o: lexor.cc parse.h diff --git a/vvp/ivl_dlfcn.h b/vvp/ivl_dlfcn.h index e9c5ac2ea..72cbc0a1c 100644 --- a/vvp/ivl_dlfcn.h +++ b/vvp/ivl_dlfcn.h @@ -32,7 +32,7 @@ typedef shl_t ivl_dll_t; #endif #if defined(__MINGW32__) -inline ivl_dll_t ivl_dlopen(const char *name, bool global_flag) +inline ivl_dll_t ivl_dlopen(const char *name, bool) { static char full_name[4096]; unsigned long length = GetFullPathName(name, sizeof(full_name),