1 ################################################################################
4 # @brief Major rules for Device Driver Generator make.
6 # @author Copyright (C) 2003-2010 CERN. Yury GEORGIEVSKIY <ygeorgie@cern.ch>
8 # @date Created on 29/06/2003
10 # @section license_sec License
11 # Released under the GPL
12 #############################################################################
14 # Do not print "Entering directory ..."
15 MAKEFLAGS += --no-print-directory
18 OS_REL := $(shell uname -r)
34 OBJDIR = $(HOST_OS)_$(BLDTYPE)
38 SRCCXXSFXS := .cpp .cxx .C .cc .CC
39 SRCSFXS := $(SRCCSFXS) $(SRCCXXSFXS)
40 FLTSRCFILES = $(filter $(addprefix %,$(SRCSFXS)),$(SRCFILES))
41 OBJFILES = $(addsuffix $(EXTOBJ),$(notdir $(basename $(FLTSRCFILES)))) $(ADDOBJFILES)
42 OBJS = $(addprefix $(OBJDIR)/,$(OBJFILES)) $(ADDOBJS)
43 LIBS = $(join $(addsuffix $(OBJDIR)/,$(dir $(LIBFILES))),$(notdir $(LIBFILES)))
45 #############################################################################
67 #############################################################################
70 INCFLAGS = $(addprefix -I,$(INCDIRS)) $(addprefix -I,$($(BLDTYPE).INCDIRS))
71 LIBFLAGS = $(addprefix -L,$(LIBDIRS))
72 LOADLIBES += $(LIBFLAGS)
75 dbg.BLDTFLAGS = -g -DDEBUG -D_DEBUG
77 BLDTFLAGS = $($(BLDTYPE).BLDTFLAGS)
79 BASECXXFLAGS = $(CXXFLAGS) $(CFLAGS) $(HOSTCXXFLAGS) $(HOSTCFLAGS) $(DEFFLAGS) $(INCFLAGS) $(BLDTFLAGS) $(ADDCXXFLAGS) $(ADDCFLAGS)
80 BASECFLAGS = $(CFLAGS) $(HOSTCFLAGS) $(DEFFLAGS) $(INCFLAGS) $(BLDTFLAGS) $(ADDCFLAGS)
81 BASELDSHFLAGS = $(LDSHFLAGS) $(HOSTLDSHFLAGS) $(BLDTFLAGS) $(ADDLDSHFLAGS)
82 BASELDFLAGS = $(LDFLAGS) $(HOSTLDFLAGS) $(BLDTFLAGS) $(ADDLDFLAGS)
83 BASEARFLAGS = $(ARFLAGS) $(HOSTARFLAGS) $(ADDARFLAGS)
87 vpath %$(EXTOBJ) $(OBJDIR)
92 @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg build-subdirs build
95 @$(MAKE) $(SELFMFNAME) BLDTYPE=rls build-subdirs build
100 @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg depend-subdirs depend
101 @$(MAKE) $(SELFMFNAME) BLDTYPE=rls depend-subdirs depend
104 @$(MAKE) $(SELFMFNAME) clean-subdirs #BLDTYPE=dbg
105 #@echo "Use dbg.clean or rls.clean" ; exit 1
110 @if [ ! -z "$(strip $(FLTSRCFILES))" ]; then \
111 echo "$(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE)" ;\
112 $(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE) ; \
121 $(addsuffix .%,$(BLDTYPES)) ::
122 @$(MAKE) $(SELFMFNAME) BLDTYPE=$(basename $@) $*
125 @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*-subdirs $*
128 @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*
131 @for dir in $(SUBDIRS) _dummy_dir_ ; \
133 if [ $$dir != _dummy_dir_ -a -d $$dir ]; then \
134 echo "$(MAKE) $(SUBMFNAME) -C $$dir BLDTYPE=$(BLDTYPE) $*-subdirs $*" ; \
135 $(MAKE) $(SUBMFNAME) -C $$dir BLDTYPE=$(BLDTYPE) $*-subdirs $*; \
136 if [ $$? -eq 2 ]; then exit 1; fi; \
145 $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
148 $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
151 $(CC) -o $(OBJDIR)/$(@F) $(BASECFLAGS) -c $<
154 ifneq ($(wildcard .depend-$(BLDTYPE)),)
155 include .depend-$(BLDTYPE)