1 ################################################################################
4 # @brief Major rules for Device Driver Generator make.
6 # @author Yury GEORGIEVSKIY, CERN.
7 #############################################################################
9 # Do not print "Entering directory ..."
10 MAKEFLAGS += --no-print-directory
13 OS_REL := $(shell uname -r)
29 OBJDIR = $(HOST_OS)_$(BLDTYPE)
33 SRCCXXSFXS := .cpp .cxx .C .cc .CC
34 SRCSFXS := $(SRCCSFXS) $(SRCCXXSFXS)
35 FLTSRCFILES = $(filter $(addprefix %,$(SRCSFXS)),$(SRCFILES))
36 OBJFILES = $(addsuffix $(EXTOBJ),$(notdir $(basename $(FLTSRCFILES)))) $(ADDOBJFILES)
37 OBJS = $(addprefix $(OBJDIR)/,$(OBJFILES)) $(ADDOBJS)
38 LIBS = $(join $(addsuffix $(OBJDIR)/,$(dir $(LIBFILES))),$(notdir $(LIBFILES)))
40 #############################################################################
62 #############################################################################
65 INCFLAGS = $(addprefix -I,$(INCDIRS)) $(addprefix -I,$($(BLDTYPE).INCDIRS))
66 LIBFLAGS = $(addprefix -L,$(LIBDIRS))
67 LOADLIBES += $(LIBFLAGS)
70 dbg.BLDTFLAGS = -g -DDEBUG -D_DEBUG
72 BLDTFLAGS = $($(BLDTYPE).BLDTFLAGS)
74 BASECXXFLAGS = $(CXXFLAGS) $(CFLAGS) $(HOSTCXXFLAGS) $(HOSTCFLAGS) $(DEFFLAGS) $(INCFLAGS) $(BLDTFLAGS) $(ADDCXXFLAGS) $(ADDCFLAGS)
75 BASECFLAGS = $(CFLAGS) $(HOSTCFLAGS) $(DEFFLAGS) $(INCFLAGS) $(BLDTFLAGS) $(ADDCFLAGS)
76 BASELDSHFLAGS = $(LDSHFLAGS) $(HOSTLDSHFLAGS) $(BLDTFLAGS) $(ADDLDSHFLAGS)
77 BASELDFLAGS = $(LDFLAGS) $(HOSTLDFLAGS) $(BLDTFLAGS) $(ADDLDFLAGS)
78 BASEARFLAGS = $(ARFLAGS) $(HOSTARFLAGS) $(ADDARFLAGS)
82 vpath %$(EXTOBJ) $(OBJDIR)
87 @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg build-subdirs build
90 @$(MAKE) $(SELFMFNAME) BLDTYPE=rls build-subdirs build
95 @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg depend-subdirs depend
96 @$(MAKE) $(SELFMFNAME) BLDTYPE=rls depend-subdirs depend
99 @$(MAKE) $(SELFMFNAME) clean-subdirs #BLDTYPE=dbg
100 #@echo "Use dbg.clean or rls.clean" ; exit 1
105 @if [ ! -z "$(strip $(FLTSRCFILES))" ]; then \
106 echo "$(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE)" ;\
107 $(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE) ; \
116 $(addsuffix .%,$(BLDTYPES)) ::
117 @$(MAKE) $(SELFMFNAME) BLDTYPE=$(basename $@) $*
120 @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*-subdirs $*
123 @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*
126 @for dir in $(SUBDIRS) _dummy_dir_ ; \
128 if [ $$dir != _dummy_dir_ -a -d $$dir ]; then \
129 echo "$(MAKE) $(SUBMFNAME) -C $$dir BLDTYPE=$(BLDTYPE) $*-subdirs $*" ; \
130 $(MAKE) $(SUBMFNAME) -C $$dir BLDTYPE=$(BLDTYPE) $*-subdirs $*; \
131 if [ $$? -eq 2 ]; then exit 1; fi; \
140 $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
143 $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
146 $(CC) -o $(OBJDIR)/$(@F) $(BASECFLAGS) -c $<
149 ifneq ($(wildcard .depend-$(BLDTYPE)),)
150 include .depend-$(BLDTYPE)