miller/c/dsls/Makefile

85 lines
3.5 KiB
Makefile

top: pdm fdm
CCOMP=gcc
CFLAGS=-I.. -O3
#CFLAGS=-I.. -g
# ----------------------------------------------------------------
pdm: put_dsl_parse.o put_dsl_lexer.o put_dsl_wrapper.o ../containers/mlr_dsl_ast.c ../containers/mlr_dsl_ast.h
$(CCOMP) $(CFLAGS) -std=gnu99 -D __PUT_DSL_MAIN__ ../containers/sllv.c ../containers/slls.c ../lib/mlrutil.c ../containers/lrec.c ../containers/header_keeper.c put_dsl_parse.c put_dsl_lexer.c ../containers/mlr_dsl_ast.c put_dsl_wrapper.c -o pdm -lm
put_dsl_wrapper.o: put_dsl_wrapper.c put_dsl_wrapper.h
$(CCOMP) -Wall $(CFLAGS) -c -std=gnu99 put_dsl_wrapper.c
put_dsl_parse.o: put_dsl_parse.c put_dsl_parse.h
$(CCOMP) $(CFLAGS) -c -std=gnu99 put_dsl_parse.c
put_dsl_parse.c put_dsl_parse.h: put_dsl_parse.y lemon
./lemon put_dsl_parse.y
mv put_dsl_parse.c put_dsl_parse.c.tmp
sed \
-e 's/ParseTrace/put_dsl_ParseTrace/g' \
-e 's/ParseTokenName/put_dsl_ParseTokenName/g' \
-e 's/lemon_parser_alloc/put_dsl_lemon_parser_alloc/g' \
-e 's/lemon_parser_free/put_dsl_lemon_parser_free/g' \
-e 's/lemon_parser_parse_token/put_dsl_lemon_parser_parse_token/g' \
-e 's/yy_destructor/put_dsl_yy_destructor/g' \
put_dsl_parse.c.tmp > put_dsl_parse.c
rm -f put_dsl_parse.c.tmp
# muldef:
# ParseTrace
# ParseTokenName
# lemon_parser_alloc
# lemon_parser_free
# lemon_parser_parse_token
# yy_destructor
put_dsl_lexer.o: put_dsl_lexer.c put_dsl_lexer.h
$(CCOMP) $(CFLAGS) -c -std=gnu99 put_dsl_lexer.c
put_dsl_lexer.c put_dsl_lexer.h: put_dsl_lexer.l
flex --prefix=put_dsl_lexer_ --outfile=put_dsl_lexer.c --header-file=put_dsl_lexer.h put_dsl_lexer.l
# ----------------------------------------------------------------
fdm: filter_dsl_parse.o filter_dsl_lexer.o filter_dsl_wrapper.o ../containers/mlr_dsl_ast.c ../containers/mlr_dsl_ast.h
$(CCOMP) $(CFLAGS) -std=gnu99 -D __FILTER_DSL_MAIN__ ../containers/sllv.c ../containers/slls.c ../lib/mlrutil.c ../containers/lrec.c ../containers/header_keeper.c filter_dsl_parse.c filter_dsl_lexer.c ..//containers/mlr_dsl_ast.c filter_dsl_wrapper.c -o fdm -lm
filter_dsl_wrapper.o: filter_dsl_wrapper.c filter_dsl_wrapper.h
$(CCOMP) -Wall $(CFLAGS) -c -std=gnu99 filter_dsl_wrapper.c
filter_dsl_parse.o: filter_dsl_parse.c filter_dsl_parse.h
$(CCOMP) $(CFLAGS) -c -std=gnu99 filter_dsl_parse.c
filter_dsl_parse.c filter_dsl_parse.h: filter_dsl_parse.y lemon
./lemon filter_dsl_parse.y
mv filter_dsl_parse.c filter_dsl_parse.c.tmp
sed \
-e 's/ParseTrace/filter_dsl_ParseTrace/g' \
-e 's/ParseTokenName/filter_dsl_ParseTokenName/g' \
-e 's/lemon_parser_alloc/filter_dsl_lemon_parser_alloc/g' \
-e 's/lemon_parser_free/filter_dsl_lemon_parser_free/g' \
-e 's/lemon_parser_parse_token/filter_dsl_lemon_parser_parse_token/g' \
-e 's/yy_destructor/filter_dsl_yy_destructor/g' \
filter_dsl_parse.c.tmp > filter_dsl_parse.c
rm -f filter_dsl_parse.c.tmp
filter_dsl_lexer.o: filter_dsl_lexer.c filter_dsl_lexer.h
$(CCOMP) $(CFLAGS) -c -std=gnu99 filter_dsl_lexer.c
filter_dsl_lexer.c filter_dsl_lexer.h: filter_dsl_lexer.l
flex --prefix=filter_dsl_lexer_ --outfile=filter_dsl_lexer.c --header-file=filter_dsl_lexer.h filter_dsl_lexer.l
# ----------------------------------------------------------------
lemon: lemon.c lempar.c
$(CCOMP) -o lemon lemon.c
# ----------------------------------------------------------------
clean:
rm -f pdm fdm
rm -f *.o
rm -f put_dsl_parse.c put_dsl_parse.h put_dsl_parse.out
rm -f put_dsl_lexer.c put_dsl_lexer.h
rm -f filter_dsl_parse.c filter_dsl_parse.h filter_dsl_parse.out
rm -f filter_dsl_lexer.c filter_dsl_lexer.h
rm -f lemon
.always:
@/bin/true