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:
Yann E. MORIN" 2010-07-11 21:36:55 +02:00 committed by Bart vdr Meulen
parent b81d232a9b
commit d54963f0e3
4 changed files with 345 additions and 1 deletions

76
config/libc/mingw.in.2 Normal file
View 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

View 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

View 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

View File

@ -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
}