在 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 了 ...