⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ifnames.sh

📁 这是一个自动生成MAKEFILE的工具。在LINUX工程项目里是很好的帮手。希望对大家有点帮助。
💻 SH
字号:
#! @SHELL@# ifnames - print the identifiers used in C preprocessor conditionals# Copyright (C) 1994, 1995 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.# This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.# You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA# 02111-1307, USA.# Reads from stdin if no files are given.# Writes to stdout.# Written by David MacKenzie <djm@gnu.ai.mit.edu># and Paul Eggert <eggert@twinsun.com>.usage="\Usage: ifnames [-h] [--help] [-m dir] [--macrodir=dir] [--version] [file...]"show_version=no: ${AC_MACRODIR=@datadir@}while test $# -gt 0; do  case "$1" in   -h | --help | --h* )    echo "$usage"; exit 0 ;;  --macrodir=* | --m*=* )    AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"    shift ;;  -m | --macrodir | --m* )    shift    test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }    AC_MACRODIR="$1"    shift ;;  --version | --versio | --versi | --vers)    show_version=yes; shift ;;  --)     # Stop option processing.    shift; break ;;  -*) echo "$usage" 1>&2; exit 1 ;;  *) break ;;  esacdoneif test $show_version = yes; then  version=`sed -n 's/define.AC_ACVERSION.[ 	]*\([0-9.]*\).*/\1/p' \    $AC_MACRODIR/acgeneral.m4`  echo "Autoconf version $version"  exit 0fi@AWK@ '  # Record that sym was found in FILENAME.  function file_sym(sym,  i, fs) {    if (sym ~ /^[A-Za-z_]/) {      if (!found[sym,FILENAME]) {	found[sym,FILENAME] = 1	# Insert FILENAME into files[sym], keeping the list sorted.	i = 1	fs = files[sym] 	while (match(substr(fs, i), /^ [^ ]*/) \ 	       && substr(fs, i + 1, RLENGTH - 1) < FILENAME) { 	  i += RLENGTH	}	files[sym] = substr(fs, 1, i - 1) " " FILENAME substr(fs, i)      }    }  }  /^[\t ]*#/ {    if (sub(/^[\t ]*#[\t ]*ifn?def[\t ]+/, "", $0)) {      sub(/[^A-Za-z_0-9].*/, "", $0)      file_sym($0)    }    if (sub(/^[\t ]*#[\t ]*(el)?if[\t ]+/, "", $0)) {      # Remove comments.  Not perfect, but close enough.      gsub(/\/\*[^\/]*(\*\/)?/, "", $0)      for (i = split($0, field, /[^A-Za-z_0-9]+/);  1 <= i;  i--) {	if (field[i] != "defined") {	  file_sym(field[i])	}      }    }  }  END {    for (sym in files) {      print sym files[sym]    }  }' ${1+"$@"} | sort

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -