microwin目录:/home/lua/mwinarm arm-linux-gcc 3.4.1
首先把microwindows-fonts-0.90.tar.gz里面的内容全部释放到mwinarm/fonts/下,这里有TRUETYPE字体文件和中文字体。接着交叉编译一些MICROWIN和到的库。
交叉编译jpeg库(可选)
JPEG源码:jpegsrc.v6b.tar.gz
#tar xzvf jpegsrc.v6b.tar.gz
#cd jpeg-6b
#mkdir /home/lua/jpeg
#./configure --prefix=/home/lua/jpeg --exec-prefix=/home/lua/jpeg --enable-shared --enable-static
修改生成的Makefile
#The name of your C compiler:
CC= gcc 改成 CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
#library (.a) file creation command
AR= ar rc 改成 AR= /usr/local/arm/3.4.1/arm-linux/bin/ar rc
#second step in .a creation (use "touch" if not needed)
AR2= ranlib 改成 AR2= /usr/local/arm/3.4.1/arm-linux/bin/ranlib
编译,安装
#make
#make install
交叉编译freetype库
freetype源码:freetype-1.3.1.tar.gz
#tar xzvf freetype-1.3.1.tar.gz
#mkdir /home/lua/freetype
#cd freetype-1.3.1
#./configure --host=arm-linux --prefix=/home/lua/freetype
修改CC为arm-linux-gcc
#vi lib/arch/unix/Makefile
#CC = gcc 改成 arm-linux-gcc
另外如果出现test错误,修改Makefile,不要编译test,这只是XLIB的example
编译,安装
#make
#make install
修改mwinarm/config,编译移植
复制mwinarm/Configs/config.fb到mwinarm下,以这个为蓝本修改config。
#cd mwinarm
#cp Configs/config.fb config
#vi config
CONFIG文件里面就是编译控制选项,里面东西很多,我只挑主要的讲,后面会附一张我的config文件
//体系选择
ARCH = LINUX-ARM
BIGENDIAN = N
//编译选项
OPTIMIZE = Y
DEBUG = N
VERBOSE = N
THREADSAFE = Y
//LCD的BPP
SCREEN_PIXTYPE = MWPF_TRUECOLOR565
//JPEG选项
HAVE_JPEG_SUPPORT = Y
INCJPEG = /home/lua/jpeg/include
LIBJPEG = /home/lua/jpeg/lib/libjpeg.a
//truetype
HAVE_FREETYPE_SUPPORT = Y
INCFTLIB = /home/lua/freetype/include
LIBFTLIB = /home/lua/freetype/lib/libttf.so
FREETYPE_FONT_DIR = "/home/lua/mwinarm/fonts/truetype"
//汉字库
HAVE_HZK_SUPPORT = Y
HZK_FONT_DIR = "/home/lua/mwinarm/fonts/chinese"
//GB2312
HAVE_GB2312_SUPPORT = Y
//FRAMEBUFFER选项
FRAMEBUFFER = Y(这是必须的)
最后MOUSE和KEYBOARD,根据你的实际情况选择。
#make
如果你不出错,可以说你人品太好了。反正我出了一些错,通过网上查找,问广大网友和前辈。
错误修改:
impossible constraint in `asm\",
这个错误是由于FD_ZERO,FD_SET等函数引起的,如果你再深查的话,你会发现其实这几个函数都是宏,最后的定义在include/bits/select.h里面.这个错误是由于包括了错误的头文件,我们应该用ARM-LINUX下面的3.4.1/arm-linux/include/bits/select.h 替换掉/usr/include/bits/select.h
Makefile
##################################################################
ARCH = LINUX-ARM
BIGENDIAN = N
ARMTOOLSPREFIX = arm-linux-
##################################################################
# Compiling options
##################################################################
OPTIMIZE = Y
DEBUG = N
VERBOSE = N
THREADSAFE = Y
####################################################################
# Libraries to build: microwin, nano-X, nanowidget, object frameworks
####################################################################
MICROWIN = Y
NANOX = Y
SHAREDLIBS = N
OBJFRAMEWORK = N
####################################################################
#
# Demos to build
#
####################################################################
MICROWINDEMO = Y
NANOXDEMO = Y
####################################################################
#
# Applications to build
#
####################################################################
NANOWM = Y
####################################################################
#
# The pixeltype of the native hardware or underlying graphics library.
# This definition defines the PIXELVAL to be 32, 16 or 8 bits wide.
# If using Linux framebuffer, set to MWPF_TRUECOLOR0888, and use fbset.
# It also enables GdArea/GrArea for this particular pixel packing format.
#
# define MWPF_PALETTE /* pixel is packed 8 bits 1, 4 or 8 pal index*/
# define MWPF_TRUECOLOR8888 /* pixel is packed 32 bits 8/8/8/8 truecolor w/alpha*/
# define MWPF_TRUECOLOR0888 /* pixel is packed 32 bits 8/8/8 truecolor*/
# define MWPF_TRUECOLOR888 /* pixel is packed 24 bits 8/8/8 truecolor*/
# define MWPF_TRUECOLOR565 /* pixel is packed 16 bits 5/6/5 truecolor*/
# define MWPF_TRUECOLOR555 /* pixel is packed 16 bits 5/5/5 truecolor*/
# define MWPF_TRUECOLOR332 /* pixel is packed 8 bits 3/3/2 truecolor*/
#
####################################################################
SCREEN_PIXTYPE = MWPF_TRUECOLOR565
####################################################################
#
# NanoX: Put Y to the following line to link the nano-X application
# with the server. This is required for ELKS, if no network is present,
# or for speed or debugging. This affects the nano-X server only.
#
####################################################################
LINK_APP_INTO_SERVER = N
####################################################################
# Shared memory support for Nano-X client/server protocol speedup
####################################################################
HAVE_SHAREDMEM_SUPPORT = N
####################################################################
#
# File I/O support
# Supporting either below drags in libc stdio, which may not be wanted
#
####################################################################
HAVE_FILEIO = Y
####################################################################
# BMP, GIF reading support
####################################################################
HAVE_BMP_SUPPORT = Y
HAVE_GIF_SUPPORT = Y
HAVE_PNM_SUPPORT = Y
HAVE_XPM_SUPPORT = Y
####################################################################
# JPEG support through libjpeg, see README.txt in contrib/jpeg
####################################################################
HAVE_JPEG_SUPPORT = Y
INCJPEG = /home/lua/jpeg/include
LIBJPEG = /home/lua/jpeg/lib/libjpeg.a
####################################################################
# PNG support via libpng and libz
####################################################################
HAVE_PNG_SUPPORT = N
INCPNG = /usr/include
LIBPNG = /usr/lib/libpng.a
LIBZ = /usr/lib/libz.a
####################################################################
# TIFF support through libtiff
####################################################################
HAVE_TIFF_SUPPORT = N
INCTIFF = /usr/include
LIBTIFF = /usr/lib/libtiff.a
####################################################################
# native .fnt loadable font support
####################################################################
HAVE_FNT_SUPPORT = Y
HAVE_FNTGZ_SUPPORT = N
FNT_FONT_DIR = "/home/lua/mwinarm/fonts/bdf"
####################################################################
# T1 adobe type1 font support thru t1lib
####################################################################
HAVE_T1LIB_SUPPORT = N
INCT1LIB = /usr/include
LIBT1LIB = /usr/lib/libt1.a
####################################################################
# TrueType font support thru FreeType 1.x
####################################################################
HAVE_FREETYPE_SUPPORT = Y
INCFTLIB = /home/lua/freetype/include
LIBFTLIB = /home/lua/freetype/lib/libttf.so
FREETYPE_FONT_DIR = "/usr/lua/mwinarm/fonts/truetype"
####################################################################
# Support for many kinds of font thru FreeType 2.x
# Must also set FREETYPE_FONT_DIR in the Freetype 1.x section
####################################################################
HAVE_FREETYPE_2_SUPPORT = N
INCFT2LIB = /usr/include
LIBFT2LIB = /usr/lib/libfreetype.a
####################################################################
# PCF font support
# Selecting HAVE_PCFGZ_SUPPORT will allow you to directly read
# .pcf.gz files, but it will add libz to the size of the server
####################################################################
HAVE_PCF_SUPPORT = Y
HAVE_PCFGZ_SUPPORT = N
PCF_FONT_DIR = "/home/lua/mwinarm/fonts/pcf"
####################################################################
# Chinese Han Zi Ku loadable font support
####################################################################
HAVE_HZK_SUPPORT = Y
HZK_FONT_DIR = "/home/lua/mwinarm/fonts/chinese"
####################################################################
# Chinese BIG5 compiled in font support (big5font.c)
####################################################################
HAVE_BIG5_SUPPORT = N
####################################################################
# Chinese GB2312 compiled in font support (gb2312font.c)
####################################################################
HAVE_GB2312_SUPPORT = Y
####################################################################
# Japanese JISX0213 compiled in font support (jisx0213-12x12.c)
####################################################################
HAVE_JISX0213_SUPPORT = N
####################################################################
# Korean HANGUL font support (jo16x16.c)
####################################################################
HAVE_KSC5601_SUPPORT = N
####################################################################
# Japanese EUC-JP support using loadable MGL font
####################################################################
HAVE_EUCJP_SUPPORT = N
EUCJP_FONT_DIR = "fonts/japanese"
####################################################################
# Generate screen driver interface only with no fonts or clipping
####################################################################
NOFONTSORCLIPPING = N
####################################################################
#
# Window move algorithms for Microwindows
# Change for tradeoff between cpu speed and looks
# ERASEMOVE repaints only backgrounds while window dragging, quicker.
# Otherwise an XOR redraw is used for window moves only after button up,
# quickest (should set for ELKS)
# UPDATEREGIONS paints in update clipping region only for better look and feel
#
####################################################################
ERASEMOVE = Y
UPDATEREGIONS = Y
####################################################################
#
# Link with Gray Palette (valid only for 4bpp modes)
#
####################################################################
GRAYPALETTE = N
####################################################################
#
# If the platform is running UNIX, Linux or RTEMS...
#
####################################################################
ifneq ($(ARCH), ELKS)
# X Window screen, mouse and kbd drivers
X11 = N
ifeq ($(X11), Y)
# startup screen width, height, (depth for palette mode only)
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
SCREEN_DEPTH = 4
# You may want to turn this on for XFree86 4.x or if your backing store
# isn\"t functioning properly
USE_EXPOSURE = Y
else
# framebuffer screen driver (linear and/or vga 4 planes)
# set VTSWITCH to include virtual terminal switch code
# set FBREVERSE to reverse bit orders in 1,2,4 bpp
FBVGA = N
FRAMEBUFFER = Y
FBVGA = N
VTSWITCH = N
FBREVERSE = N
# set HAVETEXTMODE=Y for systems that can switch between text & graphics.
# On a graphics-only embedded system, such as Osprey and Embedded
# Planet boards, set HAVETEXTMODE=N
HAVETEXTMODE = N
# svgalib screen driver
VGALIB = N
# direct VGA hardware access screen driver
HWVGA = N
####################################################################
# Mouse drivers
# GPMMOUSE gpm mouse
# SERMOUSE serial Microsoft, PC, Logitech, PS/2 mice (/dev/psaux)
# SUNMOUSE Sun Workstation mouse (/dev/sunmouse)
# NOMOUSE no mouse driver
#
# Touchscreen drivers
# IPAQMOUSE Compaq iPAQ, Intel Assabet (/dev/h3600_tsraw)
# ZAURUSMOUSE Sharp Zaurus (/dev/sharp_ts)
# TUXMOUSE TuxScreen (/dev/ucb1x00-ts)
# ADSMOUSE Applied Data Systems GC+ (/dev/ts)
# ADS7846MOUSE ADS7846 chip, PSI OMAP Innovator (/dev/innnovator_ts)
# EPMOUSE Embedded Planet (/dev/tpanel)
# VHMOUSE Vtech Helio (/dev/tpanel)
# MTMOUSE MicroTouch serial (/dev/ttyS1)
# PSIONMOUSE Psion 5 (/dev/touch_psion)
# YOPYMOUSE Yopy (/dev/yopy-ts)
# HARRIERMOUSE NEC Harrier (/dev/tpanel)
####################################################################
GPMMOUSE = N
SERMOUSE = N
SUNMOUSE = N
NOMOUSE = N
IPAQMOUSE = Y
ZAURUSMOUSE = N
TUXMOUSE = N
ADSMOUSE = N
ADS7846MOUSE = N
EPMOUSE = N
VHMOUSE = N
MTMOUSE = N
PSIONMOUSE = N
YOPYMOUSE = N
HARRIERMOUSE = N
# keyboard or null kbd driver
TTYKBD = N
SCANKBD = N
PIPEKBD = N
IPAQKBD = N
LIRCKBD = N
NOKBD = Y
endif
####################################################################
# Screen driver specific configuration
# SA1100_LCD_LTLEND 4bpp driver with arm SA1100 LCD controller
# INVERT4BPP 4bpp inverted pixel driver for VTech Helio
####################################################################
SA1100_LCD_LTLEND = N
INVERT4BPP = N
####################################################################
#
# If the platform is a RTEMS box ....
#
####################################################################
ifeq ($(ARCH), RTEMS)
# Location & BSP information of the RTEMS build
RTEMS_BUILD = /tools/build-i386-elf-rtems
RTEMS_BSP = pc386
LINK_APP_INTO_SERVER = Y
endif
endif
####################################################################
#
# If the platform is an ELKS box ...
#
####################################################################
ifeq ($(ARCH), ELKS)
# Higher speed asm driver, c driver of hercules screen driver
ASMVGADRIVER = Y
CVGADRIVER = N
HERCDRIVER = N
DBGDRIVER = N
# Mouse support
SERMOUSE = Y
endif
阅读(1210) | 评论(1) | 转发(0) |