diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c54efed --- /dev/null +++ b/Makefile @@ -0,0 +1,53 @@ +# +# Copyright (C) 2022 Alessandro Iezzi <aiezzi AT alessandroiezzi PERIOD it> +# +# This file is part of marcus. +# +# desiderio is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# desiderio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with desiderio. If not, see <https://www.gnu.org/licenses/>. +# + +OUT = marcus +CC = cc +LEX = lex +YACC = yacc + +SRC != find * -name '*c' +OBJ = ${SRC:.c=.o} + +LEX_SRC != find * -name '*l' +LEX_OBJ = ${LEX_SRC:.l=.c} +OBJ += ${LEX_SRC:.l=.o} + +YACC_SRC != find * -name '*y' +YACC_C = ${YACC_SRC:.y=.c} +YACC_H = ${YACC_SRC:.y=.h} +SRC += ${YACC_C} + +${OUT}: ${YACC_C} ${LEX_OBJ} ${OBJ} + @echo -- Generating ${OUT} + ${CC} -o ${OUT} ${OBJ} + +.l.c: ${LEX_SRC} + @echo -- Generating scanner files + ${LEX} -o $@ $> + +.c.o: + ${CC} -o $@ -c $> + +.y.c: ${YACC_SRC} + @echo -- Generating parser files + ${YACC} -o $@ -d $> + +clean: + rm -f ${OBJ} ${OUT} ${LEX_OBJ} ${YACC_C} ${YACC_H} |