Revision 1cb045683bcdd985c49315bbd73eba9d9c7d8969 authored by Helge Voss on 06 April 2016, 16:35:19 UTC, committed by Helge Voss on 06 April 2016, 16:40:36 UTC
1 parent 0c935d4
Raw File
Module.mk
# Module.mk for utilities for libMeta and rootcint
# Copyright (c) 2002 Rene Brun and Fons Rademakers
#
# Author: Philippe Canal 9/1/2004

MODNAME        := metautils
MODDIR         := $(ROOT_SRCDIR)/core/$(MODNAME)
MODDIRS        := $(MODDIR)/src
MODDIRI        := $(MODDIR)/inc

METAUTILSDIR   := $(MODDIR)
METAUTILSDIRS  := $(METAUTILSDIR)/src
METAUTILSDIRI  := $(METAUTILSDIR)/inc

##### $(METAUTILSO) #####
METAUTILSH     := $(filter-out $(MODDIRI)/TMetaUtils.%,\
  $(filter-out $(MODDIRI)/libcpp_string_view.h,\
  $(filter-out $(MODDIRI)/RWrap_libcpp_string_view.h,\
  $(filter-out $(MODDIRI)/LinkDef%,$(wildcard $(MODDIRI)/*.h)))))
METAUTILSS     := $(filter-out $(MODDIRS)/TMetaUtils.%,\
  $(filter-out $(MODDIRS)/G__%,$(wildcard $(MODDIRS)/*.cxx)))

METAUTILSTH     += $(MODDIRI)/TMetaUtils.h
METAUTILSTS     += $(MODDIRS)/TMetaUtils.cxx
METAUTILSTH     += $(MODDIRI)/root_std_complex.h
METAUTILSTH     += $(MODDIRI)/libcpp_string_view.h
METAUTILSTH     += $(MODDIRI)/RWrap_libcpp_string_view.h

METAUTILSSLLVM := $(MODDIRS)/BaseSelectionRule.cxx \
                  $(MODDIRS)/ClassSelectionRule.cxx \
                  $(MODDIRS)/VariableSelectionRule.cxx \
                  $(MODDIRS)/RStl.cxx \
                  $(MODDIRS)/Scanner.cxx \
                  $(MODDIRS)/SelectionRules.cxx \
                  $(MODDIRS)/XMLReader.cxx

METAUTILSCXXFLAGS = $(filter-out -fno-exceptions,$(filter-out -fno-rtti,$(CLINGCXXFLAGS)))
ifneq ($(CXX:g++=),$(CXX))
METAUTILSCXXFLAGS += -Wno-shadow -Wno-unused-parameter
endif

METAUTILSO     := $(call stripsrc,$(METAUTILSS:.cxx=.o))
METAUTILSOLLVM := $(call stripsrc,$(METAUTILSSLLVM:.cxx=.o))
METAUTILSO     := $(filter-out $(METAUTILSOLLVM),$(METAUTILSO))
METAUTILSTO    := $(call stripsrc,$(METAUTILSTS:.cxx=.o))

METAUTILSL     := $(MODDIRI)/LinkDef.h

METAUTILSDEP   := $(METAUTILSO:.o=.d) $(METAUTILSTO:.o=.d) $(METAUTILSOLLVM:.o=.d)

# used in the main Makefile
ALLHDRS     += $(patsubst $(MODDIRI)/%.h,include/%.h,$(METAUTILSH) $(METAUTILSTH))

# include all dependency files
INCLUDEFILES += $(METAUTILSDEP)

#### STL dictionary (replacement for cintdlls)

STLDICTS =
STLDICTS += lib/libvectorDict.$(SOEXT)
STLDICTS += lib/liblistDict.$(SOEXT)
STLDICTS += lib/libforward_listDict.$(SOEXT)
STLDICTS += lib/libdequeDict.$(SOEXT)
STLDICTS += lib/libmapDict.$(SOEXT)
STLDICTS += lib/libmap2Dict.$(SOEXT)
STLDICTS += lib/libsetDict.$(SOEXT)
STLDICTS += lib/libunordered_setDict.$(SOEXT)
STLDICTS += lib/libunordered_multisetDict.$(SOEXT)
STLDICTS += lib/libunordered_mapDict.$(SOEXT)
STLDICTS += lib/libunordered_multimapDict.$(SOEXT)
STLDICTS += lib/libmultimapDict.$(SOEXT)
STLDICTS += lib/libmultimap2Dict.$(SOEXT)
STLDICTS += lib/libmultisetDict.$(SOEXT)
STLDICTS += lib/libcomplexDict.$(SOEXT)
ifneq ($(PLATFORM),win32)
STLDICTS += lib/libvalarrayDict.$(SOEXT)
endif

STLDICTS_SRC := $(call stripsrc,$(patsubst lib/lib%Dict.$(SOEXT),$(METAUTILSDIRS)/G__std__%.cxx,$(STLDICTS)))
STLDICTS_HDR := $(call stripsrc,$(patsubst lib/lib%Dict.$(SOEXT),$(METAUTILSDIRS)/G__std__%.h,$(STLDICTS)))
STLDICTS_OBJ := $(patsubst %.cxx,%.o,$(STLDICTS_SRC))
STLDICTS_DEP := $(patsubst %.cxx,%.d,$(STLDICTS_SRC))

$(call stripsrc,$(METAUTILSDIRS)/G__std__%.cxx): $(METAUTILSDIRS)/%Linkdef.h $(ROOTCLINGSTAGE1DEP)
	$(ROOTCLINGSTAGE1) -f $@ -s lib/lib$*Dict.pcm -m lib/libCore.pcm $(call rootmapModule, lib/lib$*Dict.$(SOEXT)) -c $(subst multi,,${*:2=}) $(ROOT_SRCDIR)/core/metautils/src/$*Linkdef.h

$(STLDICTS): lib/lib%Dict.$(SOEXT): $(call stripsrc,$(METAUTILSDIRS)/G__std__%.o) $(ORDER_) $(MAINLIBS)
	@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" "$(SOFLAGS)" $(notdir $@) $@ "$(filter-out $(MAINLIBS),$^)" ""

lib/lib%Dict.rootmap: $(METAUTILSDIRS)/%Linkdef.h $(ROOTCLINGSTAGE1DEP)
	$(ROOTCLINGSTAGE1) -r $(METAUTILSDIRS)/G__std__%.cxx -s lib/lib$*Dict.pcm -m lib/libCore.pcm $(call rootmapModule, lib/lib$*Dict.$(SOEXT))\
	   -c $(subst multi,,${*:2=}) \
	   $(ROOT_SRCDIR)/core/metautils/src/$*Linkdef.h

METAUTILSDEP   += $(STLDICTS_DEP)

STLDICTSMAPS = $(STLDICTS:.$(SOEXT)=.rootmap)

.PRECIOUS: $(STLDICTS_SRC)

# used in the main Makefile
ALLLIBS    += $(STLDICTS)
ALLMAPS    += $(STLDICTSMAPS)

##### local rules #####
.PHONY:         all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME)

include/%.h:    $(METAUTILSDIRI)/%.h
		cp $< $@

all-$(MODNAME): $(METAUTILSO) $(STLDICTS)

clean-$(MODNAME):
		@rm -f $(METAUTILSO) $(STLDICTS_OBJ) \
		   $(STLDICTS_DEP)

clean::         clean-$(MODNAME)

distclean-$(MODNAME): clean-$(MODNAME)
		@rm -f $(METAUTILSDEP) \
		   $(STLDICTS_OBJ) $(STLDICTS_DEP) $(STLDICTS_SRC) \
		   $(STLDICTS_HDR) $(STLDICTSMAPS)

distclean::     distclean-$(MODNAME)

##### extra rules ######
$(METAUTILSOLLVM): CXXFLAGS += $(METAUTILSCXXFLAGS)
$(METAUTILSOLLVM): $(LLVMDEP)
$(METAUTILSTO): CXXFLAGS += $(METAUTILSCXXFLAGS)
$(METAUTILSTO): $(LLVMDEP)
back to top