Raw File
Module.mk
# Module.mk for R interface module
# Copyright (c) 2013 Omar Andres Zapata Mesa
#
# Author: Omar Zapata, 30/5/2013
# updated Apr 29 2014

MODNAME      := r
MODDIR       := $(ROOT_SRCDIR)/bindings/$(MODNAME)
MODDIRS      := $(MODDIR)/src
MODDIRI      := $(MODDIR)/inc

RDIR  := $(MODDIR)
RDIRS := $(RDIR)/src
RDIRI := $(RDIR)/inc
RDIRP := $(RDIR)/pkg

##### libRInterface #####
RL           := $(MODDIRI)/LinkDef.h

RDS          := $(call stripsrc,$(MODDIRS)/G__RInterface.cxx)

RDO          := $(RDS:.cxx=.o)

#RDH          := $(RDS:.cxx=.h)

RDH          := $(MODDIRI)/RExports.h \
                $(MODDIRI)/TRInterface.h \
                $(MODDIRI)/TRInterface_Binding.h \
                $(MODDIRI)/TRObject.h \
                $(MODDIRI)/TRDataFrame.h \
                $(MODDIRI)/TRDataFrame__ctors.h \
                $(MODDIRI)/TRFunctionImport.h \
                $(MODDIRI)/TRFunctionImport__oprtr.h \
                $(MODDIRI)/TRFunctionExport.h \
                $(MODDIRI)/TRInternalFunction.h \
                $(MODDIRI)/TRInternalFunction__ctors.h 



RH    := $(RDH)  
RS    := $(filter-out $(MODDIRS)/G__%,$(wildcard $(MODDIRS)/*.cxx))
RO    := $(call stripsrc,$(RS:.cxx=.o))


RDEP  := $(RO:.o=.d) $(RDO:.o=.d)

RLIB  := $(LPATH)/libRInterface.$(SOEXT)
RMAP  := $(RLIB:.$(SOEXT)=.rootmap)

# used in the main Makefile
ALLHDRS      += $(patsubst $(MODDIRI)/%.h,include/%.h,$(RH))
ALLLIBS      += $(RLIB)
ALLMAPS      += $(RMAP)

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


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

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

$(RLIB): $(RO) $(RDO) $(ORDER_) $(MAINLIBS) $(RLIBDEP)
		@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)"  \
		   "$(SOFLAGS)" libRInterface.$(SOEXT) $@     \
		   "$(RO) $(RDO)" \
		   "$(RLIBEXTRA) $(RLIBS)"

$(call pcmrule,R)
	$(noop)

$(RDS): $(RDH) $(RL)  $(ROOTCINTTMPDEP) $(call pcmdep,R)
		$(MAKEDIR)
		@echo "Generating dictionary $@..."
		$(ROOTCLINGSTAGE2) -f $@  $(call dictModule,R)  -c $(RDH) $(RFLAGS) $(RL)

$(RMAP): $(RL) $(RLINC) $(ROOTCINTTMPDEP) $(call pcmdep,R)
		$(MAKEDIR)
		@echo "Generating rootmap $@..."
		$(ROOTCLINGSTAGE2) -r $(RDS)  $(call dictModule,R) -c $(ROOT_SRCDIR:%=-I%) $(RFLAGS) $(RDH) $(RL)


all-$(MODNAME): $(RLIB)

clean-$(MODNAME):
		@rm -f $(RDO)

clean::         clean-$(MODNAME)

distclean-$(MODNAME): clean-$(MODNAME)
		@rm -f $(RDEP) $(RDS) \
		   $(RLIB) $(RMAP)

distclean::     distclean-$(MODNAME)

#test-$(MODNAME): all-$(MODNAME)

##### extra rules ######
$(RO): CXXFLAGS += $(RFLAGS) -DUSE_ROOT_ERROR
$(RDO): CXXFLAGS += $(RFLAGS) -DUSE_ROOT_ERROR 
# add optimization to G__RInterface compilation
# Optimize dictionary with stl containers.
$(RDO) : NOOPT = $(OPT)
back to top