https://github.com/root-project/root
Raw File
Tip revision: 959287f94d193c766b5d9b523ba1a688b72c6cbf authored by Axel Naumann on 18 November 2015, 09:57:06 UTC
Update ROOT version files to v6.04/10.
Tip revision: 959287f
Module.mk
# Module.mk for meta module
# Copyright (c) 2000 Rene Brun and Fons Rademakers
#
# Author: Fons Rademakers, 29/2/2000

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

METADIR      := $(MODDIR)
METADIRS     := $(METADIR)/src
METADIRI     := $(METADIR)/inc

##### libMeta (part of libCore) #####
METAL        := $(MODDIRI)/LinkDef.h

METAH        := $(filter-out $(MODDIRI)/LinkDef%,$(wildcard $(MODDIRI)/*.h))
METAS        := $(filter-out $(MODDIRS)/G__%,$(wildcard $(MODDIRS)/*.cxx))

METASLLVM    := $(MODDIRS)/TCling.cxx \
                $(MODDIRS)/TClingBaseClassInfo.cxx \
                $(MODDIRS)/TClingCallFunc.cxx \
                $(MODDIRS)/TClingCallbacks.cxx \
                $(MODDIRS)/TClingClassInfo.cxx \
                $(MODDIRS)/TClingDataMemberInfo.cxx \
                $(MODDIRS)/TClingMethodArgInfo.cxx \
                $(MODDIRS)/TClingMethodInfo.cxx \
                $(MODDIRS)/TClingTypeInfo.cxx \
                $(MODDIRS)/TClingTypedefInfo.cxx \
                $(MODDIRS)/TClingValue.cxx

METADCLINGCXXFLAGS:= -DR__WITH_CLING
METACLINGCXXFLAGS = $(filter-out -fno-exceptions,$(filter-out -fno-rtti,$(CLINGCXXFLAGS)))
ifneq ($(CXX:g++=),$(CXX))
METACLINGCXXFLAGS += -Wno-shadow -Wno-unused-parameter
endif
# exclude this file from the dictionary
METASEL      := $(MODDIRI)/RootMetaSelection.h
METADICTH    := $(filter-out $(METASEL),$(METAH))
METAO        := $(call stripsrc,$(METAS:.cxx=.o))

METADEP      := $(METAO:.o=.d) $(METADO:.o=.d)

METAOLLVM    := $(call stripsrc,$(METASLLVM:.cxx=.o))
METAO        := $(filter-out $(METAOLLVM),$(METAO))

##### libCling #####

CLINGL       := $(MODDIRI)/LinkDefCling.h
CLINGDS      := $(call stripsrc,$(MODDIRS)/G__Cling.cxx)
#CLINGDO      := $(CLINGDS:.cxx=.o)
CLINGDO      :=
CLINGDH      := $(CLINGDS:.cxx=.h)
CLINGH       := $(MODDIRS)/TCling.h

CLINGLIB     := $(LPATH)/libCling.$(SOEXT)
CLINGMAP     := $(CLINGLIB:.$(SOEXT)=.rootmap)

ALLLIBS      += $(CLINGLIB)
ALLMAPS      += $(CLINGMAP)

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

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

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

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

IOLIB_EARLY = $(LPATH)/libRIO.$(SOEXT)

$(CLINGLIB):    $(CLINGO) $(CLINGDO) $(METAOLLVM) $(METAUTILSOLLVM) \
                $(METAUTILSTO) $(ORDER_) $(MAINLIBS) $(TCLINGLIBDEPM) $(IOLIB_EARLY)
		@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
		   "$(SOFLAGS)" libCling.$(SOEXT) $@ \
		   "$(METAOLLVM) $(METAUTILSOLLVM) $(METAUTILSTO) \
		    $(CLINGO) $(CLINGDO) $(CLINGLIBEXTRA) $(TCLINGLIBEXTRA)" \
		   ""

$(CLINGMAP):    $(CLINGL) $(ROOTCLINGSTAGE1DEP) $(LLVMDEP) $(call pcmdep,CLING)
		$(MAKEDIR)
		@echo "Generating rootmap $@..."
		$(ROOTCLINGSTAGE1) -r $(CLINGDS) $(call dictModule,CLING) -c \
		   $(CLINGH) $(CLINGL)

$(call pcmrule,CLING)
	$(noop)

$(CLINGDS): $(CLINGL) $(ROOTCLINGSTAGE1DEP) $(LLVMDEP) $(call pcmdep,CLING)
		$(MAKEDIR)
		@echo "Generating dictionary $@..."
		$(ROOTCLINGSTAGE1) -f $@ $(call dictModule,CLING) -c $(CLINGH) \
		   $(CLINGL)

all-$(MODNAME): $(METAO) $(METAOLLVM) $(CLINGLIB)
clean-$(MODNAME):
		@rm -f $(METAO) $(METAOLLVM) $(GLINGDO)

clean::         clean-$(MODNAME)

distclean-$(MODNAME): clean-$(MODNAME)
		@rm -f $(METADEP) $(CLINGDS) $(CLINGDH) $(CLINGLIB) $(CLINGMAP)

distclean::     distclean-$(MODNAME)

# Optimize dictionary with stl containers.
$(call stripsrc,$(patsubst %.cxx,%.o,$(wildcard $(MODDIRS)/TCling*.cxx))): \
   $(LLVMDEP)
$(call stripsrc,$(patsubst %.cxx,%.o,$(wildcard $(MODDIRS)/TInterpreter*.cxx))): \
   $(LLVMDEP)
$(call stripsrc,$(patsubst %.cxx,%.o,$(wildcard $(MODDIRS)/TCling*.cxx))): \
   CXXFLAGS += $(METACLINGCXXFLAGS)
$(call stripsrc,$(patsubst %.cxx,%.o,$(wildcard $(MODDIRS)/TInterpreter*.cxx))): \
   CXXFLAGS += $(METACLINGCXXFLAGS)
$(call stripsrc,$(MODDIRS)/TClingCallbacks.o): \
   CXXFLAGS += -fno-rtti

ifneq (,$(filter $(ARCH),win32gcc win64gcc))
# for EnumProcessModules():
CORELIBEXTRA += -lpsapi
endif

ifneq ($(CXX:g++=),$(CXX))
METADOCXXFLAGS := -Wno-shadow -Wno-unused-parameter
endif
$(COREDO): CXXFLAGS += -D__CLING__ -Ietc -Ietc/cling $(filter-out -fno-exceptions,$(filter-out -fno-rtti,$(CLINGCXXFLAGS))) $(METADOCXXFLAGS)
back to top