linux下shell脚本自动生成编译信息

摘自asterisk源码里面,哈哈,开源项目就是好!!!

//把下面cat内容导出到build.h文件就是编译信息。

#!/bin/sh

HOSTNAME=`uname -n`
KERNEL=`uname -r`
MACHINE=`uname -m`
OS=`uname -s`
USER=`id | awk -F")" '{print $1}'| awk -F"(" '{print $2}'`
DATE=`date -u "+%Y-%m-%d %H:%M:%S"`
cat << END
#ifndef BUILD_H
#define BUILD_H
/*
 * build.h 
 * Automatically generated
 */
#define BUILD_HOSTNAME "${HOSTNAME}"
#define BUILD_KERNEL "${KERNEL}"
#define BUILD_MACHINE "${MACHINE}"
#define BUILD_OS "${OS}"
#define BUILD_DATE "${DATE} UTC"
#define BUILD_USER "${USER}"

#endif
END


在makefile里面执行这个脚本文件生成build.h。makefile文件中编译c文件之前加上下面一个目标即可:

build.h:

@./make_build_h > build.h

框架基本上有了,要添加什么都可以自己往上加。

在c文件中预先包含"build.h", 在编译其他c文件之前先makefile自动生成build.h,这时c文件获取build.h文件里面的内容就大功告成了。

你可能感兴趣的:(linux,C/C++语言编程)