summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/GNUmakefile
blob: 81442eb8a4051fd799e1bf1105d3efc31299adbf (plain)
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
SUBDIRS = automate busp camera erreur vision


TARGETS =
CXXFLAGS = -Wall -g
CPPFLAGS = -I. -I$(SRCDIR) -I/usr/pkg/include
LDFLAGS = -L/usr/pkg/lib

SRCDIR ?= .
LIBPPM ?= -lppm
LINK.o = $(CXX) $(LDFLAGS) $(TARGET_ARCH)

VPATH = $(SUBDIRS:%=$(SRCDIR)/%)

all: alltargets

include $(SUBDIRS:%=$(SRCDIR)/%/Makefile.defs)

alltargets: $(TARGETS)

%.cc %.hh: %.yy
	bison -o$(<F:%.yy=%.cc) --defines=$(<F:%.yy=%.h) $<

%.cc: %.ll
	flex -o$@ $<

.dep/%.d: %.cc .dep
	set -e; $(CXX) -M $(CPPFLAGS) $< \
	    | sed 's/\($*\)\.o[ :]*/\1.o .dep\/$*.d : /g' > $@; \
		 [ -s $@ ] || rm -f $@

-include $(foreach target, $(TARGETS), $($(filter %.cc, $(target)_SOURCES):%.cc=.dep/%.d))

.dep:
	mkdir .dep

clean:
	rm -f $(TARGETS) $(extra_clean) *.o *.a
	rm -rf .dep