[driver-gen-git] Add git library files.
[driver-gen.git] / Makefile.base
blob16cbce5e56f6d8eb2721f89534f403dea75e0ed9
1 ################################################################################
2 # @file Makefile
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
12 ifndef HOST_OS
13     OS_REL  := $(shell uname -r)
14     HOST_OS := unk
16     ifeq ($(OS),Linux)
17         HOST_OS := lnx
18     endif
19     ifeq ($(OS),LynxOS)
20         HOST_OS := lynx
21     endif
22 endif
23 export HOST_OS
25 BLDTYPES = dbg rls
27 unexport BLDTYPE
29 OBJDIR = $(HOST_OS)_$(BLDTYPE)
32 SRCCSFXS := .c
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 #############################################################################
41 ifneq ($(GROOT),)
42 GPREF   = $(GROOT)/bin/
43 endif
45 CXX     = $(GPREF)g++
46 CC      = $(GPREF)gcc
47 AR      = ar
48 LD      = ld
49 LDSH    = $(GPREF)gcc
50 LDEXE   = $(GPREF)gcc
51 EXTDLL  = .dll
52 EXTSO   = .dll
53 EXTLIB  = .a
54 EXTOBJ  = .o
55 EXTEXE  =
57 MKDIR   = mkdir -p
58 CP      = cp
59 RM      = rm
60 RM_R    = rm -r
61 RM_RF   = rm -rf
62 #############################################################################
65 INCFLAGS   = $(addprefix -I,$(INCDIRS)) $(addprefix -I,$($(BLDTYPE).INCDIRS))
66 LIBFLAGS   = $(addprefix -L,$(LIBDIRS))
67 LOADLIBES += $(LIBFLAGS)
69 CFLAGS = -Wall
70 dbg.BLDTFLAGS = -g -DDEBUG -D_DEBUG
71 rls.BLDTFLAGS = -O2
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)
80 .PHONY: dummy
82 vpath %$(EXTOBJ) $(OBJDIR)
84 all::   debug
86 debug dbg ::
87         @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg build-subdirs build
89 release rls ::
90         @$(MAKE) $(SELFMFNAME) BLDTYPE=rls build-subdirs build
92 ifndef BLDTYPE
94 depend dep ::
95         @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg depend-subdirs depend
96         @$(MAKE) $(SELFMFNAME) BLDTYPE=rls depend-subdirs depend
98 clean clear::
99         @$(MAKE) $(SELFMFNAME)  clean-subdirs #BLDTYPE=dbg
100 #@echo "Use dbg.clean or rls.clean" ; exit 1
102 else
104 depend ::
105         @if [ ! -z "$(strip $(FLTSRCFILES))" ]; then \
106             echo "$(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE)" ;\
107             $(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE) ; \
108         fi
110 endif
112 build::
113 clean clear::
115 # dbg.% rls.%
116 $(addsuffix .%,$(BLDTYPES)) ::
117         @$(MAKE) $(SELFMFNAME) BLDTYPE=$(basename $@) $*
119 %-all ::
120         @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*-subdirs $*
122 %-local ::
123         @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*
125 %-subdirs ::
126         @for dir in $(SUBDIRS) _dummy_dir_ ; \
127         do \
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; \
132             fi; \
133         done
136 $(OBJDIR):
137         -$(MKDIR) $@
139 %.o : %.cpp
140         $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
142 %.o : %.cxx
143         $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
145 %.o : %.c
146         $(CC) -o $(OBJDIR)/$(@F) $(BASECFLAGS) -c $<
149 ifneq ($(wildcard .depend-$(BLDTYPE)),)
150 include .depend-$(BLDTYPE)
151 endif
153 ifndef BLDTYPE
154     BLDTYPE = dbg
155 endif