# HG changeset patch # User yuuji@gentei.org # Date 1264408348 -32400 # Node ID 3578cc37f9cd676d92ab4dd47a785d8a73949932 init diff -r 000000000000 -r 3578cc37f9cd bin/caam --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/caam Mon Jan 25 17:32:28 2010 +0900 @@ -0,0 +1,186 @@ +#!/bin/sh +# caam - Configure And And Make +# (C)2008-2009 by HIROSE, Yuuji [yuuji/at/gentei.org] +# Last modified Wed Sep 23 06:16:25 2009 on firestorm +# Update count: 14 +# http://www.gentei.org/~yuuji/software/caam/ + +ca=`echo $CAAM_ADD|tr : ' '` +cpx=`echo $CAAM_PREFIXES|tr : ' '` +CAAM_GCC=${GCC:-`which gcc`} +CAAM_CXX=${GCC:-`which c++`} +if [ -x /usr/xpg4/bin/sh ]; then + CAAM_SH=/usr/xpg4/bin/sh +else + CAAM_SH=`which sh` +fi +CONFIG_SHELL=${CONFIG_SHELL:-${CAAM_SH}} +export CONFIG_SHELL + +# setup final callee +####DO=${DO:-${MAKE:-make}} +CAAM_MAKE=${MAKE:-make} +CAAM_CFG=${CFG:-"$CONFIG_SHELL ./configure"} +MKTGT='' +CAAM_MKOPT=${MKOPT:-""} +TGT2='' + +myname=`basename $0` +mydir=`dirname $0` +mydir=`(cd $mydir; pwd -P)` +myargs=$* +dir=`dirname $mydir` +case "$dir" in + */caam*) top=`dirname $dir` ;; + *) top="$dir" ;; +esac +echo d=$dir, top=$top + +chasemytop () {( + me=$0; cd $mydir + while [ -L $me ]; do + me=`ls -l $me|awk '{print $NF}'` + d=`dirname $me` + me=`basename $me` + cd $d + done + (cd ..; pwd -P) +)} + +mytop=`chasemytop` + +PROOT=$top +CONFDIR=${CAAM_CONFDIR:-$mydir} +DPF="$CONFDIR/caam.dirs" +WRAPDIR=$mytop/wrap +[ "$CAAM_DEBUG" ] && echo wrapdir=$WRAPDIR + +# Parse my own arguments +while [ x"" != x"$1" ]; do + case "$1" in + --) break;; + -gmaic) TGT2="install clean"; CAAM_MAKE=gmake;; + -maic) TGT2="install clean";; + -gmai) TGT2="install"; CAAM_MAKE=gmake;; + -mai) TGT2="install";; + -m) CAAM_CFG="echo configure done";; + -t) shift; MKTGT=${MKTGT:+"all "}"$1" ;; + -j[0-9]*) CAAM_MKOPT="$MKOPT${MKOPT:+ }$1";; + -j) shift; CAAM_MKOPT="$MKOPT${MKOPT:+ }-j $1";; + -k) CAAM_MKOPT="$MKOPT${MKOPT:+ }-k";; +# -CC) setcc=1 ;; + -c) DO="echo done";; + -g) CAAM_MAKE=gmake ;; + -s) shift; CAAM_MAKE="sleep $1; $CAAM_MAKE" ;; + -d) debug=1 ;; + *) break ;; + esac + shift +done +POSTDO=${TGT2:+" && ${CAAM_MAKE} $TGT2"} +DO=${DO:-"${CAAM_MAKE} ${CAAM_MKOPT} $MKTGT$POSTDO"} + +# Add extra path +for p in $ca; do + case "$p" in + /*) PATH=${p}/bin:$PATH ;; + *) PATH=$PROOT/${p}/bin:$PATH ;; + esac +done + +defprefix="gnu graphics xc X11-contrib Xclient" +[ -f $DPF ] && defprefix=`grep -v '^#' $DPF` +dpx=${cpx:-$defprefix} + +# extract pkg-config path's +pcp=$PKG_CONFIG_PATH + +[ $debug ] && echo ca=$ca +for e in $ca '' $dpx; do + case "$e" in + /*) pfx=$e ;; + *) pfx=$PROOT/$e ;; + esac + [ $debug ] && echo checking $pfx + [ -d $pfx ] || continue + cf="$cf -I${pfx}${e:+/}include" + lf="$lf -L${pfx}${e:+/}lib -R${pfx}${e:+/}lib" + lp="$lp${lp:+:}${pfx}${e:+/}lib" + [ -d $pfx/lib/pkgconfig ] && pcp=$pcp${pcp:+:}$pfx${e:+/}lib/pkgconfig +done + +# Save old variable +for e in PATH LD_LIBRARY_PATH LD_RUN_PATH PERL RUBY PYTHON M4 \ + CC CFLAGS LDFLAGS LIBS CXX CXXFLAGS \ + CONFIG_SHELL \ + PKG_CONFIG_PATH CAAM_PREFIXES CAAM_ADD CFG MAKE MKOPT; do + eval "v=\$$e" + if [ x"$v" != x"" ]; then + eval "old_${e}=\"$v\"" + kept_env="$kept_env $e" + fi +done + +CFLAGS=`echo $CFLAGS $cf` +CPPFLAGS=`echo $CFLAGS $cf` +LDFLAGS=`echo $LDFLAGS $lf` +export LD_RUN_PATH +LD_RUN_PATH="$lp" +PKG_CONFIG_PATH=$pcp +export PKG_CONFIG_PATH + +# Setup gcc wrapper environment +# point to gcc wrapper +if [ -d $WRAPDIR ]; then + PATH=$WRAPDIR:$PATH + ldf='' + if [ x"$LD_RUN_PATH" != x"" ]; then + oifs=$IFS + IFS=: + for d in $LD_RUN_PATH; do + ldf=$ldf${ldf:+\ }"-R $d -L $d" + done + IFS=$oifs + fi + CAAM_LDF=$ldf; export CAAM_LDF +fi + +successlog() { + status=$? + (PWD=`pwd` # for compatibility + logfile=../`basename $PWD`.caam + [ -s $logfile ] || echo "### $logfile started at `date`" > $logfile + (echo 1i + echo "# $myname succeeded at `date`" + for e in $kept_env; do + eval v="\$old_$e" + echo $e=\"$v\" \\ + done + echo $myname $myargs + echo exit + echo .; echo w; echo q) | ed $logfile 2> /dev/null + ) + exit $status +} + +# if [ $setcc ]; then +# # CC="$CAAM_GCC $CFLAGS $LDFLAGS"; export CC +# DO="$DO CC='$CAAM_GCC $CFLAGS $LDFLAGS'" +# fi + +echo CFLAGS=\"$CFLAGS\" \ +CPPFLAGS=\"$CFLAGS\" \ +LDFLAGS=\"$LDFLAGS\" \ +LD_LIBRARY_PATH="$lp" \ +PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\" \ +GCC=\"$CAAM_GCC\" \ +sh -c "$CAAM_CFG $* && $DO" + +PATH=$PATH \ +CFLAGS="$CFLAGS" \ +CPPFLAGS="$CFLAGS" \ +LDFLAGS="$LDFLAGS" \ +LD_LIBRARY_PATH="$lp" \ +CAAM_GCC=$CAAM_GCC \ +CAAM_CXX=$CAAM_CXX \ +sh -c "$CAAM_CFG $* && $DO" && successlog diff -r 000000000000 -r 3578cc37f9cd wrap/c++ --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wrap/c++ Mon Jan 25 17:32:28 2010 +0900 @@ -0,0 +1,16 @@ +#!/bin/sh +CAAM_CXX=${CAAM_CXX:-`which c++`} +ldf='' +if [ x"${CAAM_LDF+x}" = x"x" ]; then + # if CAAM_LDF is unset + if [ x"$LD_RUN_PATH" != x"" ]; then + oifs=$IFS + IFS=: + for d in $LD_RUN_PATH; do + ldf=$ldf"${ldf:+ }-R $d -L $d" + done + IFS=$oifs + fi +fi +# echo cmd=$CAAM_GCC $ldf "$@" +exec $CAAM_CXX $ldf "$@" diff -r 000000000000 -r 3578cc37f9cd wrap/cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wrap/cc Mon Jan 25 17:32:28 2010 +0900 @@ -0,0 +1,1 @@ +gcc \ No newline at end of file diff -r 000000000000 -r 3578cc37f9cd wrap/gcc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wrap/gcc Mon Jan 25 17:32:28 2010 +0900 @@ -0,0 +1,16 @@ +#!/bin/sh +CAAM_GCC=${CAAM_GCC:-/usr/bin/gcc} +ldf=${CAAM_LDF} +if [ x"${CAAM_LDF+x}" != x"x" ]; then + # if CAAM_LDF is unset + if [ x"$LD_RUN_PATH" != x"" ]; then + oifs=$IFS + IFS=: + for d in $LD_RUN_PATH; do + ldf=$ldf"${ldf:+ }-R $d -L $d" + done + IFS=$oifs + fi +fi +# echo cmd=$CAAM_GCC $ldf "$@" +exec $CAAM_GCC $ldf "$@"