Mercurial > mxe-octave
changeset 3076:b39e8dc859f7
[MSVC] enable gmplib compilation
- create clgfortran.exe wrapper (to make libtool happy)
- make cc-msvc/clgcc/clg++ to ignore --export-all-symbols and --output-def
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Fri, 21 Jun 2013 19:50:36 -0400 |
parents | 21586f2d1fe7 |
children | 9c56d108c141 |
files | Makefile.in src/build-msvctools/Makefile src/build-msvctools/cc-msvc.cc src/gmp.mk |
diffstat | 4 files changed, 30 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile.in Fri Jun 21 15:39:22 2013 -0400 +++ b/Makefile.in Fri Jun 21 19:50:36 2013 -0400 @@ -159,7 +159,7 @@ MXE_RANLIB := ranlib MXE_CC := clgcc MXE_CXX := clg++ - MXE_F77 := gfortran-msvc + MXE_F77 := clgfortran MXE_DLLTOOL := true MXE_NM := nm MXE_STRIP := true @@ -173,6 +173,7 @@ MXE_AR := ar MXE_RANLIB := ranlib MXE_CC := gcc + MXE_CCAS := gcc MXE_CXX := g++ MXE_F77 := gfortran MXE_DLLTOOL := dlltool
--- a/src/build-msvctools/Makefile Fri Jun 21 15:39:22 2013 -0400 +++ b/src/build-msvctools/Makefile Fri Jun 21 19:50:36 2013 -0400 @@ -3,6 +3,7 @@ cc-msvc.exe \ clgcc.exe \ clg++.exe \ + clgfortran.exe \ dirent.h \ dirent.lib \ getopt.h \ @@ -111,6 +112,9 @@ gfortran-msvc.exe: gfortran-msvc.cc cl -nologo -O2 -EHsc gfortran-msvc.cc +clgfortran.exe: gfortran-msvc.exe + cp -a $< $@ + gfortran-msvc-gcc-patch.stamp: (cd ../gcc-$(GCCVERSION)/ && patch -p1) < gcc.diff (cd ../gcc-$(GCCVERSION)/ && \ @@ -162,6 +166,7 @@ $(INSTALL) clg++.exe $(DESTDIR)/bin/ $(INSTALL) lt-postproc $(DESTDIR)/bin/ $(INSTALL) gfortran-msvc.exe $(DESTDIR)/bin/ + $(INSTALL) clgfortran.exe $(DESTDIR)/bin/ $(INSTALL) ranlib-msvc $(DESTDIR)/bin/ $(INSTALL) $(LIBRARY_PREFIX)gfortran-msvc$(LIBRARY_SUFFIX).dll $(DESTDIR)/bin/ $(INSTALL) -d $(DESTDIR)/include
--- a/src/build-msvctools/cc-msvc.cc Fri Jun 21 15:39:22 2013 -0400 +++ b/src/build-msvctools/cc-msvc.cc Fri Jun 21 19:50:36 2013 -0400 @@ -556,10 +556,20 @@ } else if (arg == "-m386" || arg == "-m486" || arg == "-mpentium" || arg == "-mpentiumpro" || arg == "-pedantic" || starts_with(arg, "-W") || - arg == "-fPIC" || arg == "-nostdlib") + arg == "-fPIC" || arg == "-nostdlib" || arg == "--export-all-symbols") { // ignore } + else if (arg == "--output-def") + { + if (i < argc-1) + ++i; + else + { + cerr << "ERROR: argument missing for " << arg << endl; + return 1; + } + } else if (arg == "-noembed") { mt_embed = false;
--- a/src/gmp.mk Fri Jun 21 15:39:22 2013 -0400 +++ b/src/gmp.mk Fri Jun 21 19:50:36 2013 -0400 @@ -10,6 +10,13 @@ $(PKG)_URL_2 := ftp://ftp.cs.tu-berlin.de/pub/gnu/$(PKG)/$($(PKG)_FILE) $(PKG)_DEPS := +ifeq ($(MXE_SYSTEM),msvc) + $(PKG)_CONFIGURE_OPTIONS := CC_FOR_BUILD='$(MXE_CC)' CCAS='gcc -c' ac_cv_func_memset='yes' + COMMA := , +else + $(PKG)_CONFIGURE_OPTIONS := CC_FOR_BUILD=gcc +endif + define $(PKG)_UPDATE $(WGET) -q -O- 'http://www.gmplib.org/' | \ grep '<a href="' | \ @@ -19,12 +26,15 @@ endef define $(PKG)_BUILD - cd '$(1)' && CC_FOR_BUILD=gcc ./configure \ + $(if $(filter msvc,$(MXE_SYSTEM)), \ + $(SED) -i -e '/^#ifdef _MSC_VER/$(COMMA)/^#endif/ {/^ *#define __GMP_EXTERN_INLINE .*/d}' '$(1)/gmp-h.in') + cd '$(1)' && ./configure \ $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ + $($(PKG)_CONFIGURE_OPTIONS) \ --prefix='$(HOST_PREFIX)' \ $(ENABLE_SHARED_OR_STATIC) \ --enable-cxx \ - --without-readline + --without-readline && $(CONFIGURE_POST_HOOK) $(MAKE) -C '$(1)' -j '$(JOBS)' $(MAKE) -C '$(1)' -j 1 install endef