1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
# explicit rules: .y -> .c
# do not assume old yacc to work to different file names, do the generation
# in a separate directory to allow parallel compilation with -j
switch /local/pcb/mod/YACC
case {^$} end
default
foreach /local/n in /local/pcb/mod/YACC
put /local/bn /local/n
sub {/local/bn} {^.*/} {}
put /local/dn /local/n
sub {/local/dn} {/[^/]*$} {}
if /local/pcb/want_parsgen
then
append /local/pcb/RULES [@
# yacc for @/local/pcb/mod@
@/local/n@.c @/local/n@.h: @/local/n@.y
cd @/local/dn@ && bison --defines=@/local/bn@.h --output=@/local/bn@.c --report-file=@/local/bn@.output -d @/local/bn@.y
@]
else
append /local/pcb/RULES [@
# dummy yacc for @/local/pcb/mod@
@/local/n@.c @/local/n@.h:
echo "skipping yacc..."
@]
end
end
end
end
# explicit rules: .l -> .c
# do not assume old lex to work to different file names, do the generation
# in a separate directory to allow parallel compilation with -j
switch /local/pcb/mod/LEX
case {^$} end
default
foreach /local/n in /local/pcb/mod/LEX
if /local/pcb/want_parsgen
then
put /local/bn /local/n
sub {/local/bn} {^.*/} {}
put /local/dn /local/n
sub {/local/dn} {/[^/]*$} {}
append /local/pcb/RULES [@
# lex for @/local/pcb/mod@
@/local/n@.c @/local/n@.h: @/local/n@.l
cd @/local/dn@ && flex --outfile=@/local/bn@.c --header-file=@/local/bn@.h @/local/bn@.l
@]
else
append /local/pcb/RULES [@
# dummy lex for @/local/pcb/mod@
@/local/n@.c:
echo "skipping flex..."
@]
end
end
end
end
put /local/pcb/mod/enabled {1}
include /local/pcb/tmpasm/plugin_conf
include /local/pcb/tmpasm/plugin_sphash
include /local/pcb/tmpasm/plugin_intconf
append /local/pcb/CLEANFILES ?/local/pcb/mod/CLEANFILES
put /local/pcb/mod/enabled {}
put /local/pcb/mod/OBJS {}
put /local/pcb/mod/OBJS_C99 {}
put /local/pcb/mod/LDFLAGS {}
put /local/pcb/mod/CFLAGS {}
put /local/pcb/mod/YACC {}
put /local/pcb/mod/LEX {}
put /local/pcb/mod/SPHASH {}
put /local/pcb/mod/CLEANFILES {}
put /local/pcb/mod {}
put /local/pcb/mod/CONFFILE {}
put /local/pcb/mod/CONFVAR {}
|