aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2022-09-22 14:40:15 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2022-09-22 14:40:15 +0200
commit61b26469a7898930fd30ab2432d25105d1a57e22 (patch)
tree4598461006248ac15e8fe622a78fa2b609bf33c1 /Makefile
downloadmarcus-master.tar.gz
marcus-master.zip
Initial commitHEADmaster
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile53
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}