初学shell和make,今天,尝试写了一个为每本C源程序生成编译的makefile脚本:)
#!/bin/sh
rootdir=/BTMU/$1
if [ "$1" = "" ];then
echo "arg error,not input version!!!"
exit 1;
fi
if [ "$2" = "" ];then
echo "arg error,not input source file list file!!!"
exit 1;
fi
export rootdir
if [ ! -d "$rootdir" ];then
echo "rootdir is not dir"
exit 1;
fi
cmddir=`pwd`
echo $rootdir
cat /dev/null > sys.txt
cat /dev/null > compileok.txt
cat /dev/null > cmd.txt
ALLINC="-I \
/BeTRAN/include/"
cd $cmddir
rm -f log/*.txt
if [ ! -d "$cmddir/mak/" ];then
cd $cmddir
mkdir mak
fi
cd $cmddir
rm -f mak/*.mak
cmdR="xlc"
CFLAG="-c -qsuppress=1506-342"
INCFLAG="-I"
cat $2 |while read line
do
file="$rootdir/$line"
filename=`basename "$file"`
dirname=`dirname "$file"`
echo commpar:$file
if [ ! -f "$file" ];then
echo "$file" >>$cmddir/sys.txt
echo "$file is not file" >$cmddir/log/$filename.txt
cat $cmddir/log/$filename.txt
sleep 10
else
cd $dirname
echo path:`pwd`
echo "$filename.o : $file">$cmddir/mak/$filename.mak
echo " cd $dirname; $cmdR $CFLAG $INCFLAG../inc/ $ALLINC $file">>$cmddir/mak/$filename.mak
make -f $cmddir/mak/$filename.mak 2>> $cmddir/commpar.log
tfile=`cat $cmddir/commpar.log`
if [ "$tfile" = "" ];then
echo result :$file ok!!!
echo $file is ok!!! >>$cmddir/compileok.txt
echo "ok" >$cmddir/log/$filename.txt
else
cp $cmddir/commpar.log $cmddir/log/$filename.txt
fi
rm $cmddir/commpar.log
fi
done
分享到:
相关推荐
在CMD中启动MongoDB shell后,你可以开始进行数据库的操作。MongoDB中的数据库是数据的容器,集合(类似于传统数据库中的表)则是存储数据的地方。在MongoDB中,你不需要预先创建数据库和集合,当尝试向一个不存在的...
简化Debian系统配置的脚本及相关文件,脚本在博文《Shell 脚本小试牛刀 -- Debian系统初装后的各种配置》中有所介绍,希望大家多多支持
Bash是Unix和Linux操作系统中最常用的shell之一,其强大的功能支持使得Bash脚本成为自动化任务、数据处理等应用场景中的首选工具。 #### 第一部分 初见Shell ##### 1. 为什么使用shell编程 Shell脚本编程能够帮助...
shell: oh-my-zsh [*] 用 brew 安装 git, python [*]用 pip 安装 virtualenv Python 环境配置 使用 virtualenv 配置虚拟环境 github 使用 注册 github 帐户; 创建一个新项目; 添加一个 README.md 文件,并提交到...