Rev 17481 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#-*- Makefile -*-RLIB=../../../libraryDPKG=$(RLIB)/$(PKG)SPKG=.SAVE=CHECKifeq ($(strip $(DLLNM)),)DLLNAME=$(PKG)elseDLLNAME=$(DLLNM)endif#this can be overwriten by the callerSRC = srcSTAMP = YES#source directorySSPKG=$(SPKG)/$(SRC)LSOURCES=$(wildcard $(SSPKG)/*.c $(SSPKG)/*.f $(SSPKG)/*.cc \$(SSPKG)/*.cpp $(SSPKG)/*.C)ifeq ($(strip $(LSOURCES)),)LOBJS=DYNLIB=elseLOBJS=$(foreach i, $(LSOURCES), $(basename $i).o)DYNLIB=$(DPKG)/libs/$(DLLNAME).dllendif# dataDSOURCES=$(filter-out $(SPKG)/data/CVS, $(wildcard $(SPKG)/data/*))ifeq ($(strip $(DSOURCES)),)DATA=elseDATA=$(DPKG)/dataendif# RPKGRFILES0=$(wildcard $(SPKG)/R/*.[RSqrs])RWIN32=$(wildcard $(SPKG)/R/windows/*.[Rr])ifeq ($(strip RWIN32),)PKGRFILES=$(PKGRFILES0)elseR1 = $(foreach i,$(RWIN32), $(addprefix $(SPKG)/R/, $(notdir $i)))PKGRFILES=$(filter-out $(R1), $(PKGRFILES0)) $(RWIN32)endif# demosPKGDEMOS0=$(wildcard $(SPKG)/demo/*)PKGDEMOS=$(filter-out $(SPKG)/demo/CVS, $(PKGDEMOS0))# OthersOFILES0=$(wildcard $(SPKG)/*)OFILES1= INDEX TITLEOFILES-NO= R r chm data man src src-c demo Makefile.in inst check orig tests \DESCRIPTION DESCRIPTION.in INDEX TITLE index title \configure configure.in cleanup CVS cvsOFILES3=$(foreach i, $(OFILES1), $(SPKG)/$i)OFILES2=$(foreach i, $(OFILES-NO), $(SPKG)/$i)OFILES=$(filter-out $(OFILES2),$(OFILES0))INSTFILES=$(wildcard $(SPKG)/inst/*)# src Makefile?SRCMAKE=$(wildcard $(SSPKG)/Makefile.win)all: $(DPKG)/zzzz $(DYNLIB) R $(DPKG)/demo $(DATA) mansrcsbare: $(DPKG)/zzzz R $(DPKG)/demoinclude $(RHOME)/src/gnuwin32/MkRulesclean:ifeq ($(strip $(SRCMAKE)),)$(RM) $(SSPKG)/$(DLLNAME).dll $(LOBJS) $(SSPKG)/$(DLLNAME).a $(SSPKG)/$(DLLNAME).def $(SSPKG)/$(DLLNAME)_res.*else$(MAKE) -C $(SSPKG) RHOME=$(RHOME) -f Makefile.win cleanendif$(RM) -rf $(SPKG)/chm $(SPKG)/check$(DPKG)/R/$(PKG): $(PKGRFILES)ifneq ($(strip $(PKGRFILES)),)@echo " installing R files"@$(MKDIR) -p $(DPKG)/R# $(CAT) $(PKGRFILES) | $(SED) $(SEDP) > $@@$(CAT) $(PKGRFILES) > $@@sh $(RHOME)/src/gnuwin32/install-save.sh $(SAVE) $(RLIB) $(PKG) $(RHOME)else@$(ECHO) " no R files in this package"endif$(DPKG)/demo: $(PKGDEMOS)ifneq ($(strip $(PKGDEMOS)),)@echo " installing demos"@$(RM) -rf $@@$(MKDIR) -p $@@$(CP) $(PKGDEMOS) $@endif$(SPKG)/TITLE:if [ ! -f $(SPKG)/TITLE -a -f $(SPKG)/DESCRIPTION ] ; then \perl $(RHOME)/share/perl/maketitle.pl $(SPKG)/DESCRIPTION > $@; \fi# This fails if DESCRIPTION.. doesn't exist.# $(DPKG)/zzzz: $(OFILES3) $(OFILES)# On the other hand, ...zzzz is never created so$(DPKG)/zzzz: $(SPKG)/TITLE@$(ECHO) "---------- Making package $(PKG) ------------"@if test -f ${SPKG}/configure; then \echo ; \echo " **********************************************" ; \echo " WARNING: this package has a configure script" ; \echo " It probably needs manual configuration" ; \echo " **********************************************" ; \echo ; \fi$(MKDIR) -p $(DPKG)ifeq ($(strip $(INSTFILES)),)-$(CP) -r $(OFILES3) $(OFILES) $(DPKG)/else-$(CP) -r $(OFILES3) inst/* $(DPKG)/endif@if test -f ${SPKG}/DESCRIPTION; then \$(SED) '/^\s*$$/d' ${SPKG}/DESCRIPTION > ${DPKG}/DESCRIPTION; \fiifeq ($(strip $(STAMP)),YES)@echo " adding build stamp to DESCRIPTION"@echo "cat('Built: R ', R.version[['major']], '.', R.version[['minor']], '; Win32; ', format(Sys.time()), sep='')" | $(RHOME)/bin/Rterm --slave --vanilla >> ${DPKG}/DESCRIPTIONendif$(DATA): $(DSOURCES)@echo " installing data files"@$(RM) -rf $(DATA)@$(MKDIR) -p $(DATA)@$(CP) $^ $@$(DYNLIB): $(SSPKG)/$(DLLNAME).dll$(MKDIR) -p $(DPKG)/libs$(CP) $^ $@$(SSPKG)/$(DLLNAME).dll: FORCE@echo " making DLL"ifeq ($(strip $(SRCMAKE)),)@$(MAKE) -C $(SSPKG) RHOME=$(RHOME) \-f $(RHOME)/src/gnuwin32/MakeDll DLLNAME=$(DLLNAME)else@$(MAKE) -C $(SSPKG) RHOME=$(RHOME) -f Makefile.winendif@echo " DLL made"@echoFORCE:AA=$(wildcard R/Makefile.win)ifeq ($(AA),)R: $(DPKG)/R/$(PKG)elseinclude R/Makefile.winendifMANMAIN=$(wildcard $(SPKG)/man/*.[Rr]d)MANWIN32=$(wildcard $(SPKG)/man/windows/*.[Rr]d)mansrcs: $(DPKG)/man/$(PKG).Rd$(DPKG)/man/$(PKG).Rd: $(MANMAIN) $(MANWIN32)@echo " installing man source files"@$(RM) -rf $(DPKG)/man@$(MKDIR) -p $(DPKG)/man@$(CAT) $^ > $(DPKG)/man/$(PKG).Rd