summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/GNUmakefile
blob: 64f1492874a81d5ef0140d3e1d693350e9ed9583 (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 = config date motor serial fake_serial utils \
	  logger video4linux image ovision qdai ai io path

TARGETS =
LIBS = -lm
CXXFLAGS = -Wall -g
CPPFLAGS = -I. -I$(SRCDIR) -I/usr/pkg/include $(DEFINES)
#LDFLAGS = --static -L/usr/pkg/lib
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) $(subst .,_,$(LIBS)), $(patsubst %.cc, .dep/%.d, $(filter %.cc, $($(target)_SOURCES))))

.dep:
	mkdir .dep

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

.PHONY: all clean test alltargets