1
votes

Have some problem with cross-compile of Microwindows. Here are my steps: 0. Download cross-compile toolchain


    wget http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
    sudo mkdir –p /opt/toolchain
    sudo cp arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /opt/toolchain
    cd /opt/toolchain
    sudo tar –jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
    export PATH=/opt/toolchain/arm-2009q3/bin:$PATH

  1. Download last version (v. 0.92) of Microwindows
   

    cd ~
    wget ftp://microwindows.censoft.com/pub/microwindows/microwindows-full-0.92.tar.gz
        tar xvf microwindows-full-0.92.tar.gz

  1. Pre-configuration: install next packages:
   

    sudo apt-get install libjpeg-dev libpng-dev python-dev libfreetype6-dev

  1. Edit config file for ARM architecture

    cd microwindows-0.92/src
    nano config 

And edited next lines:

ARCH                     = LINUX-ARM
ARMTOOLSPREFIX           = arm-none-linux-gnueabi-  
INCJPEG                  = /usr/include/
INCPNG                   = /usr/include/
INCZ                     = /usr/include/
INCTIFF                  = /usr/include/
LIBFT2LIB                = /usr/lib/libfreetype.a
  1. Run make

After then I have next messages:


    cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
    cc1: warning: include location "/usr/include/freetype2" is unsafe for cross-compilation
    In file included from /home/user/microwindows-0.92/src/include/windows.h:19,
                     from /home/user/microwindows-0.92/src/mwin/winmain.c:44:
    /home/user/microwindows-0.92/src/include/windef.h:131: warning: function declaration isn't a prototype
    /home/user/microwindows-0.92/src/include/windef.h:132: warning: function declaration isn't a prototype
    /home/user/microwindows-0.92/src/include/windef.h:133: warning: function declaration isn't a prototype
    /home/user/microwindows-0.92/src/mwin/winmain.c: In function 'MwSelect':
    /home/user/microwindows-0.92/src/mwin/winmain.c:356: error: impossible constraint in 'asm'
    /home/user/microwindows-0.92/src/mwin/winmain.c:357: error: impossible constraint in 'asm'
    /home/user/microwindows-0.92/src/mwin/winmain.c:358: error: impossible constraint in 'asm'
    make[1]: *** [/home/user/microwindows-0.92/src/obj/mwin/winmain.o] Error 1
    make: *** [subdir-/home/user/microwindows-0.92/src/mwin] Error 2

What's wrang? And how I can fix it?

1
You are specifying your host's (i.e. local not target's) environment for include directories. Have you previously cross-compiled anything else (e.g. hello_world.c) with your toolchain? Consider using a development environment like Buildroot or Openembedded.sawdust
Yes, hello world and some other sources with my toolchain are compiled successfuly. Thanks.Sergiy Baitala

1 Answers

0
votes

First you need source-code of all dependency library and CROSS-COMPILE libjpeg-dev libpng-dev python-dev libfreetype6-dev and other dependency libraries.

Then while compiling microwindow, path of include and library must be updated in Makefile where your cross-compiled libraries present.