Hi

I noticed that our next exchanges did not make it to the list because
of the bad handling of lists reply-to by gmail (Harald Welte explained
to me that it's a desirable feature, but I always forget to
reply-to-all :-) )

Let's fix it.

====================================================================

here are new steps to build mingw32ce for windows from debian.

get code

cd $HOME
mkdir cegcc
cd cegcc
svn co https://cegcc.svn.sourceforge.net/svnroot/cegcc/trunk cegcc-src
wget ftp://ftp.gmplib.org/pub/gmp-4.3.1/gmp-4.3.1.tar.gz
wget http://www.mpfr.org/mpfr-2.4.1/mpfr-2.4.1.tar.gz
tar zxvf gmp-4.3.1.tar.gz
tar zxvf mpfr-2.4.1.tar.gz

patch code

Here is what you must change in the mingw32ce build script
Basically this deals with passing the proper gmp/mpfr options to the
gcc configure script. This might be achievable by other means, e.g.
environment.

svn diff:

---8<---
Index: build-mingw32ce.sh
===================================================================
--- build-mingw32ce.sh  (revision 1449)
+++ build-mingw32ce.sh  (working copy)
@@ -49,12 +49,17 @@
  --components=LIST       specify which components to build
                          valid components are: ${COMPONENTS_COMMA_LIST}
                         [all]
+  --gmp=DIR               path to GMP library
+  --mpfr=DIR              path to MPFR library

 Report bugs to <cegcc-devel@lists.sourceforge.net>.
 _ACEOF

 }

+lib_gmp=
+lib_mpfr=
+
 ac_prev=
 for ac_option
 do
@@ -97,6 +102,12 @@
      | --co=* | --c=*)
    components=$ac_optarg ;;

+  --gmp=*)
+    lib_gmp=$ac_optarg ;;
+
+  --mpfr=*)
+    lib_mpfr=$ac_optarg ;;
+
  --host)
    ac_prev=host ;;
  --host=*)
@@ -179,6 +190,16 @@
       exit 1
 fi

+#compute the options for gmp and mpfr
+
+GCCDEPS=
+if [ "x${lib_gmp}" != "x" ]; then
+    GCCDEPS="--with-gmp=${lib_gmp}"
+fi
+if [ "x${lib_gmp}" != "x" ]; then
+    GCCDEPS="${GCCDEPS} --with-mpfr=${lib_mpfr}"
+fi
+
 build_binutils()
 {
    echo ""
@@ -209,6 +230,7 @@
       --with-gcc                     \
       --with-gnu-ld                  \
       --with-gnu-as                  \
+       ${GCCDEPS} \
       --target=${TARGET}             \
       --build=${BUILD}               \
       --host=${HOST}                 \
@@ -314,6 +336,7 @@
            --target=${TARGET}             \
            --host=${HOST}                 \
            --prefix=${PREFIX}             \
+       ${GCCDEPS} \
            --enable-threads=win32         \
            --disable-nls                  \
            --enable-languages=c,c++       \
@@ -333,6 +356,7 @@
            --target=${TARGET}             \
            --host=${HOST}                 \
            --prefix=${PREFIX}             \
+       ${GCCDEPS} \
            --enable-threads=win32         \
            --disable-nls                  \
            --enable-languages=c,c++       \
---8<---

now we're ready to go.

First step is to build a linux mingw32ce, to allow building the target
libs (build=host=linux, target=arm-wince-pe)

we need some dependencies - you may have them in apt-get, I recompiled
to get the same versions as what the final compiler has

mkdir depends-linux
mkdir gmp-linux
cd gmp-linux
../gmp-4.3.1/configure --prefix=`cd ../depends-linux; pwd`
make
make install
cd ..

mkdir mpfr-linux
cd mpfr-linux
../mpfr-2.4.1/configure --prefix=`cd ../depends-linux; pwd`
--with-gmp=`cd ../depends-linux; pwd`
make
make install
cd ..

build the compiler and install e.g. to /opt/mingw32ce
(target=arm-wince-pe, build=host=linux)
This will NOT WORK if you do not set gcc_src=gcc, I don't know what's
the problem with gcc 4.4 (you can try, though)

mkdir build-linux
cd build-linux
sudo gcc_src=gcc
../cegcc-src/cegcc/src/scripts/build/build-minw32ce.sh
--prefix=/opt/mingw32ce --gmp=`cd ../depends-linux;pwd` --mpfr=`cd
../depends-linux;pwd`
cd ..

Second step is to cross build the win32 compiler

install mingw for linux -- or build it, if you prefer...
sudo apt-get install mingw32

the compiler prefix is i586-mingw32msvc-

crossbuild dependencies for windows host (build is linux, host is
windows, target has no sense (same as host))

mkdir depends-win
mkdir gmp-win
cd gmp-win
../gmp-4.3.1/configure --host=i586-mingw32msvc --prefix=`cd ../depends-win; pwd`
make
make install
cd ..

mkdir mpfr-win
cd mpfr-win
../mpfr-2.4.1/configure --host=i586-mingw32msvc  --prefix=`cd
../depends-win; pwd` --with-gmp=`cd ../depends-win; pwd`
make
make install
cd ..

build cegcc for windows: build=linux, host=windows, target=arm-wince-pe
the linux version of the compiler needs to be in the path to build the
target libs!
Do not forget to update PATH or the build will fail, of course.

mkdir INSTALL
mkdir build-win
cd build-win
PATH=/opt/mingw32ce/bin:$PATH
export PATH
gcc_src=gcc ../cegcc-src/cegcc/src/scripts/build-mingw32ce.sh
--prefix=`cd ../INSTALL;pwd` --host=i586-mingw32msvc --gmp=`cd
../depends-win;pwd` --mpfr=`cd ../depends-win;pwd`
make
make install

And here you have a nice arm-wince-pe toolchain for mingw!

I'd like some feedback on this process. That's why I'm not posting
binaries yet. I want someone else to test that, to check wether that's
ok or not.

Sebastien

------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to