driver-gen/xml-lib: Search for version header files in the correct dir
[driver-gen.git] / Makefile.base
blob7a41290c1e0fd8805140a7ded713f96f582706ba
1 ################################################################################
2 # @file Makefile
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
17 ifndef HOST_OS
18     OS_REL  := $(shell uname -r)
19     HOST_OS := unk
21     ifeq ($(OS),Linux)
22         HOST_OS := lnx
23     endif
24     ifeq ($(OS),LynxOS)
25         HOST_OS := lynx
26     endif
27 endif
28 export HOST_OS
30 BLDTYPES = dbg rls
32 unexport BLDTYPE
34 OBJDIR = $(HOST_OS)_$(BLDTYPE)
37 SRCCSFXS := .c
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 #############################################################################
46 ifneq ($(GROOT),)
47 GPREF   = $(GROOT)/bin/
48 endif
50 CXX     = $(GPREF)g++
51 CC      = $(GPREF)gcc
52 AR      = ar
53 LD      = ld
54 LDSH    = $(GPREF)gcc
55 LDEXE   = $(GPREF)gcc
56 EXTDLL  = .dll
57 EXTSO   = .dll
58 EXTLIB  = .a
59 EXTOBJ  = .o
60 EXTEXE  =
62 MKDIR   = mkdir -p
63 CP      = cp
64 RM      = rm
65 RM_R    = rm -r
66 RM_RF   = rm -rf
67 #############################################################################
70 INCFLAGS   = $(addprefix -I,$(INCDIRS)) $(addprefix -I,$($(BLDTYPE).INCDIRS))
71 LIBFLAGS   = $(addprefix -L,$(LIBDIRS))
72 LOADLIBES += $(LIBFLAGS)
74 CFLAGS = -Wall
75 dbg.BLDTFLAGS = -g -DDEBUG -D_DEBUG
76 rls.BLDTFLAGS = -O2
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)
85 .PHONY: dummy
87 vpath %$(EXTOBJ) $(OBJDIR)
89 all::   debug
91 debug dbg ::
92         @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg build-subdirs build
94 release rls ::
95         @$(MAKE) $(SELFMFNAME) BLDTYPE=rls build-subdirs build
97 ifndef BLDTYPE
99 depend dep ::
100         @$(MAKE) $(SELFMFNAME) BLDTYPE=dbg depend-subdirs depend
101         @$(MAKE) $(SELFMFNAME) BLDTYPE=rls depend-subdirs depend
103 clean clear::
104         @$(MAKE) $(SELFMFNAME)  clean-subdirs #BLDTYPE=dbg
105 #@echo "Use dbg.clean or rls.clean" ; exit 1
107 else
109 depend ::
110         @if [ ! -z "$(strip $(FLTSRCFILES))" ]; then \
111             echo "$(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE)" ;\
112             $(CC) -MM $(BASECXXFLAGS) $(FLTSRCFILES) > .$@-$(BLDTYPE) ; \
113         fi
115 endif
117 build::
118 clean clear::
120 # dbg.% rls.%
121 $(addsuffix .%,$(BLDTYPES)) ::
122         @$(MAKE) $(SELFMFNAME) BLDTYPE=$(basename $@) $*
124 %-all ::
125         @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*-subdirs $*
127 %-local ::
128         @$(MAKE) $(SELFMFNAME) BLDTYPE=$(BLDTYPE) $*
130 %-subdirs ::
131         @for dir in $(SUBDIRS) _dummy_dir_ ; \
132         do \
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; \
137             fi; \
138         done
141 $(OBJDIR):
142         -$(MKDIR) $@
144 %.o : %.cpp
145         $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
147 %.o : %.cxx
148         $(CXX) -o $(OBJDIR)/$(@F) $(BASECXXFLAGS) -c $<
150 %.o : %.c
151         $(CC) -o $(OBJDIR)/$(@F) $(BASECFLAGS) -c $<
154 ifneq ($(wildcard .depend-$(BLDTYPE)),)
155 include .depend-$(BLDTYPE)
156 endif
158 ifndef BLDTYPE
159     BLDTYPE = dbg
160 endif