Rev 60780 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
# Makefile for R for Windows Installersinclude ../MkRules## Formerly in MkRulesFIND = findR_HOME = ../../..include $(R_HOME)/share/make/vars.mk## use this to install other packages from main libraryEXTRA_PKGS =## Default display mode, 0=MDI, 1=SDIMDISDI = 0## Default help style, 0=plain text, 1=HTMLHelpStyle = 1## Default internet connection, 0=Standard, 1=Internet2Internet = 0## Used to set Registry entriesProducer = R-coreifeq "$(WIN)" "64"ifneq ($(strip $(HOME32)),)SUFF = winelseSUFF = win64endifelseSUFF = win32endifFULLVERSION=`cat ../../../VERSION`RPREFIX = $(shell ../../../bin$(R_ARCH)/Rscript ../fixed/rwver.R)LIBFILES = $(foreach i, $(R_PKGS_BASE) $(R_PKGS_RECOMMENDED) $(EXTRA_PKGS), $(R_HOME)/library/$i)INFO_FILES = COPYING NEWS READMEDOC_INFO_FILES = AUTHORS COPYING FAQ RESOURCES THANKS CHANGESGW_INFO_FILES = COPYRIGHTS README.Rterm rw-FAQETC_FILES = Rprofile.site Rconsole Rdevga rgb.txt repositories Rcmd_environ# we don't want share/{Makefile.in,java,sh} installedSHARE_DIRS = R encodings licenses locale make texmf zoneinfoall: $(RPREFIX)-win.exemsi: $(RPREFIX)-$(SUFF).msiimagedir:$(RM) -r $(RPREFIX)$(MKDIR) $(RPREFIX)$(CP) -pr $(R_HOME)/bin $(R_HOME)/modules $(RPREFIX)# copy base and recommended packages$(MKDIR) -p $(RPREFIX)/library$(CP) -pr $(LIBFILES) $(RPREFIX)/library$(RM) $(RPREFIX)/library/*/MD5$(RM) $(RPREFIX)/*/Makefile.in$(MKDIR) -p $(RPREFIX)/etc$(R_ARCH)$(CP) -p $(foreach i,$(ETC_FILES),$(R_HOME)/etc/$i) $(RPREFIX)/etc$(CP) -p $(R_HOME)/etc$(R_ARCH)/Makeconf $(RPREFIX)/etc$(R_ARCH)# copy info and documentation files$(MKDIR) -p $(RPREFIX)/doc$(CP) -p $(R_HOME)/doc/CRAN_mirrors.csv $(RPREFIX)/doc$(MKDIR) -p $(RPREFIX)/doc/manual$(CP) -pr $(R_HOME)/doc/html $(RPREFIX)/doc$(CP) -p $(R_HOME)/doc/manual/*.html $(R_HOME)/doc/manual/*.pdf \$(RPREFIX)/doc/manual# html copies of these are in doc/manual, and we don't have FAQ PDF on menus$(RM) $(RPREFIX)/doc/manual/R-FAQ.pdf$(RM) $(RPREFIX)/doc/html/R-admin.html$(RM) $(RPREFIX)/doc/html/index-default.html#$(CP) -p $(foreach i,$(INFO_FILES),$(R_HOME)/$i) $(RPREFIX)$(CP) -p $(foreach i,$(DOC_INFO_FILES),$(R_HOME)/doc/$i) $(RPREFIX)/doc$(CP) -p $(foreach i,$(GW_INFO_FILES),../$i) $(RPREFIX)/doc$(CP) -p $(RPREFIX)/doc/CHANGES $(RPREFIX)$(SED) -e s/@RWVER@/$(RPREFIX)/g \-e s/@RVER@/$(RVER)/g \-e "s/@FULLVERSION@/$(FULLVERSION)/g" ../README > $(RPREFIX)/README.$(RPREFIX)$(SED) -e 3,5d ../README.packages > $(RPREFIX)/doc/README.packages# convert docs and batch files to CRLF: might already be on Windows, though.zip -q dosfiles.zip $(RPREFIX)/* $(RPREFIX)/doc/*unzip -qao dosfiles.zip$(RM) dosfiles.zip$(CP) -p $(R_HOME)/NEWS.pdf $(RPREFIX)$(CP) -p $(R_HOME)/doc/NEWS.rds $(R_HOME)/doc/CHANGES.rds $(RPREFIX)/doc## files to make source packages$(MKDIR) -p $(RPREFIX)/share \$(RPREFIX)/src/library $(RPREFIX)/src/gnuwin32$(CP) $(R_HOME)/doc/html/logo.jpg $(RPREFIX)/doc/html$(CP) $(R_HOME)/doc/KEYWORDS* $(RPREFIX)/doc$(CP) -pr $(R_HOME)/include $(RPREFIX)$(CP) -pr $(foreach i,$(SHARE_DIRS),$(R_HOME)/share/$i) $(RPREFIX)/share# This is odd -- better to clean the copy(cd ..; $(MAKE) --no-print-directory PKGDIR=. pkgclean-windlgs)$(CP) -pr ../windlgs $(RPREFIX)/src/library## test dirmkdir $(RPREFIX)/tests$(MAKE) --no-print-directory -C ../../../tests -f Makefile.win \INST_TO=../src/gnuwin32/installer/$(RPREFIX)/tests install-tests#$(FIND) $(RPREFIX) -name .svn -prune -exec rm -rf \{\} \;$(FIND) $(RPREFIX) -name \*~ -deletemd5sums:@echo "adding MD5 checksums"@(cd $(RPREFIX); echo "tools:::.installMD5sums(\".\")" | \R_DEFAULT_PACKAGES=NULL LC_COLLATE=C R_OSTYPE=windows \../../../../$(BINDIR)/Rterm.exe --vanilla --slave)PDF_FILES = $(wildcard $(RPREFIX)/library/*/doc/*.pdf)fixups:echo "make.packages.html(.Library,temp=FALSE,verbose=FALSE)" | $(RPREFIX)/$(BINDIR)/Rterm.exe --vanilla --slave LC_COLLATE=C$(CP) -prf $(R_HOME)/Tcl $(RPREFIX)$(RM) $(RPREFIX)/Tcl*/lib/*.libifneq ($(strip $(QPDF)),)@for f in $(PDF_FILES); do \$(QPDF)/bin/qpdf --stream-data=compress $${f} tmp.pdf; \mv tmp.pdf $${f}; \doneendif32bit:ifeq "$(WIN)" "64"ifneq ($(strip $(HOME32)),)@echo "------------ including 32-bit files"(cd "$(HOME32)"; zip -qr9X 32bit */i386 library/*/libs/i386 bin/R.exe bin/Rscript.exe)unzip -qo "$(HOME32)/32bit" -d $(RPREFIX)rm "$(HOME32)/32bit.zip"mkdir -p $(RPREFIX)/Tcl$(CP) -prf "$(HOME32)/Tcl/bin" "$(HOME32)/Tcl/lib" $(RPREFIX)/Tclfor f in $(R_PKGS_RECOMMENDED); do \sed -e 's/Archs: x64/Archs: i386, x64/' \../../../library/$${f}/DESCRIPTION \> $(RPREFIX)/library/$${f}/DESCRIPTION; \doneelse@echo "------------ not including 32-bit files"endifendifextras:for f in $(DLLs32); do \cp "$$f" $(RPREFIX)/bin/i386; \donefor f in $(DLLs64); do \cp "$$f" $(RPREFIX)/bin/x64; \done## for Inno Setup installerR.iss: JRins.R header1.iss types3264.iss types32.iss code.iss \CustomMsg.iss imagedir fixups 32bit extras md5sums \../../../VERSION ../../../SVN-REVISION../../../bin$(R_ARCH)/Rscript JRins.R \$(RPREFIX) $(RPREFIX) $(MDISDI) \$(HelpStyle) $(Internet) $(Producer) "$(ISDIR)"$(RPREFIX)-win.exe: R.iss"$(ISDIR)/iscc" R.iss > $(RPREFIX).log 2>&1## for MSI installeruuidgen.exe: uuidgen.o$(CC) -o $@ $< -lole32# currently use about 3500: allow for EXTRA_PKGSuuids: uuidgen.exe./uuidgen 10000 > $@files.wxs: imagedir fixups 32bit extras md5sums"$(WIX3DIR)/heat" dir $(RPREFIX) -sw5150 -nologo -o $@R.wxs: WIXins.R uuids files.wxs../../../bin$(R_ARCH)/Rscript WIXins.R $(RPREFIX) $(RPREFIX) $(WIX_PERSONAL) || (rm -f $@;exit 1)$(RPREFIX)-$(SUFF).msi: R.wxs License.rtf"$(WIX3DIR)/candle" R.wxs > $(RPREFIX).log 2>&1"$(WIX3DIR)/light" -out $@ R.wixobj -dcl:high \-ext WixUIExtension -sw1076 -sval -spdb >> $(RPREFIX).log 2>&1## too often this fails to empty directories.clean:rm -rf R.iss *.log R.wxs files.wxs R.wixobj uuidgen.o uuidgen.exe uuids-rm -rf $(RPREFIX)distclean: cleanrm -f R*-win*.exe R*-win*.msimyR:echo "make.packages.html(.Library, verbose=FALSE)" | "$(IMAGEDIR)/$(BINDIR)/Rterm.exe" --vanilla --slave LC_COLLATE=C@echo "adding MD5 checksums"@(cd "$(IMAGEDIR)"; echo "tools:::.installMD5sums(\".\")" | \R_DEFAULT_PACKAGES=NULL LC_COLLATE=C R_OSTYPE=windows \"$(IMAGEDIR)/$(BINDIR)/Rterm.exe" --vanilla --slave)../../../bin$(R_ARCH)/Rscript JRins.R \$(RPREFIX) "$(IMAGEDIR)" $(MDISDI) \$(HelpStyle) $(Internet) $(Producer) "$(ISDIR)""$(ISDIR)/iscc" R.iss > myR.log