摘自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文件里面的内容就大功告成了。