"Fossies" - the Fresh Open Source Software Archive

Member "dbg-2.15.5/build/mkdep.awk" (2 Aug 2006, 2274 Bytes) of package /linux/www/old/dbg-2.15.5.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) (G)AWK source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 #  +----------------------------------------------------------------------+
    2 #  | PHP Version 5                                                        |
    3 #  +----------------------------------------------------------------------+
    4 #  | Copyright (c) 2000-2004 The PHP Group                                |
    5 #  +----------------------------------------------------------------------+
    6 #  | This source file is subject to version 3.0 of the PHP license,       |
    7 #  | that is bundled with this package in the file LICENSE, and is        |
    8 #  | available through the world-wide-web at the following url:           |
    9 #  | http://www.php.net/license/3_0.txt.                                  |
   10 #  | If you did not receive a copy of the PHP license and are unable to   |
   11 #  | obtain it through the world-wide-web, please send a note to          |
   12 #  | license@php.net so we can mail you a copy immediately.               |
   13 #  +----------------------------------------------------------------------+
   14 #  | Author: Sascha Schumann <sascha@schumann.cx>                         |
   15 #  +----------------------------------------------------------------------+
   16 #
   17 # $Id: mkdep.awk,v 1.7 2004/01/08 17:31:49 sniper Exp $
   18 #
   19 # Usage:
   20 #
   21 # echo top_srcdir top_builddir srcdir CPP [CPP-ARGS] filenames | \
   22 #      awk -f mkdep.awk > dependencies
   23 
   24 
   25 {
   26     top_srcdir=$1
   27     top_builddir=$2
   28     srcdir=$3
   29     cmd=$4
   30 
   31     for (i = 5; i <= NF; i++) {
   32         if (match($i, "^-[A-Z]") == 0)
   33             break;
   34         cmd=cmd " " $i
   35     }
   36 
   37     dif=i-1
   38         
   39     for (; i <= NF; i++)
   40         filenames[i-dif]=$i
   41     
   42     no_files=NF-dif
   43     
   44     for(i = 1; i <= no_files; i++) {
   45         if (system("test -r " filenames[i]) != 0)
   46             continue
   47         
   48         target=filenames[i]
   49         sub(srcdir "/", "", target)
   50         target2=target
   51         sub("\.(c|cpp)$", ".lo", target);
   52         sub("\.(c|cpp)$", ".slo", target2);
   53 
   54         for (e in used)
   55             delete used[e]
   56         
   57         cmdx=cmd " " filenames[i]
   58         done=0
   59         while ((cmdx | getline) > 0) {
   60             if (match($0, "^# [0-9]* \".*\.h\"") != 0) {
   61                 if (sub(top_srcdir, "$(top_srcdir)", $3) == 0)
   62                     sub(top_builddir, "$(top_builddir)", $3)
   63                 if (substr($3,2,1) != "/" && used[$3] != 1) {
   64                     if (done == 0)
   65                         printf(target " " target2 ":")
   66                     done=1
   67                     printf(" \\\n\t" substr($3,2,length($3)-2))
   68                     used[$3] = 1;
   69                 }   
   70             }
   71         }
   72         if (done == 1)
   73             print "\n"
   74     }
   75 }