# 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 = utils utils/meta \ log serial timer \ config data image scheduler \ proto asserv video4linux \ ovision/see ovision/ui LINK.o = $(CXX) $(LDFLAGS) $(TARGET_ARCH) LEX = flex YACC = bison # Sur lampion, on utilise g++-3.0 ifeq ($(shell hostname),lampion) CXX = g++-3.0 endif VPATH = $(SUBDIRS:%=$(SRCDIR)/%) # Sur lampion, libz a été recompilé à la main ifeq ($(shell hostname),lampion) VPATH += /usr/local/lib/ endif 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 uicmds adjust.PID ui.PID rm -f $(EXTRA_CLEAN) .PHONY: all build-all clean