6 if [[ build.sh
-nt lxr
/script.l || build.sh
-nt config.l
]]; then
10 echo util.c gcc compile ...
11 if [[ $flag == 1 ||
! -f .obj
/util.o ||
-f util.c
&& util.c
-nt .obj
/util.o
]]; then
12 gcc
-O2 -I..
/ -c util.c
-o .obj
/util.o
13 [[ $?
!= 0 ]] && echo "gcc compile (.obj/util.o) failed." && exit
17 echo QStack.c gcc compile ...
18 if [[ $flag == 1 ||
! -f .obj
/QStack.o ||
-f QStack.c
&& QStack.c
-nt .obj
/QStack.o
]]; then
19 gcc
-O2 -I..
/ -c QStack.c
-o .obj
/QStack.o
20 [[ $?
!= 0 ]] && echo "gcc compile (.obj/QStack.o) failed." && exit
24 echo lxr
/script.l flex compile ...
25 if [[ $flag == 1 ||
! -f lxr
/script.
lex.c ||
-f lxr
/script.l
&& lxr
/script.l
-nt lxr
/script.
lex.c
]]; then
26 flex
-o lxr
/script.
lex.c lxr
/script.l
27 [[ $?
!= 0 ]] && echo "flex compile (lxr/script.l) failed." && exit
30 #echo config.l flex compile ...
31 #if [[ $flag == 1 || ! -f config.lex.c || -f config.l && config.l -nt config.lex.c ]]; then
32 # flex -o config.lex.c config.l
33 # [[ $? != 0 ]] && echo "flex compile (config.l) failed." && exit
34 # echo "set 'yy' to 'config_yy' in config.lex.c, config.lexdecl.c config.lexproc.c."
35 # sed "s/yy/cfg_yy/g" -i config.lex.c
36 # sed "s/yy/cfg_yy/g" -i config.lexdecl.c
37 # sed "s/yy/cfg_yy/g" -i config.lexproc.c
40 echo lxr
/script.
lex.c gcc compile ...
41 if [[ $flag == 1 ||
! -f .obj
/script.
lex.o ||
-f lxr
/script.
lex.c
&& lxr
/script.
lex.c
-nt .obj
/script.
lex.o
]]; then
42 gcc
-O2 -I..
/ -c lxr
/script.
lex.c
-o .obj
/script.
lex.o
43 [[ $?
!= 0 ]] && echo "gcc compile (.obj/script.lex.o) failed." && exit
44 size .obj
/script.
lex.o
47 #echo config.lex.c gcc compile ...
48 #if [[ $flag == 1 || ! -f .obj/config.lex.o || -f config.lex.c && config.lex.c -nt .obj/config.lex.o ]]; then
49 # gcc -O2 -I../ -c config.lex.c -o .obj/config.lex.o
50 # [[ $? != 0 ]] && echo "gcc compile (.obj/config.lex.o) failed." && exit
51 # size .obj/config.lex.o
55 echo token_id.c gcc compile ...
56 if [[ $flag == 1 ||
! -f .obj
/token_id.o ||
-f token_id.c
&& token_id.c
-nt .obj
/token_id.o
]]; then
57 gcc
-O2 -I..
/ -c token_id.c
-o .obj
/token_id.o
58 [[ $?
!= 0 ]] && echo "gcc compile (.obj/token_id.o) failed." && exit
62 echo lxrgmr gcc link ...
63 # config.lex.c -nt .obj/config.lex.o &&
64 # -f .obj/config.lex.o &&
65 if [[ $flag == 1 ||
! -f lxrgmr ||
67 .obj
/util.o
-nt lxrgmr
&&
69 .obj
/QStack.o
-nt lxrgmr
&&
71 .obj
/token_id.o
-nt lxrgmr
&&
72 -f .obj
/script.
lex.o
&&
73 .obj
/script.
lex.o
-nt lxrgmr
]]; then
74 gcc
-O2 .obj
/util.o .obj
/QStack.o .obj
/script.
lex.o .obj
/token_id.o
-o lxrgmr
75 [[ $?
!= 0 ]] && echo "gcc link (lxrgmr) failed." && exit