Home | History | Annotate | Line # | Download | only in unit-tests
      1  1.4       sjg ${VAR} = "foo  bar baz"
      2  1.1  christos a
      3  1.1  christos b
      4  1.1  christos c
      5  1.1  christos foo baR baz,  bar baz, foo bar baz, fooadd baradd bazadd
      6  1.1  christos mkdir -p 'dir'
      7  1.1  christos touch 'dir/obj_1.h'
      8  1.1  christos mkdir -p 'dir'
      9  1.3       sjg printf '#include "obj_1.h"\nconst char* obj_1 = "dir/obj_1.c";\n' \
     10  1.1  christos     >'dir/obj_1.c'
     11  1.1  christos Local variables
     12  1.4       sjg  ${@}="dir/obj_1.o" ${<}="dir/obj_1.c"
     13  1.4       sjg  ${*}="dir/obj_1" ${?}="dir/obj_1.h dir/obj_1.c"
     14  1.4       sjg  ${%}=""
     15  1.1  christos 
     16  1.1  christos Directory and filename parts of local variables
     17  1.4       sjg  ${@D}="dir" ${@F}="obj_1.o"
     18  1.4       sjg  ${<D}="dir" ${<F}="obj_1.c"
     19  1.4       sjg  ${*D}="dir" ${*F}="obj_1"
     20  1.4       sjg  ${?D}="dir dir" ${?F}="obj_1.h obj_1.c"
     21  1.4       sjg  ${%D}="" ${%F}=""
     22  1.1  christos 
     23  1.1  christos Local variable substitutions
     24  1.4       sjg  ${@:.o=}="dir/obj_1" ${<:.c=.C}="dir/obj_1.C"
     25  1.4       sjg  ${*:=.h}="dir/obj_1.h" ${?:.h=.H}="dir/obj_1.H dir/obj_1.c"
     26  1.4       sjg  ${%:=}=""
     27  1.1  christos 
     28  1.1  christos Target with suffix transformations
     29  1.4       sjg  ${@D:=append}="dirappend"
     30  1.4       sjg  ${@F:.o=.O}="obj_1.O"
     31  1.1  christos 
     32  1.1  christos  Implied source with suffix transformations
     33  1.4       sjg  ${<D:r=rr}="dirr"
     34  1.4       sjg  ${<F:.c=.C}="obj_1.C"
     35  1.1  christos 
     36  1.1  christos  Suffixless target with suffix transformations
     37  1.4       sjg  ${*D:.=dot}="dir"
     38  1.4       sjg  ${*F:.a=}="obj_1"
     39  1.1  christos 
     40  1.1  christos  Out-of-date dependencies with suffix transformations
     41  1.4       sjg  ${?D:ir=}="d d"
     42  1.4       sjg  ${?F:.h=.H}="obj_1.H obj_1.c"
     43  1.1  christos 
     44  1.1  christos  Member with suffix transformations
     45  1.4       sjg  ${%D:.=}=""
     46  1.4       sjg  ${%F:${VAR2}=${VAR}}=""
     47  1.1  christos 
     48  1.1  christos cc -c -o 'dir/obj_1.o' 'dir/obj_1.c'
     49  1.1  christos mkdir -p '.'
     50  1.1  christos touch 'dummy'
     51  1.1  christos Local variables
     52  1.4       sjg  ${@}="lib.a" ${<}="dir/obj_1.o"
     53  1.4       sjg  ${*}="obj1" ${?}="dir/obj_1.o dummy"
     54  1.4       sjg  ${%}="obj1.o"
     55  1.1  christos 
     56  1.1  christos Directory and filename parts of local variables
     57  1.4       sjg  ${@D}="." ${@F}="lib.a"
     58  1.4       sjg  ${<D}="dir" ${<F}="obj_1.o"
     59  1.4       sjg  ${*D}="." ${*F}="obj1"
     60  1.4       sjg  ${?D}="dir ." ${?F}="obj_1.o dummy"
     61  1.4       sjg  ${%D}="." ${%F}="obj1.o"
     62  1.1  christos 
     63  1.1  christos Local variable substitutions
     64  1.4       sjg  ${@:.o=}="lib.a" ${<:.c=.C}="dir/obj_1.o"
     65  1.4       sjg  ${*:=.h}="obj1.h" ${?:.h=.H}="dir/obj_1.o dummy"
     66  1.4       sjg  ${%:=}="obj1.o"
     67  1.1  christos 
     68  1.1  christos Target with suffix transformations
     69  1.4       sjg  ${@D:=append}=".append"
     70  1.4       sjg  ${@F:.o=.O}="lib.a"
     71  1.1  christos 
     72  1.1  christos  Implied source with suffix transformations
     73  1.4       sjg  ${<D:r=rr}="dirr"
     74  1.4       sjg  ${<F:.c=.C}="obj_1.o"
     75  1.1  christos 
     76  1.1  christos  Suffixless target with suffix transformations
     77  1.4       sjg  ${*D:.=dot}="dot"
     78  1.4       sjg  ${*F:.a=}="obj1"
     79  1.1  christos 
     80  1.1  christos  Out-of-date dependencies with suffix transformations
     81  1.4       sjg  ${?D:ir=}="d ."
     82  1.4       sjg  ${?F:.h=.H}="obj_1.o dummy"
     83  1.1  christos 
     84  1.1  christos  Member with suffix transformations
     85  1.4       sjg  ${%D:.=}=""
     86  1.4       sjg  ${%F:${VAR2}=${VAR}}="obj1foo  bar baz"
     87  1.1  christos 
     88  1.1  christos cp 'dir/obj_1.o' 'obj1.o'
     89  1.1  christos ar -rcv 'lib.a' 'obj1.o'
     90  1.1  christos a - obj1.o
     91  1.1  christos rm -f 'obj1.o'
     92  1.1  christos mkdir -p '.'
     93  1.3       sjg printf '#include "obj_2.h"\nconst char* obj_2 = "obj_2.c";\n' \
     94  1.1  christos     >'obj_2.c'
     95  1.1  christos mkdir -p '.'
     96  1.1  christos touch 'obj_2.h'
     97  1.1  christos Local variables
     98  1.4       sjg  ${@}="obj2.o" ${<}="obj_2.c"
     99  1.4       sjg  ${*}="obj2" ${?}="obj_2.c obj_2.h dir/obj_1.h"
    100  1.4       sjg  ${%}=""
    101  1.1  christos 
    102  1.1  christos Directory and filename parts of local variables
    103  1.4       sjg  ${@D}="." ${@F}="obj2.o"
    104  1.4       sjg  ${<D}="." ${<F}="obj_2.c"
    105  1.4       sjg  ${*D}="." ${*F}="obj2"
    106  1.4       sjg  ${?D}=". . dir" ${?F}="obj_2.c obj_2.h obj_1.h"
    107  1.4       sjg  ${%D}="" ${%F}=""
    108  1.1  christos 
    109  1.1  christos Local variable substitutions
    110  1.4       sjg  ${@:.o=}="obj2" ${<:.c=.C}="obj_2.C"
    111  1.4       sjg  ${*:=.h}="obj2.h" ${?:.h=.H}="obj_2.c obj_2.H dir/obj_1.H"
    112  1.4       sjg  ${%:=}=""
    113  1.1  christos 
    114  1.1  christos Target with suffix transformations
    115  1.4       sjg  ${@D:=append}=".append"
    116  1.4       sjg  ${@F:.o=.O}="obj2.O"
    117  1.1  christos 
    118  1.1  christos  Implied source with suffix transformations
    119  1.4       sjg  ${<D:r=rr}="."
    120  1.4       sjg  ${<F:.c=.C}="obj_2.C"
    121  1.1  christos 
    122  1.1  christos  Suffixless target with suffix transformations
    123  1.4       sjg  ${*D:.=dot}="dot"
    124  1.4       sjg  ${*F:.a=}="obj2"
    125  1.1  christos 
    126  1.1  christos  Out-of-date dependencies with suffix transformations
    127  1.4       sjg  ${?D:ir=}=". . d"
    128  1.4       sjg  ${?F:.h=.H}="obj_2.c obj_2.H obj_1.H"
    129  1.1  christos 
    130  1.1  christos  Member with suffix transformations
    131  1.4       sjg  ${%D:.=}=""
    132  1.4       sjg  ${%F:${VAR2}=${VAR}}=""
    133  1.1  christos 
    134  1.1  christos cc -c -o 'obj2.o' 'obj_2.c'
    135  1.1  christos ar -rcv 'lib.a' 'obj2.o'
    136  1.1  christos a - obj2.o
    137  1.1  christos mkdir -p '.'
    138  1.1  christos touch 'obj3.h'
    139  1.1  christos mkdir -p 'dir'
    140  1.1  christos touch 'dir/dummy'
    141  1.1  christos mkdir -p '.'
    142  1.3       sjg printf '#include "obj3.h"\nconst char* obj3 = "obj3.c";\n' \
    143  1.1  christos     >'obj3.c'
    144  1.1  christos Local variables
    145  1.4       sjg  ${@}="lib.a" ${<}="obj3.c"
    146  1.4       sjg  ${*}="obj3" ${?}="obj3.h dir/dummy obj3.c"
    147  1.4       sjg  ${%}="obj3.o"
    148  1.1  christos 
    149  1.1  christos Directory and filename parts of local variables
    150  1.4       sjg  ${@D}="." ${@F}="lib.a"
    151  1.4       sjg  ${<D}="." ${<F}="obj3.c"
    152  1.4       sjg  ${*D}="." ${*F}="obj3"
    153  1.4       sjg  ${?D}=". dir ." ${?F}="obj3.h dummy obj3.c"
    154  1.4       sjg  ${%D}="." ${%F}="obj3.o"
    155  1.1  christos 
    156  1.1  christos Local variable substitutions
    157  1.4       sjg  ${@:.o=}="lib.a" ${<:.c=.C}="obj3.C"
    158  1.4       sjg  ${*:=.h}="obj3.h" ${?:.h=.H}="obj3.H dir/dummy obj3.c"
    159  1.4       sjg  ${%:=}="obj3.o"
    160  1.1  christos 
    161  1.1  christos Target with suffix transformations
    162  1.4       sjg  ${@D:=append}=".append"
    163  1.4       sjg  ${@F:.o=.O}="lib.a"
    164  1.1  christos 
    165  1.1  christos  Implied source with suffix transformations
    166  1.4       sjg  ${<D:r=rr}="."
    167  1.4       sjg  ${<F:.c=.C}="obj3.C"
    168  1.1  christos 
    169  1.1  christos  Suffixless target with suffix transformations
    170  1.4       sjg  ${*D:.=dot}="dot"
    171  1.4       sjg  ${*F:.a=}="obj3"
    172  1.1  christos 
    173  1.1  christos  Out-of-date dependencies with suffix transformations
    174  1.4       sjg  ${?D:ir=}=". d ."
    175  1.4       sjg  ${?F:.h=.H}="obj3.H dummy obj3.c"
    176  1.1  christos 
    177  1.1  christos  Member with suffix transformations
    178  1.4       sjg  ${%D:.=}=""
    179  1.4       sjg  ${%F:${VAR2}=${VAR}}="obj3foo  bar baz"
    180  1.1  christos 
    181  1.1  christos cc -c -o 'obj3.o' 'obj3.c'
    182  1.1  christos ar -rcv 'lib.a' 'obj3.o'
    183  1.1  christos a - obj3.o
    184  1.1  christos rm -f 'obj3.o'
    185  1.2  christos ar -s 'lib.a'
    186  1.1  christos exit status 0
    187