##----------------------------------------------------------## ## ## ## Universal Makefile Indenting fuction ## ## ## ## Created : Wei Liu 07/04/30 ## ## Revision: [Last]Wei Liu 07/07/07 ## ## ## ##----------------------------------------------------------## ##-------------------------------------- ## ## Make indenting program flags ## ##-------------------------------------- ##-bad或--blank-lines-after-declarations  在声明区段后加上空白行。 BAD_FLAG := ##-bad ##-bap或--blank-lines-after-procedures  在程序后加上空白行。 BAP_FLAG := ##-bap ##-bbb或--blank-lines-after-block-comments  在注释区段後加上空白行。 BBB_FLAG := ##-bbb ##--break-before-boolean-operator bbo 较长的行,在逻辑运算符前分行 BBO_FLAG := ##-bc或--blank-lines-after-commas  在声明区段中,若出现逗号即换行。 BC_FLAG := ##-bl或--braces-after-if-line  if(或是else,for等等)与後面执行区段的"{"自成一行。 BL_FLAG := -bl ##-bli<缩排格数>或--brace-indent<缩排格数>  设置{}缩排的格数。 BLI_FLAG := -bli4 ##--braces-after-struct-decl-line bls 定义结构,"struct"和"{"分行 BLS_FLAG := -bls ##-br或--braces-on-if-line  if(或是else,for等等)与後面执行跛段的"{"自成一行。 BR_FLAG := ##-bs或--blank-before-sizeof  在sizeof之後空一格。 BS_FLAG := ##`-cbin' ##`--case-brace-indentationn' ##Indent braces after a case label N spaces. CBI_FLAG := -cbi5 ##-c<栏数>或--comment-indentation<栏数>  将注释置于程序码右侧指定的栏位。 CW_FLAG := -c33 ##-cd<栏数>或--declaration-comment-column<栏数>  将注释置于声明右侧指定的栏位。 CD_FLAG := -cd33 ##-cdb或--comment-delimiters-on-blank-lines  注释符号自成一行。 CDB_FLAG := ##-ce或--cuddle-else  将else置于"}"(if执行区段的结尾)之後。 CE_FLAG := ##-ci<缩排格数>或--continuation-indentation<缩排格数>  叙述过长而换行时,指定换行後缩排的格数。 CI_FLAG := ##-ci4 ##-cli<缩排格数>或--case-indentation-<缩排格数>  使用case时,switch缩排的格数。 CLI_FLAG := -cli0 ##-cp<栏数>或-else-endif-column<栏数>  将注释置于else与elseif叙述右侧定的栏位。 CP_FLAG := -cp33 ##-cs或--space-after-cast  在cast之後空一格。 CS_FLAG := -cs ##-d<缩排格数>或-line-comments-indentation<缩排格数>  针对不是放在程序码右侧的注释,设置其缩排格数。 D_FLAG := ##-d0 ##-di<栏数>或--declaration-indentation<栏数>  将声明区段的变量置于指定的栏位。 DI_FLAG := ##-di4 ##-fc1或--format-first-column-comments  针对放在每行最前端的注释,设置其格式。 FC1_FLAG := -fc1 ##-fca或--format-all-comments  设置所有注释的格式。 FCA_FLAG := ##-gnu或--gnu-style  指定使用GNU的格式,此为预设值。 GNU_FLAG := ##-kr或--k-and-r-style  指定使用Kernighan&Ritchie的格式。 KR_FLAG := ##-orig或--original  使用Berkeley的格式。 ORG_STYLE := ##-i<格数>或--indent-level<格数>  设置缩排的格数。 I_FLAG := -i4 ##-ip<格数>或--parameter-indentation<格数>  设置参数的缩排格数。 IP_FLAG := -ip4 ##--line-length 75 l75 非注释行最长75 LINE_FLAG := ##`-lcn' ##`--comment-line-lengthn' ##Set maximum line length for comment formatting to n. LCN_FLAG := ##`-lps' ##`--leave-preprocessor-space' ##Leave space between `#' and preprocessor directive. LPS_FLAG := ##-lp或--continue-at-parentheses  叙述过长而换行,且叙述中包含了括号时,将括号中的每行起始栏位内容垂直对其排列。 LP_FLAG := ##--break-function-decl-args nbfda 关闭:函数的参数一个一行 NBFDA_FLAG := -nbfda ##-nbad或--no-blank-lines-after-declarations  在声明区段後不要加上空白行。 NBAD_FLAG := ##-nbap或--no-blank-lines-after-procedures  在程序後不要加上空白行。 NBAP_FLAG := ##-nbbb或--no-blank-lines-after-block-comments  在注释区段後不要加上空白行。 NBBB_FLAG := ##-nbc或--no-blank-lines-after-commas  在声明区段中,即使出现逗号,仍旧不要换行。 NBC_FLAG := -nbc ##-ncdb或--no-comment-delimiters-on-blank-lines  注释符号不要自成一行。 NCBD_FLAG := -ncdb ##--cuddle-do-while ncdw "do --- while"的"while"和其前面的"}"另起一行 NCDW_FLAG := -ncdw ##-nce或--dont-cuddle-else  不要将else置于"}"之後。 NCE_FLAG := ##-nce ##-ncs或--no-space-after-casts  不要在cast之後空一格。 NCS_FLAG := ##-nfc1或--dont-format-first-column-comments  不要格式化放在每行最前端的注释。 NFC1_FLAG := ##-nfca或--dont-format-comments  不要格式化任何的注释。 NFCA_FLAG := -nfca ##--honour-newlines hnl Prefer to break long lines at the position of newlines in the input HNL_FLAG := -hnl ##-nip或--no-parameter-indentation  参数不要缩排。 NIP_FLAG := ##-nlp或--dont-line-up-parentheses  叙述过长而换行,且叙述中包含了括号时,不用将括号中的每行起始栏位垂直对其排列。 NLP_FLAG := ##-npcs或--no-space-after-function-call-names  在调用的函数名称之後,不要加上空格。 NPCS_FLAG := ##-npro或--ignore-profile  不要读取indent的配置文件.indent.pro。 NPRO_FLAG := -npro ##-nprs或--space-after-procedure-calls  在"("后")"前不插入空格 。 NPRS_FLAG := -nprs ##-npsl或--dont-break-procedure-type  程序类型与程序名称放在同一行。 NPSL_FLAG := -npsl ##--space-after-for saf for后面有空格 SAF_FLAG := -saf ##--space-after-if sai if后面有空格 SAI_FLAG := -sai ##--space-after-while saw while后面有空格 SAW_FLAG := -saw ##-nsc或--dont-star-comments  注解左侧不要加上星号(*)。 NSC_FLAG := -nsc ##-nsob或--leave-optional-semicolon  不用处理多馀的空白行。 NSOB_FLAG := ##-nss或--dont-space-special-semicolon  若for或while区段仅有一行时,在分号前不加上空格。 NSS_FLAG := -nss ##-nv或--no-verbosity  不显示详细的信息。 NV_FLAG := -nv ##`-nut' ##`--no-tabs' ##Use spaces instead of tabs. NUT_FLAG := ##-nut ##-pcs或--space-after-procedure-calls  在调用的函数名称与"("之间加上空格。 PCS_FLAG := -pcs ##`-prs' ##`--space-after-parentheses' ##Put a space after every '(' and before every ')'. PRS_FLAG := ##`-pin' ##`--paren-indentationn' ##Specify the extra indentation per open parentheses '(' when a statement is broken. PI_FLAG := ##-pi4 ##-psl或--procnames-start-lines  程序类型置于程序名称的前一行。 PSL_FLAG := ##-sc或--start-left-side-of-comments  在每行注释左侧加上星号(*)。 SC_FLAG := ##-sob或--swallow-optional-blank-lines  删除多馀的空白行。 SOB_FLAG := -sob ## -sbin, --struct-brace-indentationn ## Indent braces of a struct, union or enum N spaces. SBI_FLAGE := -sbi4 ##-ss或--space-special-semicolon  若for或swile区段今有一行时,在分号前加上空格。 SS_FLAG := -ss ##-st或--standard-output  将结果显示在标准输出设备。 ST_FLAG := ##-T  数据类型名称缩排。 T_FLAG := -T ##-ts<格数>或--tab-size<格数>  设置tab的长度。 TS_FLAG := -ts4 ##-ts4 ##--use-tabs ut 使用tab来缩进 UT_FLAG := -ut ##-ut ##-v或--verbose  执行时显示详细的信息。 V_FLAG := -v ##-version  显示版本信息。 VER_FLAG := ##未实现的风格: ##1,()与变量间加空格 (以实现) ##2, else 独立成行 ##3, 注释缩进 ##4,每个函数前加注释段 ## indent flags ## -bad -bap -bbb -bbo -bl -bli4 -bls -bs -c33 -cd33 -ce -ci4 -cli0 ## -cp33 -cs -d0 -di4 -fc1 -hnl -i4 -ip4 -lp -nbc -ncdb -nbfda -ncdw ## -nfc1 -nfca -npro -npsl -nsc -nv -pcs -saf -sai -saw -sob -ss -T -ts4 -ut INDENT_FLAGS1 := $(GNU_FLAG) \ $(KR_FLAG) \ $(ORG_STYLE) \ $(BAD_FLAG) \ $(BAP_FLAG) \ $(BBB_FLAG) \ $(BBO_FLAG) \ $(BC_FLAG) \ $(BL_FLAG) \ $(BLI_FLAG) \ $(BLS_FLAG) \ $(BR_FLAG) \ $(BS_FLAG) \ $(CBI_FLAG) \ $(CW_FLAG) \ $(CD_FLAG) \ $(CDB_FLAG) \ $(CE_FLAG) \ $(CI_FLAG) \ $(CLI_FLAG) \ $(CP_FLAG) \ $(CS_FLAG) \ $(D_FLAG) \ $(DI_FLAG) \ $(FC1_FLAG) \ $(FCA_FLAG) \ $(HNL_FLAG) \ $(I_FLAG) \ $(IP_FLAG) \ $(LINE_FLAG ) \ $(LP_FLAG) \ $(NBAD_FLAG) \ $(NBAP_FLAG) \ $(NBBB_FLAG) \ $(NBC_FLAG) \ $(NCBD_FLAG) \ $(NBFDA_FLAG) \ $(NCDW_FLAG) \ $(NCE_FLAG) \ $(NCS_FLAG) \ $(NFC1_FLAG) \ $(NFCA_FLAG) \ $(NIP_FLAG) \ $(NLP_FLAG) \ $(NPCS_FLAG) \ $(NPRO_FLAG) \ $(NPRS_FLAG) \ $(NPSL_FLAG) \ $(NSC_FLAG) \ $(NSOB_FLAG) \ $(NSS_FLAG) \ $(NV_FLAG) \ $(PCS_FLAG) \ $(PI_FLAG) \ $(PSL_FLAG) \ $(PRS_FLAG) \ $(SAF_FLAG) \ $(SAI_FLAG) \ $(SAW_FLAG) \ $(SBI_FLAGE) \ $(SC_FLAG) \ $(SOB_FLAG) \ $(SS_FLAG) \ $(ST_FLAG) \ $(T_FLAG) \ $(TS_FLAG) \ $(UT_FLAG) \ $(V_FLAG) \ $(VER_FLAG) \ $(NUT_FLAG) INDENT_FLAGS = -kr -i4 ##$(warning $(INDENT_FLAGS) $(1)) ##-------------------------------------- ## ## MAKE_INDENT template ## ##------------------------------------ define INDENT_FILE indent $(INDENT_FLAGS) $(1) endef define MAKE_INDENT @echo @echo "[Indent flags ]: $(INDENT_FLAGS)" @echo "" $(foreach file,$(1),$(call INDENT_FILE, $(file))) @echo @echo ===================================Indent End=================================== endef