在 embedded 平台上要用 source 安裝 library,

執行 configure 往往要接上一大堆 options,

寫一個簡單的 config.sh 以備日後擴充應用.

#! /bin/sh

################################

第一步, 簡化指令 pwd 的使用,

為了晚點需要用上 absolute path 的場合.

要注意的是 ` 是鍵盤左上方的符號, 英文是 Grave.

 

所有 shell script 和 link/include 外部的檔案都放在 BUILD_DIR

本 library 的 source code 放在 SRC_DIR

編譯出現的 object 暫存在 TARGET_DIR

 

其中外部 library1 的 library files 放在 linkinglibrary1_LIB

header files 放在 linkinglibrary1_INCLUDE

 

外部 library2 的 PC 一整包放在 linkinglibrary2_PKGCONFIG

除了 pc 檔, 包含的 header 和 library files 也要先放在相對應的正確位置.

################################

PWD=`pwd`

BUILD_DIR="build-XXX"
SRC_DIR="XXX-0.6.31"
TARGET_DIR="target-XXX"

linkinglibrary1_LIB="$BUILD_DIR/lib/liblinkinglibrary1"
linkinglibrary1_INCLUDE="$BUILD_DIR/include/liblinkinglibrary1"

linkinglibrary2_PKGCONFIG="$BUILD_DIR/pkgconfig/liblinkinglibrary2"

cd ../

if [ -e $TARGET_DIR ]
then
    rm -rf $TARGET_DIR
fi

mkdir $TARGET_DIR

################################

第二步, 進入 SRC_DIR,

把 configure 會用到的 options 都列上來.

要注意的是每一行行尾加上 \ (back slash)

代表他們都屬於同一行.

 

prefix 指向編譯的目的絕對路徑.

host 指定編譯平台.

PKG_CONFIG_PATH 指向外部 library 的 pc 檔絕對路徑,

################################

################################
# change to src directory
################################
cd $SRC_DIR

################################
# do configure
################################
./configure clean
./configure --prefix=$PWD/../$TARGET_DIR --host=mips-linux-gnu \
--localstatedir=/var \
--disable-static \
--disable-mono \
--disable-monodoc \
--disable-python \
--disable-qt3 \
--disable-qt4 \
--enable-core-docs \
--with-distro=none \
--disable-gtk \
--disable-gtk3 \
--disable-dbus \
--disable-glib \
--disable-gobject \
--disable-gdbm \
--enable-autoipd \
--with-autoipd-user=root \
--with-autoipd-group=root \
--disable-tests \
PKG_CONFIG_PATH=$PWD/../$linkinglibrary2_PKGCONFIG/lib/pkgconfig \
CC="mips-linux-gnu-gcc -EL -I$PWD/../$linkinglibrary1_INCLUDE -L$PWD/../$linkinglibrary1_LIB" CFLAGS="-mips32 -EL -msoft-float" LDFLAGS="-EL -msoft-float" 

 

 

執行 config.sh,

若一路正常, 接下來就可以 make 了 ...

 

 

 

arrow
arrow
    全站熱搜

    kk 發表在 痞客邦 留言(0) 人氣()