亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rules.c

?? 簡易MAKE程序的源代碼
?? C
字號:
/************************************************************************* * *  m a k e :   r u l e s . c * *  Control of the implicit suffix rules *======================================================================== * Edition history * *  #    Date                         Comments                       By * --- -------- ---------------------------------------------------- --- *   1    ??                                                         ?? *   2 01.07.89 $<,$* bugs fixed, impl. r. ending in expl. r. added  RAL *   3 23.08.89 suffix as macro, testname intr., algorithem to find *              source dep. made more intelligent (see Readme3)      RAL *   4 30.08.89 indention changed                                    PSH,RAL *   5 03.09.89 fixed LZ eliminated                                  RAL *   6 07.09.89 rules of type '.c', .DEFAULT added, dep. search impr.RAL * ------------ Version 2.0 released ------------------------------- RAL * *************************************************************************/#include "h.h"/* *	Dynamic dependency.  This routine applies the suffis rules *	to try and find a source and a set of rules for a missing *	target.  If found, np is made into a target with the implicit *	source name, and rules.  Returns TRUE if np was made into *	a target. */bool dyndep(np,pbasename,pinputname)struct name  *np;char        **pbasename;		/*  Name without suffix  */char        **pinputname;{  register char *p;  register char *q;  register char *suff;				/*  Old suffix  */  struct name   *op = (struct name *)0,*optmp;	/*  New dependent  */  struct name   *sp;				/*  Suffix  */  struct line   *lp,*nlp;  struct depend *dp,*ndp;  struct cmd    *cmdp;  char          *newsuff;  bool           depexists = FALSE;  p = str1;  q = np->n_name;  suff = suffix(q);  while (*q && (q < suff || !suff)) *p++ = *q++;  *p = '\0';  if ((*pbasename = (char *) malloc(strlen(str1)+1)) == (char *)0 )     fatal("No memory for basename",(char *)0,0);  strcpy(*pbasename,str1);  if ( !suff) suff = p - str1 + *pbasename;  /* set suffix to nullstring */  if (!((sp = newname(".SUFFIXES"))->n_flag & N_TARG))  return FALSE;  /* search all .SUFFIXES lines */  for (lp = sp->n_line; lp; lp = lp->l_next)     /* try all suffixes */     for (dp = lp->l_dep; dp; dp = dp->d_next) {        /* compose implicit rule name (.c.o)...*/        newsuff = dp->d_name->n_name;        while (strlen(suff)+strlen(newsuff)+1 >= str1s.len) strrealloc(&str1s);        p = str1;        q = newsuff;        while (*p++ = *q++) ;        p--;        q = suff;        while (*p++ = *q++) ;        /* look if the rule exists */        sp = newname(str1);        if (sp->n_flag & N_TARG) {           /* compose resulting dependency name */           while (strlen(*pbasename) + strlen(newsuff)+1 >= str1s.len)              strrealloc(&str1s);           q = *pbasename;           p = str1;           while (*p++ = *q++) ;           p--;           q = newsuff;           while (*p++ = *q++) ;           /* test if dependency file or an explicit rule exists */           if ((optmp= testname(str1)) != (struct name *)0) {              /* store first possible dependency as default */              if ( op == (struct name *)0) {                 op = optmp;                 cmdp = sp->n_line->l_cmd;              }              /* check if testname is an explicit dependency */              for ( nlp=np->n_line; nlp; nlp=nlp->l_next) {                 for( ndp=nlp->l_dep; ndp; ndp=ndp->d_next) {                    if ( strcmp( ndp->d_name->n_name, str1) == 0) {                       op = optmp;                       cmdp = sp->n_line->l_cmd;                       ndp = (struct depend *) 0;                       goto found2;                    }                    depexists = TRUE;                 }              }              /* if no explicit dependencies : accept testname */              if (!depexists)  goto found;           }        }     }  if ( op == (struct name *)0) {     if( np->n_flag & N_TARG) {     /* DEFAULT handling */        if (!((sp = newname(".DEFAULT"))->n_flag & N_TARG))  return FALSE;        if (!(sp->n_line)) return FALSE;        cmdp = sp->n_line->l_cmd;        for ( nlp=np->n_line; nlp; nlp=nlp->l_next) {           if ( ndp=nlp->l_dep) {              op = ndp->d_name;              ndp = (struct depend *)0;              goto found2;           }        }        newline(np, (struct depend *)0, cmdp, 0);        *pinputname = (char *)0;        *pbasename  = (char *)0;        return TRUE;     }  else return FALSE;  }found:  ndp = newdep(op, (struct depend *)0);found2:  newline(np, ndp, cmdp, 0);  *pinputname = op->n_name;  return TRUE;}/* *	Make the default rules */void makerules(){  struct cmd    *cp;  struct name   *np;  struct depend *dp;#ifdef eon  setmacro("BDSCC", "asm");  /*	setmacro("BDSCFLAGS", "");	*/  cp = newcmd("$(BDSCC) $(BDSCFLAGS) -n $<", (struct cmd *)0);  np = newname(".c.o");  newline(np, (struct depend *)0, cp, 0);  setmacro("CC", "c");  setmacro("CFLAGS", "-O");  cp = newcmd("$(CC) $(CFLAGS) -c $<", (struct cmd *)0);  np = newname(".c.obj");  newline(np, (struct depend *)0, cp, 0);  setmacro("M80", "asm -n");  /*	setmacro("M80FLAGS", "");	*/  cp = newcmd("$(M80) $(M80FLAGS) $<", (struct cmd *)0);  np = newname(".mac.o");  newline(np, (struct depend *)0, cp, 0);  setmacro("AS", "zas");  /*	setmacro("ASFLAGS", "");	*/  cp = newcmd("$(ZAS) $(ASFLAGS) -o $@ $<", (struct cmd *)0);  np = newname(".as.obj");  newline(np, (struct depend *)0, cp, 0);  np = newname(".as");  dp = newdep(np, (struct depend *)0);  np = newname(".obj");  dp = newdep(np, dp);  np = newname(".c");  dp = newdep(np, dp);  np = newname(".o");  dp = newdep(np, dp);  np = newname(".mac");  dp = newdep(np, dp);  np = newname(".SUFFIXES");  newline(np, dp, (struct cmd *)0, 0);#endif#ifdef tos#define unix#endif/* *	Some of the UNIX implicit rules */#ifdef unix  setmacro("CC", "cc");  setmacro("CFLAGS", "");  cp = newcmd("$(CC) -S $(CFLAGS) $<", (struct cmd *)0);  np = newname(".c.s");  newline(np, (struct depend *)0, cp, 0);  cp = newcmd("$(CC) -c $(CFLAGS) $<", (struct cmd *)0);  np = newname(".c.o");  newline(np, (struct depend *)0, cp, 0);#if this_rule_is_a_bit_too_much_of_a_good_thing#ifdef MINIXPC  cp = newcmd("$(CC) $(CFLAGS) -i -o $@ $<", (struct cmd *)0);#else  cp = newcmd("$(CC) $(CFLAGS) -o $@ $<", (struct cmd *)0);#endif /* MINIXPC */  np = newname(".c");  newline(np, (struct depend *)0, cp, 0);#endif  cp = newcmd("$(CC) -c $(CFLAGS) $<", (struct cmd *)0);  np = newname(".s.o");  newline(np, (struct depend *)0, cp, 0);  setmacro("YACC", "yacc");  /*setmacro("YFLAGS", "");	*/  cp = newcmd("$(YACC) $(YFLAGS) $<", (struct cmd *)0);  cp = newcmd("mv y.tab.c $@", cp);  np = newname(".y.c");  newline(np, (struct depend *)0, cp, 0);  cp = newcmd("$(YACC) $(YFLAGS) $<", (struct cmd *)0);  cp = newcmd("$(CC) $(CFLAGS) -c y.tab.c", cp);  cp = newcmd("mv y.tab.o $@", cp);  np = newname(".y.o");  cp = newcmd("rm y.tab.c", cp);  newline(np, (struct depend *)0, cp, 0);  setmacro("FLEX", "flex");  cp = newcmd("$(FLEX) $(FLEX_FLAGS) $<", (struct cmd *)0);  cp = newcmd("mv lex.yy.c $@", cp);  np = newname(".l.c");  newline(np, (struct depend *)0, cp, 0);  cp = newcmd("$(FLEX) $(FLEX_FLAGS) $<", (struct cmd *)0);  cp = newcmd("$(CC) $(CFLAGS) -c lex.yy.c", cp);  cp = newcmd("mv lex.yy.o $@", cp);  np = newname(".l.o");  cp = newcmd("rm lex.yy.c", cp);  newline(np, (struct depend *)0, cp, 0);  np = newname(".o");  dp = newdep(np, (struct depend *)0);  np = newname(".s");  dp = newdep(np, dp);  np = newname(".c");  dp = newdep(np, dp);  np = newname(".y");  dp = newdep(np, dp);  np = newname(".l");  dp = newdep(np, dp);  np = newname(".SUFFIXES");  newline(np, dp, (struct cmd *)0, 0);#endif /* unix */#ifdef os9/* *	Fairlight use an enhanced version of the C sub-system. *	They have a specialised macro pre-processor. */  setmacro("CC", "cc");  setmacro("CFLAGS", "-z");  cp = newcmd("$(CC) $(CFLAGS) -r $<", (struct cmd *)0);  np = newname(".c.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".ca.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".a.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".o.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".mc.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".mca.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".ma.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".mo.r");  newline(np, (struct depend *)0, cp, 0);  np = newname(".r");  dp = newdep(np, (struct depend *)0);  np = newname(".mc");  dp = newdep(np, dp);  np = newname(".mca");  dp = newdep(np, dp);  np = newname(".c");  dp = newdep(np, dp);  np = newname(".ca");  dp = newdep(np, dp);  np = newname(".ma");  dp = newdep(np, dp);  np = newname(".mo");  dp = newdep(np, dp);  np = newname(".o");  dp = newdep(np, dp);  np = newname(".a");  dp = newdep(np, dp);  np = newname(".SUFFIXES");  newline(np, dp, (struct cmd *)0, 0);#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品网址| 日韩美女精品在线| 欧美日韩激情一区二区| 久久免费看少妇高潮| 一区二区三区在线视频免费 | 久久久国产一区二区三区四区小说| 亚洲黄色小说网站| 国产成人免费网站| 9191成人精品久久| 亚洲一二三区视频在线观看| av一区二区不卡| 久久久精品影视| 韩国av一区二区三区| 日韩亚洲欧美在线观看| 亚洲成人tv网| 欧美日韩情趣电影| 亚洲在线观看免费视频| 一本到不卡精品视频在线观看| 国产欧美一区二区精品性| 韩国中文字幕2020精品| 欧美va天堂va视频va在线| 日韩av二区在线播放| 这里只有精品99re| 日韩高清一区在线| 欧美一级生活片| 久久福利资源站| 精品国产乱码久久久久久免费| 日韩成人av影视| 欧美一区二区三区四区在线观看 | 亚洲一线二线三线久久久| 91麻豆免费视频| 亚洲蜜臀av乱码久久精品蜜桃| 成人丝袜视频网| 《视频一区视频二区| 成人激情小说乱人伦| 亚洲国产精品高清| 99国产精品国产精品毛片| 亚洲色图清纯唯美| 欧美私模裸体表演在线观看| 日韩中文字幕区一区有砖一区| 欧美日韩精品一区视频| 免费成人在线影院| 久久久精品综合| 91浏览器在线视频| 午夜精品影院在线观看| 欧美一级高清片| 黄色日韩网站视频| 欧美激情一区二区三区四区| 高清视频一区二区| 国产99一区视频免费| 国产精品久久久久影院亚瑟 | www.av精品| 成人欧美一区二区三区小说| 色综合天天性综合| 亚洲成av人影院| 精品免费国产二区三区| av成人动漫在线观看| 亚洲一二三四区| 精品少妇一区二区三区免费观看| 国产精品白丝av| 亚洲综合视频网| 欧美mv日韩mv| 91官网在线观看| 狠狠色综合色综合网络| 综合久久久久久久| 精品日本一线二线三线不卡| 成人sese在线| 欧美日韩在线电影| 日本在线播放一区二区三区| 久久精品在线观看| 在线免费不卡视频| 黑人巨大精品欧美黑白配亚洲| 成人免费小视频| 欧美哺乳videos| 日本久久一区二区三区| 激情另类小说区图片区视频区| 亚洲色图视频网| 国产亚洲精品aa| 欧美久久久久中文字幕| 成人性生交大合| 蜜桃av一区二区| 亚洲综合精品久久| 国产精品全国免费观看高清 | 91精品国模一区二区三区| 成人免费观看视频| 久久精品国内一区二区三区| 亚洲精品乱码久久久久| 国产精品免费视频一区| 日韩精品一区二| 欧美日韩高清一区二区三区| 91网站黄www| 成人中文字幕合集| 国产一区二区三区美女| 日本伊人色综合网| 亚洲国产一二三| 一区二区在线观看视频| 中文字幕制服丝袜一区二区三区| 欧美大片一区二区| 91精品国产一区二区三区| 欧美系列日韩一区| 91老师片黄在线观看| 成人小视频在线观看| 国产精品一区二区果冻传媒| 久久91精品久久久久久秒播| 蜜桃av一区二区| 美女免费视频一区| 九九久久精品视频| 欧美日韩国产乱码电影| 99综合影院在线| 粉嫩高潮美女一区二区三区| 国产伦理精品不卡| 国产乱理伦片在线观看夜一区| 麻豆免费看一区二区三区| 婷婷夜色潮精品综合在线| 亚洲小少妇裸体bbw| 亚洲精品一二三四区| 一区二区三区成人在线视频| 中文字幕第一区| 国产精品久久夜| 国产精品美女久久久久aⅴ| 中文字幕av一区二区三区免费看| 中文欧美字幕免费| 中文字幕一区免费在线观看| 中文字幕在线不卡一区| 亚洲三级免费电影| 亚洲国产精品嫩草影院| 亚洲不卡在线观看| 蜜臀久久99精品久久久久久9| 精品一区二区三区免费观看| 国产精品一二三四| 99久久亚洲一区二区三区青草| 91丨porny丨在线| 欧美日韩精品一区二区三区蜜桃 | 久久欧美一区二区| 国产精品理伦片| 一区二区成人在线视频| 视频一区视频二区中文字幕| 久久超碰97人人做人人爱| 国产成人综合亚洲91猫咪| 波多野结衣欧美| 精品视频在线免费看| 日韩一二三区不卡| 国产精品久久久久影院老司| 亚洲成a天堂v人片| 国产精品资源在线看| 色菇凉天天综合网| 欧美日韩国产系列| 国产日韩欧美综合一区| 一区二区激情视频| 国内久久精品视频| 在线观看亚洲专区| 欧美精品一区二区三区在线播放| 国产精品久久综合| 蜜臀久久99精品久久久画质超高清| 国产美女在线观看一区| 欧美性xxxxxx少妇| 国产精品欧美久久久久无广告| 亚洲一区二区中文在线| 国产成人夜色高潮福利影视| 欧美日韩一区二区欧美激情| 国产亚洲成av人在线观看导航| 亚洲精品ww久久久久久p站| 国产一区二区伦理片| 欧美系列亚洲系列| 中文字幕一区二区三区乱码在线| 青青草97国产精品免费观看| 91免费观看视频| 国产欧美综合在线观看第十页| 蜜桃av一区二区在线观看| 日韩一区二区免费在线电影 | 欧美色视频在线| 国产亚洲一区二区三区四区| 悠悠色在线精品| va亚洲va日韩不卡在线观看| 精品黑人一区二区三区久久 | 日韩一区二区三区三四区视频在线观看| 久久精品男人的天堂| 日韩av电影免费观看高清完整版在线观看| 国产毛片精品视频| 欧美videos中文字幕| 日韩国产欧美三级| 欧美影院精品一区| 日韩伦理av电影| 粉嫩一区二区三区性色av| 精品国产乱子伦一区| 久久精品国产77777蜜臀| 欧美丝袜自拍制服另类| 一区二区三区波多野结衣在线观看| 丁香一区二区三区| 久久精品一区二区三区不卡| 日韩av中文字幕一区二区三区| 欧美亚一区二区| 一区二区三区国产精华| 久久精品一区八戒影视| 国内精品免费在线观看| 日韩视频一区在线观看| 奇米一区二区三区av| 欧美一区二区三区视频免费 | 亚洲一区二区不卡免费| 91久久精品一区二区三|