[patch 04/10] Add mingw target libraries

Remy Bohmer linux@bohmer.net
Tue Jun 1 10:39:00 GMT 2010


Hi Yann,

Thanks for the comments below. Reworking them will takes a couple of
days... So, please be patient ;-)

Remy

2010/5/30 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>:
> Remy, All,
>
> On Thursday 27 May 2010 23:18:13 Remy Bohmer wrote:
>> Add several development libraries to the build of the mingw cross-compiler
>> to be used on target
>
> I'm wondering if those should go into the companion libraries sub-menu...
>
>> Libraries:
>> PDCurses (port of the ncurses library)
>
> This one seems like it is used to replace ncurses to build gdb.
> I guess we should move ncurses to the companion libraries, it
> would make it easier to handle ncurses vs. PDcurses...
>
> And, by the way, PDcurses is not a *port* of ncurses. It is a
> re-impementation. PDcurses is in the public domain, while ncurses
> uses a MIT-like license.
>
>> GnuRX (the regex library)
>> DirectX
>> OpenGL
>
> Seriously, moving those to the "compamnion libraries" sub-menu
> would be nice:
> - it makes sense as they are not part of the 'core' toolchain
> - one of them is actually used by a target component (gdb)
>
> And would make me happy about not including non-system libs in crosstool-NG.
> Let's support it when stand-alone, yes. But when acting as a backend (which
> is now almost completely implemented), it will be the responsibility of the
> upper-layer build system to install those libs.
>
>> Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
>> ---
>>  config/libc/mingw.in                                    |   72 +++++++++++
>>  patches/PDCurses/3.4/mingw32_cross_compile.patch        |   87 +++++++++++++
>>  patches/mingw-libgnurx/2.5.1/build-static-library.patch |  103 ++++++++++++++++
>
> Patches should be indexed with a three-digit prefix, starting at 100:
>  patches/PDCurses/3.4/100-mingw32_cross_compile.patch
>  patches/mingw-libgnurx/2.5.1/100-d-static-library.patch
>
> It makes it easy to ensure a strict ordering in all locales, should new
> patches be later added.
>
>> Index: crosstool-ng/config/libc/mingw.in
>> ===================================================================
>> --- crosstool-ng.orig/config/libc/mingw.in
>> +++ crosstool-ng/config/libc/mingw.in
> [--SNIP--]
>> +config MINGW_PDCURSES
>> +    bool
>> +    prompt "Include PDCurses (NCurses library) development files"
>> +    default n
>> +
>> +choice
>> +    bool
>> +    prompt "PDCurses library version"
>
> I gues we don't want to show the PDcurses version choice if the user does
> not select PDcurses, above...
>
> [--SNIP--]
>> +config MINGW_GNURX
>> +    bool
>> +    prompt "Include GnuRX (regex library) development files"
>> +    default n
>> +
>> +choice
>> +    bool
>> +    prompt "GnuRX library version"
>
> Ditto for GnuRX: not selected -> don't show version choice.
>
>> Index: crosstool-ng/patches/PDCurses/3.4/mingw32_cross_compile.patch
>> ===================================================================
>> --- /dev/null
>> +++ crosstool-ng/patches/PDCurses/3.4/mingw32_cross_compile.patch
>> @@ -0,0 +1,87 @@
>> +--- PDCurses-3.4.orig/win32/mingwin32.mak    2009-11-02 13:50:11.000000000 +0100
>> ++++ PDCurses-3.4/win32/mingwin32.mak 2009-11-02 13:53:43.000000000 +0100
>> +@@ -18,7 +18,7 @@
>> +
>> + PDCURSES_WIN_H      = $(osdir)/pdcwin.h
>> +
>> +-CC          = gcc
>> ++CC          = ${CROSS_COMPILE}gcc
>> +
>> + ifeq ($(DEBUG),Y)
>> +     CFLAGS  = -g -Wall -DPDCDEBUG
>> +@@ -30,8 +30,8 @@
>> +
>> + CFLAGS += -I$(PDCURSES_SRCDIR)
>> +
>> +-BASEDEF             = $(PDCURSES_SRCDIR)\exp-base.def
>> +-WIDEDEF             = $(PDCURSES_SRCDIR)\exp-wide.def
>> ++BASEDEF             = $(PDCURSES_SRCDIR)/exp-base.def
>> ++WIDEDEF             = $(PDCURSES_SRCDIR)/exp-wide.def
>
> Altough I personally don't care, I think this will break if we use
> crosstool-NG in a mingw32 environment, as mingw32 uses '\' as the
> directory 'spliting' char. Or I'm wrong, and need to be educated! ;-)
>
>> + DEFDEPS             = $(BASEDEF)
>> +
>> +@@ -46,17 +46,17 @@
>> +
>> + DEFFILE             = pdcurses.def
>> +
>> +-LINK                = gcc
>> ++LINK                = ${CROSS_COMPILE}gcc
>> +
>> + ifeq ($(DLL),Y)
>> +     CFLAGS += -DPDC_DLL_BUILD
>> +-    LIBEXE = gcc $(DEFFILE)
>> ++    LIBEXE = ${CROSS_COMPILE}gcc $(DEFFILE)
>> +     LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o
>> +     LIBCURSES = pdcurses.dll
>> +     LIBDEPS = $(LIBOBJS) $(PDCOBJS) $(DEFFILE)
>> +     CLEAN = $(LIBCURSES) *.a $(DEFFILE)
>> + else
>> +-    LIBEXE = ar
>> ++    LIBEXE = ${CROSS_COMPILE}ar
>> +     LIBFLAGS = rcv
>> +     LIBCURSES = pdcurses.a
>> +     LIBDEPS = $(LIBOBJS) $(PDCOBJS)
>> +@@ -70,24 +70,24 @@
>> + libs:       $(LIBCURSES)
>> +
>> + clean:
>> +-    -del *.o
>> +-    -del *.exe
>> +-    -del $(CLEAN)
>> ++    -rm *.o
>> ++    -rm *.exe
>> ++    -rm $(CLEAN)
>
> Again, that would break on mingw32, right?
> What about using smthg like:
>
> ifeq ($(blabla),mingw32)
> RM:=del
> CAT:=type
> CP:=copy
> else
> RM:=rm
> CAT:=cat
> CP:=cp
> endif
>
> clean:
>    -$(RM) blabla
>    and so on...
>
>> + demos:      $(DEMOS)
>> +-    strip *.exe
>> ++    ${CROSS_COMPILE}strip *.exe
>> +
>> + $(DEFFILE): $(DEFDEPS)
>> +     echo LIBRARY pdcurses > $@
>> +     echo EXPORTS >> $@
>> +-    type $(BASEDEF) >> $@
>> ++    cat $(BASEDEF) >> $@
>
> Ditto?
> Use:
>    $(CAT) blabla...
>
>> + ifeq ($(WIDE),Y)
>> +-    type $(WIDEDEF) >> $@
>> ++    cat $(WIDEDEF) >> $@
>
> Ditto?
>
>> + endif
>> +
>> + $(LIBCURSES) : $(LIBDEPS)
>> +     $(LIBEXE) $(LIBFLAGS) $@ $?
>> +-    -copy pdcurses.a panel.a
>> ++    -cp pdcurses.a panel.a
>
> Ditto?
> Use:
>    $(CP) blabla...
>
> Regards,
> Yann E. MORIN.
>
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
>
>
>

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list