summaryrefslogtreecommitdiff
path: root/i/marvin/src/Makefile.defs
diff options
context:
space:
mode:
Diffstat (limited to 'i/marvin/src/Makefile.defs')
-rw-r--r--i/marvin/src/Makefile.defs63
1 files changed, 63 insertions, 0 deletions
diff --git a/i/marvin/src/Makefile.defs b/i/marvin/src/Makefile.defs
new file mode 100644
index 0000000..8b0e709
--- /dev/null
+++ b/i/marvin/src/Makefile.defs
@@ -0,0 +1,63 @@
+# Flags.
+CXXFLAGS = -Wall -g
+CPPFLAGS = -MMD $(INCLUDES)
+INCLUDES = -I$(SRCDIR) -I.
+
+# Tests de coverage (man gcov).
+ifeq ($(COV),)
+#CXXFLAGS += -O2
+else
+CXXFLAGS += -fprofile-arcs -ftest-coverage
+endif
+
+# Profiling (man gprof).
+ifneq ($(PROF),)
+CXXFLAGS += -pg
+LDFLAGS += -pg
+endif
+
+
+# Messages sur une ligne.
+CXXFLAGS += -fmessage-length=0
+
+# Attention, il y a un problème de dépendences dans l'ordre des SUBDIRS à
+# cause de la génération des règles.
+SUBDIRS =
+
+LINK.o = $(CXX) $(LDFLAGS) $(TARGET_ARCH)
+LEX = flex
+YACC = bison
+
+VPATH = $(SUBDIRS:%=$(SRCDIR)/%)
+
+PROGRAMS =
+LIBS =
+EXTRA_CLEAN =
+
+all: build-all
+
+# Inclus les autres répertoires.
+include $(SUBDIRS:%=$(SRCDIR)/%/Makefile.defs)
+
+OBJECTS = $(filter %.o,$(foreach PROGRAM,$(PROGRAMS),$($(PROGRAM)_OBJECTS)))
+
+build-all: $(PROGRAMS)
+
+# Régles.
+%.cc: %.ll
+ $(LEX) $<
+
+%.cc: %.yy
+ $(YACC) -o $@ $<
+
+# Dépendances.
+-include $(OBJECTS:%.o=%.d)
+
+# Ménage.
+clean:
+ rm -f *.o *.d $(PROGRAMS)
+ rm -f *.bbg *.bb *.da *.gcov
+ rm -f gmon.out
+ rm -f $(EXTRA_CLEAN)
+
+.PHONY: all build-all clean