mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-20 17:12:55 +00:00
kernel/mingw: add target libraries
Add several development libraries to the build of the mingw cross-compiler to be used on target Libraries: PDCurses (port of the ncurses library) GnuRX (the regex library) DirectX OpenGL Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com> [yann.morin.1998@anciens.enib.fr: don't show DX and RX versions if disabled] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
parent
b81d232a9b
commit
d54963f0e3
76
config/libc/mingw.in.2
Normal file
76
config/libc/mingw.in.2
Normal file
@ -0,0 +1,76 @@
|
||||
# Part-2 of mingw C library options: development libraries
|
||||
|
||||
config MINGW_DIRECTX
|
||||
bool
|
||||
prompt "Include DirectX development files"
|
||||
default n
|
||||
|
||||
config MINGW_OPENGL
|
||||
bool
|
||||
prompt "Include OpenGL development files"
|
||||
default n
|
||||
|
||||
config MINGW_PDCURSES
|
||||
bool
|
||||
prompt "Include PDCurses (NCurses library) development files"
|
||||
default n
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "PDCurses library version"
|
||||
depends on MINGW_PDCURSES
|
||||
|
||||
config MINGW_PDCURSES_V_3_4
|
||||
bool
|
||||
prompt "3.4"
|
||||
|
||||
# CT_INSERT_VERSION_ABOVE
|
||||
# Don't remove above line!
|
||||
|
||||
config MINGW_PDCURSES_V_select
|
||||
bool
|
||||
prompt "Other version"
|
||||
|
||||
endchoice
|
||||
|
||||
config MINGW_PDCURSES_VERSION
|
||||
string
|
||||
prompt "PDCurses library version" if MINGW_PDCURSES_V_select
|
||||
default "3.4" if MINGW_PDCURSES_V_3_4
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
# Don't remove above line!
|
||||
help
|
||||
Enter the version number of the PDCurses library to use
|
||||
|
||||
config MINGW_GNURX
|
||||
bool
|
||||
prompt "Include GnuRX (regex library) development files"
|
||||
default n
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "GnuRX library version"
|
||||
depends on MINGW_GNURX
|
||||
|
||||
config MINGW_GNURX_V_2_5_1
|
||||
bool
|
||||
prompt "2.5.1"
|
||||
|
||||
# CT_INSERT_VERSION_ABOVE
|
||||
# Don't remove above line!
|
||||
|
||||
config MINGW_GNURX_V_select
|
||||
bool
|
||||
prompt "Other version"
|
||||
|
||||
endchoice
|
||||
|
||||
config MINGW_GNURX_VERSION
|
||||
string
|
||||
prompt "GnuRX library version" if MINGW_GNURX_V_select
|
||||
default "2.5.1" if MINGW_GNURX_V_2_5_1
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
# Don't remove above line!
|
||||
help
|
||||
Enter the version number of the Regex library to use
|
||||
|
87
patches/PDCurses/3.4/mingw32_cross_compile.patch
Normal file
87
patches/PDCurses/3.4/mingw32_cross_compile.patch
Normal file
@ -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
|
||||
|
||||
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)
|
||||
|
||||
demos: $(DEMOS)
|
||||
- strip *.exe
|
||||
+ $(CROSS_COMPILE)strip *.exe
|
||||
|
||||
$(DEFFILE): $(DEFDEPS)
|
||||
echo LIBRARY pdcurses > $@
|
||||
echo EXPORTS >> $@
|
||||
- type $(BASEDEF) >> $@
|
||||
+ cat $(BASEDEF) >> $@
|
||||
ifeq ($(WIDE),Y)
|
||||
- type $(WIDEDEF) >> $@
|
||||
+ cat $(WIDEDEF) >> $@
|
||||
endif
|
||||
|
||||
$(LIBCURSES) : $(LIBDEPS)
|
||||
$(LIBEXE) $(LIBFLAGS) $@ $?
|
||||
- -copy pdcurses.a panel.a
|
||||
+ -cp pdcurses.a panel.a
|
||||
|
||||
$(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS)
|
||||
$(PDCOBJS) : $(PDCURSES_WIN_H)
|
||||
--- PDCurses-3.4.orig/curses.h 2009-11-03 14:12:18.000000000 +0100
|
||||
+++ PDCurses-3.4./curses.h 2009-11-03 14:14:09.000000000 +0100
|
||||
@@ -82,7 +82,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#ifndef __bool_true_false_are_defined
|
||||
typedef unsigned char bool; /* PDCurses Boolean type */
|
||||
+#endif
|
||||
|
||||
#ifdef CHTYPE_LONG
|
||||
# if _LP64
|
103
patches/mingw-libgnurx/2.5.1/build-static-library.patch
Normal file
103
patches/mingw-libgnurx/2.5.1/build-static-library.patch
Normal file
@ -0,0 +1,103 @@
|
||||
--- mingw-libgnurx-2.5.1.orig/configure 2009-11-03 08:19:15.000000000 +0100
|
||||
+++ mingw-libgnurx-2.5.1/configure 2009-11-03 08:31:37.000000000 +0100
|
||||
@@ -273,7 +273,7 @@
|
||||
PACKAGE_STRING='MinGW libgnurx 2.5.1'
|
||||
PACKAGE_BUGREPORT='https://sourceforge.net/tracker/?group_id=2435&atid=102435'
|
||||
|
||||
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CC_QUALIFIED DLLVERSION ZIPCMD ZIPEXT MSVCLIB ac_ct_MSVCLIB GNURX_LIB install_dev LIBOBJS LTLIBOBJS'
|
||||
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CC_QUALIFIED AR DLLVERSION ZIPCMD ZIPEXT MSVCLIB ac_ct_MSVCLIB GNURX_LIB install_dev LIBOBJS LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@@ -2190,21 +2190,54 @@
|
||||
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
-ac_ext=c
|
||||
-ac_cpp='$CPP $CPPFLAGS'
|
||||
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
- ac_ext=c
|
||||
+
|
||||
+for ac_prog in ar; do
|
||||
+set dummy ${ac_tool_prefix}$ac_prog; ac_word=$2
|
||||
+echo "$as_me:$LINENO: checking for $ac_word" >&5
|
||||
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
|
||||
+if test "${ac_cv_prog_AR+set}" = set; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+ if test -n "$AR"; then
|
||||
+ ac_cv_prog_AR="$AR" # Let the user override the test.
|
||||
+else
|
||||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
+for as_dir in $PATH
|
||||
+do
|
||||
+ IFS=$as_save_IFS
|
||||
+ test -z "$as_dir" && as_dir=.
|
||||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
|
||||
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
+ break 2
|
||||
+ fi
|
||||
+done
|
||||
+done
|
||||
+
|
||||
+ test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
|
||||
+fi
|
||||
+fi
|
||||
+AR=$ac_cv_prog_AR
|
||||
+if test -n "$AR"; then
|
||||
+ echo "$as_me:$LINENO: result: $AR" >&5
|
||||
+echo "${ECHO_T}$AR" >&6
|
||||
+else
|
||||
+ echo "$as_me:$LINENO: result: no" >&5
|
||||
+echo "${ECHO_T}no" >&6
|
||||
+fi
|
||||
+done
|
||||
+
|
||||
+ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
- popCFLAGS=$CFLAGS
|
||||
- echo 'int main(void){return 0;}' > conftest.$ac_ext
|
||||
- echo "$as_me:$LINENO: checking whether $CC accepts the -mthreads option" >&5
|
||||
+popCFLAGS=$CFLAGS
|
||||
+echo 'int main(void){return 0;}' > conftest.$ac_ext
|
||||
+echo "$as_me:$LINENO: checking whether $CC accepts the -mthreads option" >&5
|
||||
echo $ECHO_N "checking whether $CC accepts the -mthreads option... $ECHO_C" >&6
|
||||
CFLAGS="$popCFLAGS $CC_QUALIFIED -mthreads"
|
||||
if (eval $ac_compile) 2>&5; then
|
||||
@@ -3038,6 +3069,7 @@
|
||||
s,@EXEEXT@,$EXEEXT,;t t
|
||||
s,@OBJEXT@,$OBJEXT,;t t
|
||||
s,@CC_QUALIFIED@,$CC_QUALIFIED,;t t
|
||||
+s,@AR@,$AR,;t t
|
||||
s,@DLLVERSION@,$DLLVERSION,;t t
|
||||
s,@ZIPCMD@,$ZIPCMD,;t t
|
||||
s,@ZIPEXT@,$ZIPEXT,;t t
|
||||
--- mingw-libgnurx-2.5.1.orig/Makefile.in 2009-11-03 08:17:49.000000000 +0100
|
||||
+++ mingw-libgnurx-2.5.1/Makefile.in 2009-11-03 08:57:37.000000000 +0100
|
||||
@@ -39,6 +39,7 @@
|
||||
mandir = @mandir@
|
||||
|
||||
CC = @CC_QUALIFIED@
|
||||
+AR = @AR@
|
||||
CFLAGS = @CFLAGS@ -I ${srcdir}
|
||||
LDFLAGS = @LDFLAGS@
|
||||
|
||||
@@ -67,8 +68,8 @@
|
||||
libgnurx-$(DLLVERSION).dll libgnurx.dll.a: $(OBJECTS)
|
||||
$(CC) $(CFLAGS) -shared -o libgnurx-$(DLLVERSION).dll $(LDFLAGS) $(OBJECTS)
|
||||
|
||||
-libregex.a: libgnurx.dll.a
|
||||
- cp -p libgnurx.dll.a $@
|
||||
+libregex.a: $(OBJECTS)
|
||||
+ $(AR) cru $@ $(OBJECTS)
|
||||
|
||||
gnurx.lib: libgnurx-$(DLLVERSION).dll
|
@ -1,10 +1,36 @@
|
||||
do_libc_get() {
|
||||
CT_GetFile "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" \
|
||||
http://downloads.sourceforge.net/sourceforge/mingw
|
||||
|
||||
if [ -n "${CT_MINGW_DIRECTX}" ]; then
|
||||
CT_GetFile "directx-devel" \
|
||||
http://www.libsdl.org/extras/win32/common
|
||||
fi
|
||||
if [ -n "${CT_MINGW_OPENGL}" ]; then
|
||||
CT_GetFile "opengl-devel" \
|
||||
http://www.libsdl.org/extras/win32/common
|
||||
fi
|
||||
if [ -n "${CT_MINGW_PDCURSES}" ]; then
|
||||
CT_GetFile "PDCurses-${CT_MINGW_PDCURSES_VERSION}" \
|
||||
http://downloads.sourceforge.net/sourceforge/pdcurses
|
||||
fi
|
||||
if [ -n "${CT_MINGW_GNURX}" ]; then
|
||||
CT_GetFile "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src" \
|
||||
http://downloads.sourceforge.net/sourceforge/mingw
|
||||
fi
|
||||
}
|
||||
|
||||
do_libc_extract() {
|
||||
CT_Extract "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src"
|
||||
|
||||
if [ -n "${CT_MINGW_PDCURSES}" ]; then
|
||||
CT_Extract "PDCurses-${CT_MINGW_PDCURSES_VERSION}"
|
||||
CT_Patch "PDCurses" "${CT_MINGW_PDCURSES_VERSION}"
|
||||
fi
|
||||
if [ -n "${CT_MINGW_GNURX}" ]; then
|
||||
CT_Extract "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src"
|
||||
CT_Patch "mingw-libgnurx" "${CT_MINGW_GNURX_VERSION}"
|
||||
fi
|
||||
}
|
||||
|
||||
do_libc_check_config() {
|
||||
@ -69,6 +95,58 @@ do_libc() {
|
||||
}
|
||||
|
||||
do_libc_finish() {
|
||||
:
|
||||
CT_DoStep INFO "Installing MinGW Development libraries"
|
||||
|
||||
CT_Pushd "${CT_SYSROOT_DIR}"
|
||||
if [ -n "${CT_MINGW_DIRECTX}" ]; then
|
||||
CT_DoLog EXTRA "Installing DirectX development package"
|
||||
CT_Extract nochdir "directx-devel"
|
||||
fi
|
||||
if [ -n "${CT_MINGW_OPENGL}" ]; then
|
||||
CT_DoLog EXTRA "Installing OpenGL development package"
|
||||
CT_Extract nochdir "opengl-devel"
|
||||
fi
|
||||
CT_Popd
|
||||
|
||||
if [ -n "${CT_MINGW_PDCURSES}" ]; then
|
||||
CT_DoLog EXTRA "Building PDCurses development files"
|
||||
mkdir -p "${CT_BUILD_DIR}/build-pdcurses"
|
||||
cd "${CT_BUILD_DIR}/build-pdcurses"
|
||||
|
||||
make -f ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/win32/mingwin32.mak libs \
|
||||
PDCURSES_SRCDIR=${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION} \
|
||||
CROSS_COMPILE=${CT_TARGET}-
|
||||
|
||||
CT_DoLog EXTRA "Installing PDCurses development files"
|
||||
chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h
|
||||
cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \
|
||||
${CT_SYSROOT_DIR}/include
|
||||
cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a
|
||||
cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a
|
||||
fi
|
||||
|
||||
if [ -n "${CT_MINGW_GNURX}" ]; then
|
||||
CT_DoLog EXTRA "Configuring GnuRX development files"
|
||||
|
||||
mkdir -p "${CT_BUILD_DIR}/build-gnurx"
|
||||
cd "${CT_BUILD_DIR}/build-gnurx"
|
||||
|
||||
CFLAGS="${CT_CFLAGS_FOR_TARGET}" \
|
||||
CT_DoExecLog ALL \
|
||||
"${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}/configure" \
|
||||
--build=${CT_BUILD} \
|
||||
--host=${CT_TARGET} \
|
||||
--prefix=${CT_SYSROOT_DIR} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
CT_DoLog EXTRA "Building GnuRX development files"
|
||||
CT_DoExecLog ALL make ${PARALLELMFLAGS}
|
||||
|
||||
CT_DoLog EXTRA "Installing GnuRX development files"
|
||||
CT_DoExecLog ALL make install-dev
|
||||
fi
|
||||
|
||||
CT_EndStep
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user