automake 执行脚步,自动生成Makefile

参考文献:https://www.jianshu.com/p/2f5e586c3402
https://www.cnblogs.com/jeakeven/p/5546614.html
http://www.gnu.org/software/automake/manual/automake.html
细节内容不了解请点击上方链接,下方为脚步,简单修改可以用来编译库文件

#!/bin/sh

此脚本必须在工程根目录下执行

TARGET=server
SOURCE_FILE_TYPE=".cpp .cc"
INC_FILE_TYPE="
.h .hpp"
CROSS_COMPILE=
MAKEFILE_AM_PATH=Debug/makefile.am
LOCAL_PATH=$(pwd)
rm -rf autoscan.log aclocal.m4 config.
configure depcomp install-sh missing ltmain.sh m4 stamp-h1 autom4te.cache lib_log log conf
.file configure.ac compile

autoscan
mv configure.scan configure.ac
#修改点 server 为目标名 . 与TARGET一致
sed -i ‘8a\AM_INIT_AUTOMAKE(server, 1.0)’ configure.ac

#创建Debug目录是autoscan生成的configure.scan中的makefile文件指定到Debug目录中,强制修改会导致makefile.in无法生成
if [ ! -d Debug ]; then
mkdir Debug;
fi;

if [ ! -d m4 ]; then
mkdir m4;
fi;

generate_src_list()
{
echo “${TARGET}_SOURCES=\”;
for _SOURCE_FILE_TYPE in $SOURCE_FILE_TYPE
do
for SOURCE_FILE in find . -iname $_SOURCE_FILE_TYPE |grep -v "main.cpp" | sort -r
do
echo “.$SOURCE_FILE \”;
done;
done;
#echo “…/main.cpp”
echo .find -name "main.cpp"
echo
}

generate_inc_list()
{
echo “${TARGET}_CPPFLAGS=\”;
for _INC_FILE_TYPE in $INC_FILE_TYPE
do
for PATH_NAME in find . -iname $_INC_FILE_TYPE | sed 's/\/[A-Z_a-z0-9]*\.h$//g' | sed 's/\/[A-Z_a-z0-9]*\.hpp//g' | sort -u | grep -v "Debug\|^\.$\|\.pb\.h\.hpp"
do
echo “-I.$PATH_NAME \”;
done;
done;
echo “-I…”
}

echo “bindir=${prefix}/Debug” > $MAKEFILE_AM_PATH
echo
echo “bin_PROGRAMS = ${TARGET}” >> $MAKEFILE_AM_PATH
echo
generate_inc_list >> $MAKEFILE_AM_PATH
echo
generate_src_list >> $MAKEFILE_AM_PATH
echo

aclocal -I m4
autoheader
#libtoolize --force
automake --add-missing
autoconf
#一下内容可以手动执行,如果是要移植,请手动配置
CC=" C R O S S C O M P I L E g c c " C X X = " {CROSS_COMPILE}gcc" CXX=" CROSSCOMPILEgcc"CXX="{CROSS_COMPILE}g++" ./configure --prefix=pwd
if [ $? -ne 0 ]; then
echo “confiture error;”;
exit -1;
fi;

cd ${LOCAL_PATH}/Debug
#make clean;
make -j12 all;
if [ $? -ne 0 ]; then
echo “make error;”;
exit -1;
fi;

cd …

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值