# 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)