#/bin/bash
#***************************************************************************
# 第一个参数为文件名
#
#
###########################################################################
typeset -u HEAD
HEAD=$1_H
#遍历参数
for param in $@
do
case "$param" in
"DEBUG" )
DEBUG=1
echo "DEBUG=$DEBUG"
;;
"BOOL" )
BOOL=1
echo "BOOL=$BOOL"
;;
* )
echo "unknown $param"
;;
esac
done
#***************************************************************************
#产生.h文件
###########################################################################
echo "/******************************************************************************
File Name : $1.h
Description :
******************************************************************************/
#ifndef $HEAD
#define $HEAD
#ifdef __cplusplus
#if __cplusplus
extern \"C\" {
#endif /* __cpluscplus */
#endif /* __cpluscplus */
" > $1.h
#***************************************************************************
#调试宏定义
###########################################################################
if [ $DEBUG ] ; then
echo "
#define DEBUG
#ifndef RT_PRINT
#define RT_PRINT printf
#define RT_DBG_HEADER_FORMAT \"File[%s] Func[%s] Line[%d] Info: \"
#define RT_DBG_HEADER_ARGS __FILE__, __FUNCTION__, __LINE__
#define RT_DBG_NONE \"\\033[0m\"
#define RT_DBG_BLACK \"\\033[0;30m\"
#define RT_DBG_DARK_GRAY \"\\033[1;30m\"
#define RT_DBG_BLUE \"\\033[0;34m\"
#define RT_DBG_LIGHT_BLUE \"\\033[1;34m\"
#define RT_DBG_GREEN \"\\033[0;32m\"
#define RT_DBG_LIGHT_GREEN \"\\033[1;32m\"
#define RT_DBG_CYAN \"\\033[0;36m\"
#define RT_DBG_LIGHT_CYAN \"\\033[1;36m\"
#define RT_DBG_RED \"\\033[0;31m\"
#define RT_DBG_LIGHT_RED \"\\033[1;31m\"
#define RT_DBG_PURPLE \"\\033[0;35m\"
#define RT_DBG_LIGHT_PURPLE \"\\033[1;35m\"
#define RT_DBG_BROWN \"\\033[0;33m\"
#define RT_DBG_YELLOW \"\\033[1;33m\"
#define RT_DBG_LIGHT_GRAY \"\\033[0;37m\"
#define RT_DBG_WHITE \"\\033[1;37m\"
#ifdef DEBUG
#define RT_INFO_PRINT( fmt,...) \\
do\\
{\\
RT_PRINT(RT_DBG_GREEN);\\
RT_PRINT(RT_DBG_HEADER_FORMAT, RT_DBG_HEADER_ARGS);\\
RT_PRINT(fmt, ##__VA_ARGS__);\\
RT_PRINT(RT_DBG_NONE);\\
}while (0)
#else
#define RT_INFO_PRINT( fmt,...)
#endif
#define RT_ERR_PRINT( fmt,...) \\
do\\
{\\
RT_PRINT(RT_DBG_RED);\\
RT_PRINT(RT_DBG_HEADER_FORMAT, RT_DBG_HEADER_ARGS);\\
RT_PRINT(fmt, ##__VA_ARGS__);\\
RT_PRINT(RT_DBG_NONE);\\
}while (0)
#endif
" >> $1.h
fi
if [ $BOOL ] ; then
echo "
typedef enum {
HI_FALSE = 0,
HI_TRUE = 1
} RT_BOOL;
" >> $1.h
fi
echo "
#ifndef NULL
#define NULL 0L
#endif
#define HI_NULL 0L
#define HI_NULL_PTR 0L
" >> $1.h
echo "
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cpluscplus */
#endif /* __cpluscplus */
#endif/*$HEAD*/
" >> $1.h
##########
#产生.c文件
#######
echo "
#include \"$1.h\"
" > $1.c
快速创建c文件脚本
最新推荐文章于 2024-07-12 12:21:27 发布