10月も下旬となるとめっきり日が短くなり,
さて,
GNU Autotools
前回PlamoBuildスクリプトの例として紹介したXfce用のファイルマネジャーThunarは,
このconfigureスクリプトはGNUプロジェクトが開発したAutotoolsと呼ばれる開発システムの一部です。
GNUプロジェクトでは,
GNUプロジェクトが始まった80年代後半は,
GNU Autotoolsは,
Autotoolsを採用したソフトウェアは,
かってはImakeという独自のビルドシステムを利用していたX Window Systemも,
CMake
上述のようにGNU AutotoolsはOSS界の標準ビルドツールの地位を占めていますが,
CMakeはGNU Autotoolsを参考にしながら設計された新世代のビルドシステムで,
CMakeはGNU Autotools同様,
CMakeはGNU Autotools同様,
1 #!/bin/sh
2 ##############################################################
3 url='ftp://ftp.kddlabs.co.jp/X/kde/stable/4.9.2/src/kdelibs-4.9.2.tar.xz'
4 pkgbase=kdelibs
5 vers=4.9.2
6 arch=x86_64
7 # arch=i586
8 build=P1
9 src=kdelibs-4.9.2
10 OPT_CONFIG=' -DDOCBOOKXML_CURRENTDTD_DIR:PATH=/usr/share/xml/docbook/schema/4.2/dtd '
11 DOCS='AUTHORS COPYING COPYING.DOC COPYING.LIB INSTALL README README-WIN32.TXT TODO knewstuff licenses'
12 patchfiles=''
13 compress=txz
14 ##############################################################
前回紹介したThunar-1.
一方,
128 if [ $opt_config -eq 1 ] ; then
129 for i in `seq 0 $((${#B[@]} - 1))` ; do
130 if [ -d ${B[$i]} ] ; then rm -rf ${B[$i]} ; fi ; mkdir -p ${B[$i]}
131 done
132 ######################################################################
133 # * ./configure を行う前に適用したい設定やパッチなどがある場合はここに
134 # 記述します。
135 ######################################################################
136 for i in `seq 0 $((${#S[@]} - 1))` ; do
137 cd $S
138 for patch in $patchfiles ; do
139 if [ ! -f ".$patch" ]; then
140 patch -p1 < $W/$patch
141 touch ".$patch"
142 fi
143 done
144
145 cd $B
146 if [ -f $S/CMakeLists.txt ]; then
147 export PKG_CONFIG_PATH=/opt/kde/${libdir}/pkgconfig:/usr/${libdir}/pkgconfig:/usr/share/pkgconfig
148 export LDFLAGS='-Wl,--as-needed'
149 export CC="gcc -isystem /usr/include $target"
150 export CXX="g++ -isystem /usr/include $target"
151 cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/kde -DLIB_INSTALL_DIR:PATH=/opt/kde/${libdir} -DLIB_SUFFIX=$suffix ${OPT_CONFIG} $S
152 fi
CMakeの場合,
cmakeコマンドには,
config時の処理は大きく異なるものの,
このように,