Annotation of embedaddon/php/build/mkdep.awk, revision 1.1.1.2

1.1       misho       1: #  +----------------------------------------------------------------------+
                      2: #  | PHP Version 5                                                        |
                      3: #  +----------------------------------------------------------------------+
                      4: #  | Copyright (c) 2000-2006 The PHP Group                                |
                      5: #  +----------------------------------------------------------------------+
                      6: #  | This source file is subject to version 3.01 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_01.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: #
1.1.1.2 ! misho      17: # $Id$
1.1       misho      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: } 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>