Rev 26266 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#-*- Makefile -*-RLIB=../../../libraryDPKG=$(RLIB)/$(PKG)SPKG=.SAVE=CHECKifneq ($(strip $(BUILD)),CROSS)SPKG0 = $(shell $(RHOME)/src/gnuwin32/Rpwd.exe $(SPKG))DPKG0 = $(shell $(RHOME)/src/gnuwin32/Rpwd.exe $(DPKG))elseSPKG0=$(SPKG)DPKG0=$(DPKG)endififeq ($(strip $(DLLNM)),)DLLNAME=$(PKG)elseDLLNAME=$(DLLNM)endif#this can be overwriten by the callerSRC = src#source directorySSPKG=$(SPKG)/$(SRC)# src Makefile?SRCMAKE=$(wildcard $(SSPKG)/Makefile.win)SDYNLIB=$(SSPKG)/$(DLLNAME).dllLSOURCES=$(wildcard $(SSPKG)/*.c $(SSPKG)/*.f $(SSPKG)/*.cc \$(SSPKG)/*.cpp $(SSPKG)/*.C)ifeq ($(strip $(LSOURCES)),)LOBJS=elseLOBJS=$(foreach i, $(LSOURCES), $(basename $i).o)endif# 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))# execEXECFILES=$(filter-out $(SPKG)/exec/CVS, $(wildcard $(SPKG)/exec/*))# OthersINSTFILES=$(filter-out $(SPKG)/inst/CVS, $(wildcard $(SPKG)/inst/*))all: $(DPKG)/zzzz frontmatter nmspace Dynlib R $(DPKG)/demo \$(DPKG)/exec $(DATA) mansrcs indicesfake: zzzfirst frontmatter nmspacefake R Rfake $(DPKG)/demo \$(DPKG)/exec $(DATA) mansrcs indicesinclude $(RHOME)/src/gnuwin32/MkRulesclean:ifeq ($(strip $(SRCMAKE)),)$(RM) $(SDYNLIB) $(LOBJS) $(SSPKG)/$(DLLNAME).a $(SSPKG)/$(DLLNAME).def $(SSPKG)/$(DLLNAME)_res.* $(SSPKG)/*.d $(SSPKG)/Makedepselse$(MAKE) -C $(SSPKG) RHOME=$(RHOME) -f Makefile.win cleanendif$(RM) -rf $(SPKG)/chm $(SPKG)/check## used to build skeletal versions of packages, enough to run## package tools to install them properlyRcode: Rcode0 DynlibRcode0:@$(MKDIR) -p $(DPKG) $(DPKG)/R@$(CAT) $(PKGRFILES) > $(DPKG)/R/$(PKG)@if test -f ${SPKG}/NAMESPACE; then \$(CP) ${SPKG}/NAMESPACE $(DPKG)/NAMESPACE; \fi@(cat DESCRIPTION; $(ECHO); $(ECHO) "Built: R" $(RVER)\; \; `date`) \| $(SED) '/^\s*$$/d' > ${DPKG}/DESCRIPTION$(DPKG)/R/$(PKG): $(PKGRFILES)ifneq ($(strip $(PKGRFILES)),)@$(ECHO) " installing R files"@$(MKDIR) -p $(DPKG)/Rifeq ($(strip $(BUILD)),CROSS)@$(ECHO) ".installPackageCodeFiles('"$(SPKG)"', '"$(DPKG)"')" \| R_DEFAULT_PACKAGES=tools $(R_EXE) --vanilla --slave > /dev/nullelse@$(ECHO) ".installPackageCodeFiles('"$(SPKG)"', '"$(DPKG)"')" \| $(RHOME)/bin/rterm.exe --vanilla --slave \R_DEFAULT_PACKAGES=tools > /dev/nullendif## install halts here if collater failed@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$(DPKG)/exec: $(EXECFILES)ifneq ($(strip $(EXECFILES)),)@$(ECHO) " installing exec files"@$(RM) -rf $@@$(MKDIR) -p $@@$(CP) $(EXECFILES) $@endif$(DPKG)/zzzz: zzzfirst@if test -f ${SPKG}/configure.win; then \sh ${SPKG}/configure.win; \else 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; \fizzzfirst:ifeq ($(SPKG0),$(DPKG0))@$(ECHO)@$(ECHO) " *** cannot install a package into its source directory ***"@$(ECHO)@exit 111endif@$(ECHO)@$(ECHO) "---------- Making package $(PKG) ------------"@$(MKDIR) -p $(DPKG)frontmatter:@$(MKDIR) -p $(DPKG)ifneq ($(strip $(INSTFILES)),)@$(ECHO) " installing inst files"-@$(CP) -r inst/* $(DPKG)endif@if test -f ${SPKG}/DESCRIPTION; then \$(ECHO) " adding build stamp to DESCRIPTION"; \else \$(ECHO) "A package must contain a DESCRIPTION file"; \exit 27; \fiifeq ($(strip $(BUILD)),CROSS)@(cat DESCRIPTION; $(ECHO); $(ECHO) "Built: R" $(RVER)\; Win32\; `date`) \| $(SED) '/^\s*$$/d' > ${DPKG}/DESCRIPTIONelse@$(ECHO) ".installPackageDescription('.', '"$(DPKG)"')" | \$(RHOME)/bin/rterm.exe --vanilla --slave R_DEFAULT_PACKAGES=tools> /dev/nullendifnmspace:@if test -f ${SPKG}/NAMESPACE; then \$(ECHO) " installing NAMESPACE file"; \$(CP) ${SPKG}/NAMESPACE $(DPKG)/NAMESPACE; \finmspacefake:@if test -f ${SPKG}/NAMESPACE; then \$(ECHO) " installing NAMESPACE file"; \$(SED) -e '/useDynLib/d' ${SPKG}/NAMESPACE > $(DPKG)/NAMESPACE; \fi$(DATA): $(DSOURCES)@$(ECHO) " installing data files"@$(RM) -rf $(DATA)@$(MKDIR) -p $(DATA)@$(CP) $^ $@Dynlib: srcDynlib@if test -f $(SDYNLIB) ; then \$(ECHO) " installing DLL" ; \$(MKDIR) -p $(DPKG)/libs ; \$(CP) $(SDYNLIB) $(DPKG)/libs ; \fisrcDynlib:ifeq ($(strip $(SRCMAKE)),)ifneq ($(strip $(LOBJS)),)@$(ECHO) " making DLL ..."@$(MAKE) --no-print-directory -C $(SSPKG) RHOME=$(RHOME) \-f $(RHOME)/src/gnuwin32/MakeDll DLLNAME=$(DLLNAME)@$(ECHO) " ... DLL made"endifelse@$(ECHO) " running src/Makefile.win ..."@$(MAKE) --no-print-directory -C $(SSPKG) RHOME=$(RHOME) -f Makefile.win@$(ECHO) " ... done"endif# RAA=$(wildcard R/Makefile.win)ifeq ($(AA),)R: $(DPKG)/R/$(PKG)elseinclude R/Makefile.winendifRfake:@if test -f $(SPKG)/NAMESPACE; then \echo ".onLoad <- function(list, pkg) NULL" >> $(DPKG)/R/$(PKG) ; \else \echo ".First.lib <- function(lib, pkg) NULL" >> $(DPKG)/R/$(PKG) ;\fiMANMAIN=$(wildcard $(SPKG)/man/*.[Rr]d)MANWIN32=$(wildcard $(SPKG)/man/windows/*.[Rr]d)mansrcs: $(DPKG)/man/$(PKG).RdPKGMANFILES=$(MANMAIN) $(MANWIN32)$(DPKG)/man/$(PKG).Rd: $(MANMAIN) $(MANWIN32)ifneq ($(strip $(PKGMANFILES)),)@$(ECHO) " installing man source files"@$(RM) -rf $(DPKG)/man@$(MKDIR) -p $(DPKG)/man@for rdfile in $^; do \$(CAT) $${rdfile}; echo; echo '\eof'; \done > $(DPKG)/man/$(PKG).Rdelse@$(ECHO) " no man files in this package"endifindices:@$(ECHO) " installing indices"ifeq ($(strip $(BUILD)),CROSS)@$(ECHO) ".installPackageIndices('.', '"$(DPKG)"')" | \R_DEFAULT_PACKAGES=tools $(R_EXE) --vanilla --slave > /dev/nullelse@$(ECHO) ".installPackageIndices('.', '"$(DPKG)"')" | \$(RHOME)/bin/rterm.exe --vanilla --slave R_DEFAULT_PACKAGES=tools > /dev/nullendif# need not have HTML installed when building packages@$(MKDIR) -p $(RHOME)/doc/html/search@$(CAT) $(RHOME)/library/*/CONTENTS > $(RHOME)/doc/html/search/index.txt@PERL5LIB=$(RHOME)/share/perl $(PERL) \$(RHOME)/share/perl/build-help-windows.pl -htmllistsmd5sums:ifneq ($(strip $(PKG)),base)@$(ECHO) " adding MD5 sums"ifeq ($(strip $(BUILD)),CROSS)@$(ECHO) ".installMD5sums('"$(DPKG)"')" | \R_DEFAULT_PACKAGES=tools $(R_EXE) --vanilla --slave > /dev/nullelse@$(ECHO) ".installMD5sums('"$(DPKG)"')" | \$(RHOME)/bin/rterm.exe --vanilla --slave R_DEFAULT_PACKAGES=tools > /dev/nullendifendif