mingw-cross-env-list
[Top][All Lists]
Advanced

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

Re: [Mingw-cross-env-list] Merging MXE Octave - first steps (was What ge


From: Tony Theodore
Subject: Re: [Mingw-cross-env-list] Merging MXE Octave - first steps (was What gets compiled into DLL by libtool (licencing issues))
Date: Thu, 27 Feb 2014 14:34:10 +1100

On 27 Feb 2014, at 06:20, John W. Eaton <address@hidden> wrote:

> On 02/26/2014 01:01 AM, Tony Theodore wrote:
>> 
>> On 26 Feb 2014, at 04:57, John W. Eaton <address@hidden> wrote:
>> 
>>> Also, mxe-octave is now using mingw-w64 for both 32- and 64-bit
>>> systems so we aren't downloading binary bits for the mingw runtime
>>> libraries.  Are you also headed in that direction?
>> 
>> No, we plan to support mingw.org for the foreseeable future, we’ll have the 
>> new v4 soon and may keep the v3 around if people need it. I hear anecdotes 
>> that some projects are no longer supporting mingw.org and if that turns out 
>> to be true, then we can selectively disable the target. If you only set the 
>> *-w64-* targets, it shouldn’t download the mingw.org packages so this 
>> shouldn’t have any impact on people using a single toolchain.
> 
> I'm not sure I understand.  Looking at gcc.mk in MXE, it appears that the 
> only 32-bit option is mingw.org and downloading mingwrt libraries in binary 
> form.  Is that correct?  If so, would you consider an option that allows 
> building the 32-bit compiler from the mingw-w64 project sources?  Or is that 
> already possible by using the right target for Make?

I thought I’d elaborate a little. The gcc builds rules are structured around 
common snippets and substitutions:

define $(PKG)_BUILD_mingw-w64
    # build standalone gcc
    $($(PKG)_CONFIGURE)
    ...
    # build mingw-w64-crt
    ...
    @gcc-crt-config-opts@
    …
    $($(PKG)_POST_BUILD)
endef

$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst 
@gcc-crt-config-opts@,--disable-lib32,$($(PKG)_BUILD_mingw-w64))
$(PKG)_BUILD_i686-w64-mingw32   = $(subst 
@gcc-crt-config-opts@,--disable-lib64,$($(PKG)_BUILD_mingw-w64))

The above is standard make, but there’s a new package rule lookup that searches 
for rules in this order:

$(PKG)_BUILD_i686-w64-mingw32.shared.var1.var2
$(PKG)_BUILD_i686-w64-mingw32.shared.var1
$(PKG)_BUILD_i686-w64-mingw32.shared
$(PKG)_BUILD_i686-w64-mingw32
$(PKG)_BUILD
$(PKG)_BUILD_SHARED

and also does the same for _DEPS, so we have more flexibility around attaching 
meaning/profiles to var1, var2 etc and can fall back to common rules. We’d use 
the same mechanism to build the mingw.org crt [1] or add glibc in the future.

Cheers,

Tony

[1] 
https://github.com/tonytheodore/mxe/blob/bf804bf15e246aa30809b214b5d051c3f90645e8/src/gcc.mk




reply via email to

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