summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/GNUmakefile
blob: b4f79f2f7b671efd8af41731b22b51ed7a4013cf (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
40
41
42
43
SUBDIRS = automate busp camera config erreur motor serial vision


TARGETS =
LIBS =
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
	@echo "Dependency checking for $<..."
	@set -e; $(CXX) -M $(CPPFLAGS) $< \
	    | sed 's/\($*\)\.o[ :]*/\1.o .dep\/$*.d : /g' > $@; \
		 [ -s $@ ] || rm -f $@

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

.dep:
	mkdir .dep

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

.PHONY: all clean test alltargets