Rev 43110 | Blame | Last modification | View Log | Download | RSS feed
#-*- Makefile -*-all: before makeMakedeps $(DLLNAME).dll after## these targets are just here to allow packages to add to them.before:after:.PHONY: all before after shlib-clean makeMakedeps# set this in Makevars.win to supply your own resource fileRCNAME=${DLLNAME}_res# set this (e.g. in SHLIB) to suppress adding version info to the DLLRCOBJ=$(RCNAME).o# Don't use SOURCES as this get passed on for libR.CSOURCES=$(wildcard -f *.c)CXXSOURCES=$(wildcard -f *.cc *.cpp *.C)FSOURCES=$(wildcard -f *.f)FCSOURCES=$(wildcard -f *.f90 *.f95)MSOURCES=$(wildcard -f *.m)OBJSA=$(foreach i,$(CSOURCES) $(FSOURCES) $(CXXSOURCES) $(FCSOURCES) $(MSOURCES),$(basename $i).o)include $(RHOME)/src/gnuwin32/MkRulesifneq ($(strip $(FCSOURCES)),)# don't assume F95 can be cross-compiled in the same wayDLL="$(FC)"elseifneq ($(strip $(CXXSOURCES)),)DLL_LDMAIN=$(CXX)endififneq ($(strip $(FSOURCES)),)EXTRA_LIBS+=$(FLIBS)endififneq ($(strip $(MSOURCES)),)EXTRA_LIBS+=-lobjcendifendififdef DEBUGDLLFLAGS=DEBUGFLAG=$(G_FLAG)elseDLLFLAGS=-sDEBUGFLAG=endifCOPTFLAG=-O3 -WallCXXOPTFLAG=-O2 -WallFOPTFLAG=-O3CPPFLAGS=$(PKG_CPPFLAGS) -I$(RHOME)/include $(CLINK_CPPFLAGS)CFLAGS=$(PKG_CFLAGS) $(DEBUGFLAG) $(COPTFLAG)CXXFLAGS=$(PKG_CXXFLAGS) $(DEBUGFLAG) $(CXXOPTFLAG)FFLAGS=$(PKG_FFLAGS) $(DEBUGFLAG) $(FOPTFLAG)DLLLIBS=-L$(RHOME)/$(IMPDIR) $(PKG_LIBS) $(PKG_LIBS2) $(EXTRA_LIBS) -lRRESFLAGS=-I $(RHOME)/include# for use by Makevars.winR_HOME=$(RHOME)SHLIB=$(DLLNAME).dllSAFE_FFLAGS=$(FOPTFLAG) $(DEBUGFLAG) -ffloat-store## can be overridden in Makevars[.win]OBJECTS=$(filter-out $(OBJS-NO),$(OBJSA))CXXSOURCES1=$(wildcard -f *.cc)CXXSOURCES2=$(wildcard -f *.cpp)CXXSOURCES3=$(wildcard -f *.C)DEPS=$(CSOURCES:.c=.d) $(CXXSOURCES1:.cc=.d) $(CXXSOURCES2:.cpp=.d) $(CXXSOURCES3:.C=.d) $(MSOURCES:.m=.d)## these are documented (in R-admin) to come after MakeDll and MkRules,## unlike Unix.AA=$(wildcard Makevars.win)ifeq ($(AA),Makevars.win)include Makevars.winelse-include Makevarsendif$(DLLNAME)_res.rc:@PERL5LIB=$(RHOME)/share/perl $(PERL) $(RHOME)/src/gnuwin32/makeDllRes.pl $(DLLNAME) > $@$(DLLNAME)_res.o: $(DLLNAME)_res.rc $(RHOME)/include/Rversion.hifeq ($(wildcard $(DLLNAME)-win.def),$(DLLNAME)-win.def)$(DLLNAME).dll : $(DLLNAME)-win.def $(OBJECTS) $(RCOBJ)$(DLL) -shared $(DLLFLAGS) $($*-DLLFLAGS) -o $@ $^ $($*-DLLLIBS) $(DLLLIBS)else$(DLLNAME).dll : $(OBJECTS) $(RCOBJ)endifshlib-clean:@$(RM) -f $(DLLNAME)_res.rc $(OBJECTS) $(RCOBJ) *.d MakedepsmakeMakedeps: $(DEPS)@$(RM) Makedepsifneq ($(strip $(DEPS)),)-@cat $(DEPS) >> Makedepsendif-include Makedeps