caam
changeset 0:3578cc37f9cd
init
author | yuuji@gentei.org |
---|---|
date | Mon, 25 Jan 2010 17:32:28 +0900 |
parents | |
children | 4e6762b4b0cb |
files | bin/caam wrap/c++ wrap/cc wrap/gcc |
diffstat | 4 files changed, 219 insertions(+), 0 deletions(-) [+] |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/bin/caam Mon Jan 25 17:32:28 2010 +0900 1.3 @@ -0,0 +1,186 @@ 1.4 +#!/bin/sh 1.5 +# caam - Configure And And Make 1.6 +# (C)2008-2009 by HIROSE, Yuuji [yuuji/at/gentei.org] 1.7 +# Last modified Wed Sep 23 06:16:25 2009 on firestorm 1.8 +# Update count: 14 1.9 +# http://www.gentei.org/~yuuji/software/caam/ 1.10 + 1.11 +ca=`echo $CAAM_ADD|tr : ' '` 1.12 +cpx=`echo $CAAM_PREFIXES|tr : ' '` 1.13 +CAAM_GCC=${GCC:-`which gcc`} 1.14 +CAAM_CXX=${GCC:-`which c++`} 1.15 +if [ -x /usr/xpg4/bin/sh ]; then 1.16 + CAAM_SH=/usr/xpg4/bin/sh 1.17 +else 1.18 + CAAM_SH=`which sh` 1.19 +fi 1.20 +CONFIG_SHELL=${CONFIG_SHELL:-${CAAM_SH}} 1.21 +export CONFIG_SHELL 1.22 + 1.23 +# setup final callee 1.24 +####DO=${DO:-${MAKE:-make}} 1.25 +CAAM_MAKE=${MAKE:-make} 1.26 +CAAM_CFG=${CFG:-"$CONFIG_SHELL ./configure"} 1.27 +MKTGT='' 1.28 +CAAM_MKOPT=${MKOPT:-""} 1.29 +TGT2='' 1.30 + 1.31 +myname=`basename $0` 1.32 +mydir=`dirname $0` 1.33 +mydir=`(cd $mydir; pwd -P)` 1.34 +myargs=$* 1.35 +dir=`dirname $mydir` 1.36 +case "$dir" in 1.37 + */caam*) top=`dirname $dir` ;; 1.38 + *) top="$dir" ;; 1.39 +esac 1.40 +echo d=$dir, top=$top 1.41 + 1.42 +chasemytop () {( 1.43 + me=$0; cd $mydir 1.44 + while [ -L $me ]; do 1.45 + me=`ls -l $me|awk '{print $NF}'` 1.46 + d=`dirname $me` 1.47 + me=`basename $me` 1.48 + cd $d 1.49 + done 1.50 + (cd ..; pwd -P) 1.51 +)} 1.52 + 1.53 +mytop=`chasemytop` 1.54 + 1.55 +PROOT=$top 1.56 +CONFDIR=${CAAM_CONFDIR:-$mydir} 1.57 +DPF="$CONFDIR/caam.dirs" 1.58 +WRAPDIR=$mytop/wrap 1.59 +[ "$CAAM_DEBUG" ] && echo wrapdir=$WRAPDIR 1.60 + 1.61 +# Parse my own arguments 1.62 +while [ x"" != x"$1" ]; do 1.63 + case "$1" in 1.64 + --) break;; 1.65 + -gmaic) TGT2="install clean"; CAAM_MAKE=gmake;; 1.66 + -maic) TGT2="install clean";; 1.67 + -gmai) TGT2="install"; CAAM_MAKE=gmake;; 1.68 + -mai) TGT2="install";; 1.69 + -m) CAAM_CFG="echo configure done";; 1.70 + -t) shift; MKTGT=${MKTGT:+"all "}"$1" ;; 1.71 + -j[0-9]*) CAAM_MKOPT="$MKOPT${MKOPT:+ }$1";; 1.72 + -j) shift; CAAM_MKOPT="$MKOPT${MKOPT:+ }-j $1";; 1.73 + -k) CAAM_MKOPT="$MKOPT${MKOPT:+ }-k";; 1.74 +# -CC) setcc=1 ;; 1.75 + -c) DO="echo done";; 1.76 + -g) CAAM_MAKE=gmake ;; 1.77 + -s) shift; CAAM_MAKE="sleep $1; $CAAM_MAKE" ;; 1.78 + -d) debug=1 ;; 1.79 + *) break ;; 1.80 + esac 1.81 + shift 1.82 +done 1.83 +POSTDO=${TGT2:+" && ${CAAM_MAKE} $TGT2"} 1.84 +DO=${DO:-"${CAAM_MAKE} ${CAAM_MKOPT} $MKTGT$POSTDO"} 1.85 + 1.86 +# Add extra path 1.87 +for p in $ca; do 1.88 + case "$p" in 1.89 + /*) PATH=${p}/bin:$PATH ;; 1.90 + *) PATH=$PROOT/${p}/bin:$PATH ;; 1.91 + esac 1.92 +done 1.93 + 1.94 +defprefix="gnu graphics xc X11-contrib Xclient" 1.95 +[ -f $DPF ] && defprefix=`grep -v '^#' $DPF` 1.96 +dpx=${cpx:-$defprefix} 1.97 + 1.98 +# extract pkg-config path's 1.99 +pcp=$PKG_CONFIG_PATH 1.100 + 1.101 +[ $debug ] && echo ca=$ca 1.102 +for e in $ca '' $dpx; do 1.103 + case "$e" in 1.104 + /*) pfx=$e ;; 1.105 + *) pfx=$PROOT/$e ;; 1.106 + esac 1.107 + [ $debug ] && echo checking $pfx 1.108 + [ -d $pfx ] || continue 1.109 + cf="$cf -I${pfx}${e:+/}include" 1.110 + lf="$lf -L${pfx}${e:+/}lib -R${pfx}${e:+/}lib" 1.111 + lp="$lp${lp:+:}${pfx}${e:+/}lib" 1.112 + [ -d $pfx/lib/pkgconfig ] && pcp=$pcp${pcp:+:}$pfx${e:+/}lib/pkgconfig 1.113 +done 1.114 + 1.115 +# Save old variable 1.116 +for e in PATH LD_LIBRARY_PATH LD_RUN_PATH PERL RUBY PYTHON M4 \ 1.117 + CC CFLAGS LDFLAGS LIBS CXX CXXFLAGS \ 1.118 + CONFIG_SHELL \ 1.119 + PKG_CONFIG_PATH CAAM_PREFIXES CAAM_ADD CFG MAKE MKOPT; do 1.120 + eval "v=\$$e" 1.121 + if [ x"$v" != x"" ]; then 1.122 + eval "old_${e}=\"$v\"" 1.123 + kept_env="$kept_env $e" 1.124 + fi 1.125 +done 1.126 + 1.127 +CFLAGS=`echo $CFLAGS $cf` 1.128 +CPPFLAGS=`echo $CFLAGS $cf` 1.129 +LDFLAGS=`echo $LDFLAGS $lf` 1.130 +export LD_RUN_PATH 1.131 +LD_RUN_PATH="$lp" 1.132 +PKG_CONFIG_PATH=$pcp 1.133 +export PKG_CONFIG_PATH 1.134 + 1.135 +# Setup gcc wrapper environment 1.136 +# point to gcc wrapper 1.137 +if [ -d $WRAPDIR ]; then 1.138 + PATH=$WRAPDIR:$PATH 1.139 + ldf='' 1.140 + if [ x"$LD_RUN_PATH" != x"" ]; then 1.141 + oifs=$IFS 1.142 + IFS=: 1.143 + for d in $LD_RUN_PATH; do 1.144 + ldf=$ldf${ldf:+\ }"-R $d -L $d" 1.145 + done 1.146 + IFS=$oifs 1.147 + fi 1.148 + CAAM_LDF=$ldf; export CAAM_LDF 1.149 +fi 1.150 + 1.151 +successlog() { 1.152 + status=$? 1.153 + (PWD=`pwd` # for compatibility 1.154 + logfile=../`basename $PWD`.caam 1.155 + [ -s $logfile ] || echo "### $logfile started at `date`" > $logfile 1.156 + (echo 1i 1.157 + echo "# $myname succeeded at `date`" 1.158 + for e in $kept_env; do 1.159 + eval v="\$old_$e" 1.160 + echo $e=\"$v\" \\ 1.161 + done 1.162 + echo $myname $myargs 1.163 + echo exit 1.164 + echo .; echo w; echo q) | ed $logfile 2> /dev/null 1.165 + ) 1.166 + exit $status 1.167 +} 1.168 + 1.169 +# if [ $setcc ]; then 1.170 +# # CC="$CAAM_GCC $CFLAGS $LDFLAGS"; export CC 1.171 +# DO="$DO CC='$CAAM_GCC $CFLAGS $LDFLAGS'" 1.172 +# fi 1.173 + 1.174 +echo CFLAGS=\"$CFLAGS\" \ 1.175 +CPPFLAGS=\"$CFLAGS\" \ 1.176 +LDFLAGS=\"$LDFLAGS\" \ 1.177 +LD_LIBRARY_PATH="$lp" \ 1.178 +PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\" \ 1.179 +GCC=\"$CAAM_GCC\" \ 1.180 +sh -c "$CAAM_CFG $* && $DO" 1.181 + 1.182 +PATH=$PATH \ 1.183 +CFLAGS="$CFLAGS" \ 1.184 +CPPFLAGS="$CFLAGS" \ 1.185 +LDFLAGS="$LDFLAGS" \ 1.186 +LD_LIBRARY_PATH="$lp" \ 1.187 +CAAM_GCC=$CAAM_GCC \ 1.188 +CAAM_CXX=$CAAM_CXX \ 1.189 +sh -c "$CAAM_CFG $* && $DO" && successlog
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/wrap/c++ Mon Jan 25 17:32:28 2010 +0900 2.3 @@ -0,0 +1,16 @@ 2.4 +#!/bin/sh 2.5 +CAAM_CXX=${CAAM_CXX:-`which c++`} 2.6 +ldf='' 2.7 +if [ x"${CAAM_LDF+x}" = x"x" ]; then 2.8 + # if CAAM_LDF is unset 2.9 + if [ x"$LD_RUN_PATH" != x"" ]; then 2.10 + oifs=$IFS 2.11 + IFS=: 2.12 + for d in $LD_RUN_PATH; do 2.13 + ldf=$ldf"${ldf:+ }-R $d -L $d" 2.14 + done 2.15 + IFS=$oifs 2.16 + fi 2.17 +fi 2.18 +# echo cmd=$CAAM_GCC $ldf "$@" 2.19 +exec $CAAM_CXX $ldf "$@"
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/wrap/cc Mon Jan 25 17:32:28 2010 +0900 3.3 @@ -0,0 +1,1 @@ 3.4 +gcc 3.5 \ No newline at end of file
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/wrap/gcc Mon Jan 25 17:32:28 2010 +0900 4.3 @@ -0,0 +1,16 @@ 4.4 +#!/bin/sh 4.5 +CAAM_GCC=${CAAM_GCC:-/usr/bin/gcc} 4.6 +ldf=${CAAM_LDF} 4.7 +if [ x"${CAAM_LDF+x}" != x"x" ]; then 4.8 + # if CAAM_LDF is unset 4.9 + if [ x"$LD_RUN_PATH" != x"" ]; then 4.10 + oifs=$IFS 4.11 + IFS=: 4.12 + for d in $LD_RUN_PATH; do 4.13 + ldf=$ldf"${ldf:+ }-R $d -L $d" 4.14 + done 4.15 + IFS=$oifs 4.16 + fi 4.17 +fi 4.18 +# echo cmd=$CAAM_GCC $ldf "$@" 4.19 +exec $CAAM_GCC $ldf "$@"