[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [6473] Use MinGW-w64 cross compiler,
Greg Chicares <=