scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

0094-expansion.sh (760B)


      1 #!/bin/sh
      2 
      3 trap 'rm -f $tmp1 $tmp2' EXIT
      4 trap 'exit $?' HUP INT TERM
      5 
      6 tmp1=tmp1.$$
      7 tmp2=tmp2.$$
      8 
      9 cat > $tmp1 <<EOF
     10 file1.o file2.o
     11 all
     12 alp
     13 all.o
     14 file1.c file2.c
     15 file1 file2
     16 file1.e file2.e
     17 file1.c file2.c
     18 all
     19 EOF
     20 
     21 $EXEC scc make -f- <<'EOF' > $tmp2 2>&1
     22 O = o
     23 SRC = file1.c  file2.c
     24 OBJ = $(SRC:.c=.$O)
     25 O = e
     26 C = c
     27 
     28 all:
     29 	@echo $(SRC:.c=.o)
     30 	@echo $(@)
     31 	@echo $(@:l=p)
     32 	@echo $(@:=.o)
     33 	@echo $(OBJ:.$O=.$C)
     34 	@echo $(OBJ:.$O=)
     35 	@echo $(OBJ)
     36 	@echo $(SRC)
     37 	@echo $(@:=)
     38 EOF
     39 diff $tmp1 $tmp2
     40 
     41 scc make -f- <<'EOF' > $tmp2 2>&1
     42 O = o
     43 SRC = file1.c  file2.c
     44 OBJ = ${SRC:.c=.$O}
     45 O = e
     46 C = c
     47 
     48 all:
     49 	@echo ${SRC:.c=.o}
     50 	@echo ${@}
     51 	@echo ${@:l=p}
     52 	@echo ${@:=.o}
     53 	@echo ${OBJ:.$O=.$C}
     54 	@echo ${OBJ:.$O=}
     55 	@echo ${OBJ}
     56 	@echo ${SRC}
     57 	@echo ${@:=}
     58 EOF
     59 
     60 diff $tmp1 $tmp2