Showing posts with label Library. Show all posts
Build bzip2-1.0.6
Modify Makefile
# To assist in cross-compiling
CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar
RANLIB=arm-linux-gnueabihf-ranlib
LDFLAGS=
####I add so file,because boost lib need so lib,not static library.
BZLIB=libbz2.so.1.0.6
#CLAGS=-Wall -Winline -O2 -g $(BIGFILES)
CLAGS=-Wall -Winline -O2 -g $(BIGFILES) -fPIC
SFLAGS=-shared
PREFIX=$(PWD)/_install
#all: libbz2.a bzip2 bzip2recover test
all: libbz2.a $(BZLIB)
$(BZLIB): $(OBJS)
$(CC) $(SFLAGS) $(LDFLAGS) -o $@ $^
####bzip2 and bzip2recover can not be execute on the ubuntu host,
they are binary based arm architecture.
#install: bzip2 bzip2recover
install: $(BZLIB)
#cp -f bzip2 $(PREFIX)/bin/bzip2
#cp -f bzip2 $(PREFIX)/bin/bunzip2
#cp -f bzip2 $(PREFIX)/bin/bzcat
#cp -f bzip2recover $(PREFIX)/bin/bzip2recover
#chmod a+x $(PREFIX)/bin/bzip2
#chmod a+x $(PREFIX)/bin/bunzip2
#chmod a+x $(PREFIX)/bin/bzcat
#chmod a+x $(PREFIX)/bin/bzip2recover
cp -f libbz2.a $(PREFIX)/lib
chmod a+r $(PREFIX)/lib/libbz2.a
cp -f $(BZLIB) $(PREFIX)/lib
chmod a+r $(PREFIX)/lib/$(BZLIB)
make
make PREFIX=$PREFIX install
Tag :
Library
Tag :
Library
Build boost_1_58_0
Thư viện phụ thuộc:
- zlib
- bzip2
Xem hướng dẫn cross.
"Bootstrap the code:"
./bootstrap.sh
"
Modify the configuration file (project-config.jam) to use the ARM toolchain
by replacing the line with "using gcc" by:
using gcc : arm : arm-none-linux-gnueabi-g++ ;
"
"Install the python development package on host"
yum install python-devel
"Cross comple zlib-1.2.8 and bzip2-1.0.6 "
DEPEND_LIB_DIR=/path/to/install
export CFLAGS=-I${DEPEND_LIB_DIR}/include
export CPPFLAGS=-I${DEPEND_LIB_DIR}/include
export LDFLAGS=-L${DEPEND_LIB_DIR}/lib
export PKG_CONFIG_PATH=${DEPEND_LIB_DIR}/lib/pkgconfig
export LD_LIBRARY_PATH=${DEPEND_LIB_DIR}/lib
export PATH=$PATH:${DEPEND_LIB_DIR}/bin:${DEPEND_LIB_DIR}/sbin
"Build and install the boost libraries:"
ZLIB_SOURCE_DIR=/path/to/zlib-1.2.8
BZIP2_SOURCE_DIR=/path/to/bzip2-1.0.6
./bjam toolset=gcc-arm --prefix=$PREFIX \
-sZLIB_SOURCE=${ZLIB_SOURCE_DIR} \
-sBZIP2_SOURCE=${BZIP2_SOURCE_DIR} \
--without-python \
install
Build libevent
Thư viện phụ thuộc:
- openssl
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
DEPEND_LIB_DIR=/path/to/openssl/install
export CFLAGS=-I${DEPEND_LIB_DIR}/include
export CPPFLAGS=-I${DEPEND_LIB_DIR}/include
export LDFLAGS=-L${DEPEND_LIB_DIR}/lib
export PKG_CONFIG_PATH=${DEPEND_LIB_DIR}/lib/pkgconfig
export LD_LIBRARY_PATH=${DEPEND_LIB_DIR}/lib
export PATH=$PATH:${DEPEND_LIB_DIR}/bin:${DEPEND_LIB_DIR}/sbin
export PREFIX=/friendlyarm
./configure --prefix=${PREFIX} --host=${HOST} CC=${CROSS}gcc
make
make install
Tag :
Library
Build openssl-1.0.0s
Thư viện mã hóa, xác thực dữ liệu
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
"static library"
./Configure dist --prefix=${PREFIX}
make CC="${CROSS}gcc" AR="${CROSS}ar r" RANLIB="${CROSS}ranlib" install
"shared library"
./Configure --prefix=${PREFIX} shared "${HOST}":"${CROSS}gcc:-DTERMIO -O3 -Wall -I../../host/include::-D_REENTRANT::-L../../host/lib -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR::bn_asm.o armv4-mont.o::aes_cbc.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::void:dlfcn:linux-shared:-fPIC::.so.1.0.0":${CROSS}ranlib::
"if you configure for host with shared library"
./config --prefix=${PREFIX}/usr \
--openssldir=${PREFIX}/etc/ssl \
--libdir=lib \
shared \
zlib-dynamic
Tag :
Library
Build zlib-1.2.8
Thư viện nén / giải nén dữ liệu.
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
export CC=${CROSS}gcc
export CXX=${CROSS}g++
export AR=${CROSS}ar
export RANLIB=${CROSS}ranlib
export STRIP=${CROSS}strip
export LD=${CROSS}ld
./configure --prefix=$PREFIX
make
make install
Tag :
Library
Tag :
Library
Build linux-fusion-9.0.2
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
export CC=${CROSS}gcc
export STRIP=${CROSS}strip
export AR=${CROSS}ar
export AS=${CROSS}as
export CXX=${CROSS}g++
export CPP=${CROSS}cpp
export LD=${CROSS}ld
export RANLIB=${CROSS}ranlib
export ARCH=arm
export PREFIX=/friendlyarm
requirement:
- build linux kernel modules ok
- for example: ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM
open linux-fusion Makefile and edit:
KERNEL_VERSION = 2.6.32.2-FriendlyARM
INSTALL_MOD_PATH = ${PREFIX}
KERNELDIR = $(INSTALL_MOD_PATH)/lib/modules/$(KERNEL_VERSION)/build
FUSIONCORE = single
ONECORE = single
- make
- make install
install fusion.ko and linux-one.ko to ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM/drivers/char/fusion
fusion.h and one.h to ${PREFIX}/usr/include/linux
-runtime: insmod fusion.ko, insmod linux-one.ko
Tag :
Library
Build alsa-lib-1.0.22
Thư viện xử lý âm thanh PCM
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
export PREFIX=/friendlyarm
./configure --prefix=${PREFIX} --host=${HOST} CC=${CROSS}gcc
make
make install
Build alsa-utils-1.0.22
yum install ncurses ncurses-devel ncurses-libs ncurses-static
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
#export alsa-lib-1.0.22 da build
DEPEND_LIB_DIR=/friendlyarm
export CFLAGS=-I${DEPEND_LIB_DIR}/include
export CPPFLAGS=-I${DEPEND_LIB_DIR}/include
export LDFLAGS=-L${DEPEND_LIB_DIR}/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${DEPEND_LIB_DIR}/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${DEPEND_LIB_DIR}/lib
export PATH=$PATH:${DEPEND_LIB_DIR}/bin:${DEPEND_LIB_DIR}/sbin
export PREFIX=/friendlyarm
./configure --prefix=${PREFIX} --host=${HOST} CC=${CROSS}gcc
make
make install
Tag :
Library
Tag :
Library
Build tslib-1.0
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export CROSS=arm-none-linux-gnueabi-
export HOST=arm-none-linux-gnueabi
export PREFIX=/friendlyarm/directfb
./autogen-clean.sh
./autogen.sh
./configure --prefix=${PREFIX} --host=${HOST} \
CC=${CROSS}gcc \
--enable-shared=yes --enable-static=yes \
ac_cv_func_malloc_0_nonnull=yes
make
make install
Tag :
Library
Tag :
Library
BusyBox
1. BusyBox
BusyBox là một bộ tiện ích nhỏ gọn cho hệ thống nhúng, ví dụ như các lệnh ta dùng trong shell như "cat, date, ping, ip, route, ..." đều được tích hợp trong nó, chính vì vậy BusyBox được dùng để xây dựng nên Root File System.
Download source tại đây http://www.busybox.net
Toàn bộ các tiện ích và cách sử dụng được liệt kê ở link dưới:
http://www.busybox.net/downloads/BusyBox.html
2. Cross compile
2.1 Cấu hình
Export biến môi trường dẫn đến thư mục cross compiler:
Cấu hình mặc định hoặc bằng giao diện đồ họa:
Việc cấu hình được thực hiện bằng các phím mũi tên, enter, space và Esc.
2.2 Make compile
Chọn thư mục để install:
BusyBox Settings->Installation Options->BusyBox installation prefix
hoặc set qua biến môi trường
CONFIG_PREFIX=/path/to/rootfs
BusyBox là một bộ tiện ích nhỏ gọn cho hệ thống nhúng, ví dụ như các lệnh ta dùng trong shell như "cat, date, ping, ip, route, ..." đều được tích hợp trong nó, chính vì vậy BusyBox được dùng để xây dựng nên Root File System.
Download source tại đây http://www.busybox.net
Toàn bộ các tiện ích và cách sử dụng được liệt kê ở link dưới:
http://www.busybox.net/downloads/BusyBox.html
2. Cross compile
2.1 Cấu hình
Export biến môi trường dẫn đến thư mục cross compiler:
export CC_PATH=/opt/FriendlyARM/toolschain/4.4.3
export PATH=$PATH:${CC_PATH}/bin
Cấu hình mặc định hoặc bằng giao diện đồ họa:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- defconfig #default
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig #configure by GUI
Việc cấu hình được thực hiện bằng các phím mũi tên, enter, space và Esc.
2.2 Make compile
Chọn thư mục để install:
BusyBox Settings->Installation Options->BusyBox installation prefix
hoặc set qua biến môi trường
CONFIG_PREFIX=/path/to/rootfs
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- CONFIG_PREFIX=/path/to/rootfs install





