lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [6473] Use MinGW-w64 cross compiler


From: Greg Chicares
Subject: [lmi-commits] [6473] Use MinGW-w64 cross compiler
Date: Mon, 18 Jan 2016 03:04:21 +0000

Revision: 6473
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=6473
Author:   chicares
Date:     2016-01-18 03:04:21 +0000 (Mon, 18 Jan 2016)
Log Message:
-----------
Use MinGW-w64 cross compiler

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/install_wx.make
    lmi/trunk/install_wxpdfdoc.make
    lmi/trunk/msw_cygwin.make

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2016-01-18 01:52:52 UTC (rev 6472)
+++ lmi/trunk/ChangeLog 2016-01-18 03:04:21 UTC (rev 6473)
@@ -38442,3 +38442,20 @@
   install_wx.make
 Alphabetize 'configure' toggles.
 
+20160118T0131Z <address@hidden> [455]
+
+  workhorse.make
+Install toolchain runtime libraries in /opt/lmi/local/bin/ .
+
+20160118T0152Z <address@hidden> [455]
+
+  workhorse.make
+Support MinGW-w64 cross compiler.
+
+20160118T0304Z <address@hidden> [455]
+
+  install_wx.make
+  install_wxpdfdoc.make
+  msw_cygwin.make
+Use MinGW-w64 cross compiler.
+

Modified: lmi/trunk/install_wx.make
===================================================================
--- lmi/trunk/install_wx.make   2016-01-18 01:52:52 UTC (rev 6472)
+++ lmi/trunk/install_wx.make   2016-01-18 03:04:21 UTC (rev 6473)
@@ -27,7 +27,8 @@
 
 wx_version    := 3.0.0
 
-mingw_dir     := /MinGW_
+# mingw_dir     := /MinGW_
+mingw_dir     := /usr
 
 prefix        := /opt/lmi/local
 
@@ -79,25 +80,28 @@
 
 # Variables that normally should be left alone 
#################################
 
-mingw_bin_dir := $(mingw_dir)/bin
+mingw_bin_dir  := $(mingw_dir)/bin
 
-compiler      := gcc-$(shell $(mingw_bin_dir)/gcc -dumpversion)
-vendor        := $(subst .,,$(compiler))-$(wx_md5)
+triplet_prefix := i686-w64-mingw32-
 
-build_dir     := $(wx_dir)/wxWidgets-$(wx_version)/$(vendor)
+compiler       := gcc-$(shell $(mingw_bin_dir)/$(triplet_prefix)gcc 
-dumpversion)
+vendor         := $(subst .,,$(compiler))-$(wx_md5)
 
+build_dir      := $(wx_dir)/wxWidgets-$(wx_version)/$(vendor)
+
 # Configuration reference:
 #   http://lists.nongnu.org/archive/html/lmi/2007-11/msg00001.html
 #
 # Pass gcc options in $CC and $CXX, not $*FLAGS--explanation here:
 #   http://lists.nongnu.org/archive/html/lmi/2013-07/msg00001.html
 
-ggc_flags := --param ggc-min-expand=25 --param ggc-min-heapsize=32768
+wx_cc_flags    :=
+wx_cxx_flags   := -std=c++11
 
 config_options = \
   --prefix=$(prefix) \
   --build=i686-pc-cygwin \
-  --host=i686-pc-mingw32 \
+  --host=i686-w64-mingw32 \
   --disable-apple_ieee \
   --disable-aui \
   --disable-compat24 \
@@ -119,18 +123,18 @@
   --without-libtiff \
   --without-opengl \
   --without-subdirs \
-       AR='$(mingw_bin_dir)/ar' \
-       AS='$(mingw_bin_dir)/as' \
-       CC='$(mingw_bin_dir)/gcc $(ggc_flags)' \
-      CPP='$(mingw_bin_dir)/cpp' \
-      CXX='$(mingw_bin_dir)/g++ $(ggc_flags)' \
-  DLLTOOL='$(mingw_bin_dir)/dlltool' \
-       LD='$(mingw_bin_dir)/ld' \
-       NM='$(mingw_bin_dir)/nm' \
-  OBJDUMP='$(mingw_bin_dir)/objdump' \
-   RANLIB='$(mingw_bin_dir)/ranlib' \
-    STRIP='$(mingw_bin_dir)/strip' \
-  WINDRES='$(mingw_bin_dir)/windres' \
+       AR='$(mingw_bin_dir)/$(triplet_prefix)ar' \
+       AS='$(mingw_bin_dir)/$(triplet_prefix)as' \
+       CC='$(mingw_bin_dir)/$(triplet_prefix)gcc $(wx_cc_flags)' \
+      CPP='$(mingw_bin_dir)/$(triplet_prefix)cpp' \
+      CXX='$(mingw_bin_dir)/$(triplet_prefix)g++ $(wx_cxx_flags)' \
+  DLLTOOL='$(mingw_bin_dir)/$(triplet_prefix)dlltool' \
+       LD='$(mingw_bin_dir)/$(triplet_prefix)ld' \
+       NM='$(mingw_bin_dir)/$(triplet_prefix)nm' \
+  OBJDUMP='$(mingw_bin_dir)/$(triplet_prefix)objdump' \
+   RANLIB='$(mingw_bin_dir)/$(triplet_prefix)ranlib' \
+    STRIP='$(mingw_bin_dir)/$(triplet_prefix)strip' \
+  WINDRES='$(mingw_bin_dir)/$(triplet_prefix)windres' \
 
 # Utilities 
####################################################################
 

Modified: lmi/trunk/install_wxpdfdoc.make
===================================================================
--- lmi/trunk/install_wxpdfdoc.make     2016-01-18 01:52:52 UTC (rev 6472)
+++ lmi/trunk/install_wxpdfdoc.make     2016-01-18 03:04:21 UTC (rev 6473)
@@ -25,7 +25,8 @@
 
 # Configurable settings 
########################################################
 
-mingw_dir     := /MinGW_
+# mingw_dir     := /MinGW_
+mingw_dir     := /usr
 
 prefix        := /opt/lmi/local
 
@@ -49,28 +50,33 @@
 
 # Variables that normally should be left alone 
#################################
 
-mingw_bin_dir := $(mingw_dir)/bin
+mingw_bin_dir  := $(mingw_dir)/bin
 
-compiler      := gcc-$(shell $(mingw_bin_dir)/gcc -dumpversion)
+triplet_prefix := i686-w64-mingw32-
 
+compiler       := gcc-$(shell $(mingw_bin_dir)/$(triplet_prefix)gcc 
-dumpversion)
+
+wx_cc_flags    :=
+wx_cxx_flags   := -std=c++11
+
 config_options = \
   --prefix=$(prefix) \
   --build=i686-pc-cygwin \
-  --host=i686-pc-mingw32 \
+  --host=i686-w64-mingw32 \
   --disable-dependency-tracking \
   --with-wx-config=$(prefix)/bin/wx-config-portable \
-       AR='$(mingw_bin_dir)/ar' \
-       AS='$(mingw_bin_dir)/as' \
-       CC='$(mingw_bin_dir)/gcc' \
-      CPP='$(mingw_bin_dir)/cpp' \
-      CXX='$(mingw_bin_dir)/g++' \
-  DLLTOOL='$(mingw_bin_dir)/dlltool' \
-       LD='$(mingw_bin_dir)/ld' \
-       NM='$(mingw_bin_dir)/nm' \
-  OBJDUMP='$(mingw_bin_dir)/objdump' \
-   RANLIB='$(mingw_bin_dir)/ranlib' \
-    STRIP='$(mingw_bin_dir)/strip' \
-  WINDRES='$(mingw_bin_dir)/windres' \
+       AR='$(mingw_bin_dir)/$(triplet_prefix)ar' \
+       AS='$(mingw_bin_dir)/$(triplet_prefix)as' \
+       CC='$(mingw_bin_dir)/$(triplet_prefix)gcc $(wx_cc_flags)' \
+      CPP='$(mingw_bin_dir)/$(triplet_prefix)cpp' \
+      CXX='$(mingw_bin_dir)/$(triplet_prefix)g++ $(wx_cxx_flags)' \
+  DLLTOOL='$(mingw_bin_dir)/$(triplet_prefix)dlltool' \
+       LD='$(mingw_bin_dir)/$(triplet_prefix)ld' \
+       NM='$(mingw_bin_dir)/$(triplet_prefix)nm' \
+  OBJDUMP='$(mingw_bin_dir)/$(triplet_prefix)objdump' \
+   RANLIB='$(mingw_bin_dir)/$(triplet_prefix)ranlib' \
+    STRIP='$(mingw_bin_dir)/$(triplet_prefix)strip' \
+  WINDRES='$(mingw_bin_dir)/$(triplet_prefix)windres' \
 
 # Utilities 
####################################################################
 

Modified: lmi/trunk/msw_cygwin.make
===================================================================
--- lmi/trunk/msw_cygwin.make   2016-01-18 01:52:52 UTC (rev 6472)
+++ lmi/trunk/msw_cygwin.make   2016-01-18 03:04:21 UTC (rev 6473)
@@ -1,4 +1,4 @@
-# Platform specifics: msw using cygwin.
+# Platform specifics: msw (cygwin) with MinGW-w64 toolchain.
 #
 # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 
2015, 2016 Gregory W. Chicares.
 #
@@ -28,7 +28,7 @@
 cygdrive_diagnostic := \
   Current working directory '$(CURDIR)' contains '/cygdrive/'. \
   This is likely to cause problems with native tools such as the \
-  MinGW compiler. Build from an identity-mount directory instead
+  MinGW-w64 compiler. Build from an identity-mount directory instead
 
 ifeq (/cygdrive/,$(findstring /cygdrive/,$(CURDIR)))
   $(error $(cygdrive_diagnostic))
@@ -44,10 +44,13 @@
 
 
################################################################################
 
-# Use cygwin as a quasi-cross-compiler for an i686-pc-mingw32 target.
-
+# Use cygwin as a quasi-cross-compiler for an i686-pc-mingw32 target
+# (no longer supported):
 # cross_compile_flags := -mno-cygwin
 
+# Untested:
+# cross_compile_flags := --build=i686-pc-cygwin --host=i686-w64-mingw32
+
 
################################################################################
 
 # These makefiles are designed to be independent of $PATH: they work
@@ -64,7 +67,8 @@
 
 ifeq (,$(USE_STD_PATHS))
   PATH_BIN     := /bin/
-  PATH_GCC     := /MinGW_/bin/
+#  PATH_GCC     := /MinGW_/bin/
+  PATH_GCC     := /usr/bin/
   PATH_USR_BIN := /usr/bin/
 endif
 
@@ -72,13 +76,26 @@
 
 # Compiler, linker, and so on.
 
-AR      := $(PATH_GCC)ar
-CC      := $(PATH_GCC)gcc $(cross_compile_flags)
-CPP     := $(PATH_GCC)cpp $(cross_compile_flags)
-CXX     := $(PATH_GCC)g++ $(cross_compile_flags)
-LD      := $(PATH_GCC)g++ $(cross_compile_flags)
-RC      := $(PATH_GCC)windres
+triplet_prefix := i686-w64-mingw32-
 
+AR      := $(PATH_GCC)$(triplet_prefix)ar
+CC      := $(PATH_GCC)$(triplet_prefix)gcc $(cross_compile_flags)
+CPP     := $(PATH_GCC)$(triplet_prefix)cpp $(cross_compile_flags)
+CXX     := $(PATH_GCC)$(triplet_prefix)g++ $(cross_compile_flags)
+LD      := $(PATH_GCC)$(triplet_prefix)g++ $(cross_compile_flags)
+RC      := $(PATH_GCC)$(triplet_prefix)windres
+
+# Identify run-time libraries for redistribution. See:
+#   https://cygwin.com/ml/cygwin/2010-09/msg00553.html
+# Of course manipulating an lmi user's $PATH is out of the question.
+
+compiler_triplet := $(patsubst %-,%,$(triplet_prefix))
+compiler_sysroot := /usr/$(triplet)/sys-root/mingw/bin
+
+compiler_runtime_files := \
+  $(compiler_sysroot)/libstdc++-6.dll \
+  $(compiler_sysroot)/libgcc_s_sjlj-1.dll \
+
 
################################################################################
 
 # Standard utilities.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]