The R Project SVN R

Rev

Rev 37258 | Blame | Last modification | View Log | Download | RSS feed

#-*- Makefile -*-
# Makefile for packages, only.

include MkRules

RVER = @RVER@

## must be absolute and space-free paths
ifneq ($(strip $(BUILD)),CROSS)
RHOME = $(shell ./Rpwd.exe ../..)
PKGD = $(shell ./Rpwd.exe "$(PKGDIR)")
R_EXE = $(RHOME)/bin/rterm.exe
else
RHOME = $(shell $(PERL) pwd.pl ../..)
PKGD = $(shell $(PERL) pwd.pl $(PKGDIR))
endif

REXE = $(R_EXE) --vanilla --slave

RLIB = $(RHOME)/library
PKGDIR = $(RHOME)/src/library


all:

#                          ===== Packages ======

pkg-%:
    @$(MAKE) --no-print-directory \
      SAVE=$($*-SAVE) LAZY=$($*-LAZY) LAZYDATA=$($*-LAZYDATA) \
          DLLNM=$($*-DLLNM) FLIBS="$(FLIBS)" BUILD=$(BUILD) \
      PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) RVER=$(RVER) \
      -C $(PKGD)/$* -f $(RHOME)/src/gnuwin32/MakePkg
    @if test -d $(RLIB)/$*/data ; then \
      $(MAKE) --no-print-directory $($*-ZIPDATA)data-$* ; \
    fi
ifeq ($(strip $(HELP)),YES)
    @$(ECHO) "  installing help"
  ifeq ($(strip $(DPKG)),)
    ifeq ($(strip $(WINHELP)),CHM)
    @$(MAKE) --no-print-directory -C ./help -s RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(RLIB)/$* HELPTYPES='$(HELPTYPES) -chm' $($*-HELP)help-$*
    @$(MAKE) --no-print-directory -C ./help -s RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(RLIB)/$* chm-$*
    else
    @$(MAKE) --no-print-directory -C ./help -s RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(RLIB)/$* HELPTYPES='$(HELPTYPES)' $($*-HELP)help-$*
    endif
  else
    ifeq ($(strip $(WINHELP)),CHM)
    @$(MAKE) --no-print-directory -C ./help -s RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(DPKG) HELPTYPES='$(HELPTYPES) -chm' $($*-HELP)help-$*
    @$(MAKE) --no-print-directory -C ./help -s RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(DPKG) chm-$*
    else
    @$(MAKE) --no-print-directory -C ./help -s RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(DPKG) HELPTYPES='$(HELPTYPES)' $($*-HELP)help-$*
    endif
  endif
endif

pkgfake-%:
    @$(MAKE) --no-print-directory DLLNM=$($*-DLLNM)  FLIBS="$(FLIBS)" BUILD=$(BUILD) \
      -C $(PKGD)/$* PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) RVER=$(RVER) \
      -f $(RHOME)/src/gnuwin32/MakePkg fake
    @$(ECHO) "  installing help"
    @$(MAKE) --no-print-directory -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(DPKG) pkgfake-$*


pkgclean-%:
    $(MAKE) --no-print-directory DLLNM=$($*-DLLNM) RHOME=$(RHOME) BUILD=$(BUILD) \
      -C $(PKGD)/$* PKG=$* -f $(RHOME)/src/gnuwin32/MakePkg clean

pkgcheck-%:
    @$(ECHO) -------- Testing package $* --------
    -@$(MKDIR) -p $(PKGD)/$*/check
    @$(MAKE) --no-print-directory -C $(PKGD)/$*/check PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) \
      -f $(RHOME)/src/gnuwin32/check/PkgCheck
    @if test -d $(PKGD)/$*/tests ; then \
      $(MAKE) --no-print-directory -C $(PKGD)/$*/tests PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) \
        -f $(RHOME)/src/gnuwin32/check/PkgCheck tests;\
    fi

lazyload-%:
    @$(MAKE) --no-print-directory PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) BUILD=$(BUILD) -C $(PKGD)/$* SPKG=$(PKGD)/$* -f $(RHOME)/src/gnuwin32/MakePkg lazyload

lazydata-%:
    @$(MAKE) --no-print-directory PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) BUILD=$(BUILD) -f $(RHOME)/src/gnuwin32/MakePkg lazydata

ziphelp-%:
    $(MAKE) --no-print-directory -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(DPKG) ziphelp-$*

ziponly-%:
    $(MAKE) --no-print-directory -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) DPKG=$(DPKG) ziponlyhelp-$*

## must be careful not to zip up a dir setup for lazy-data
zipdata-%:
    @if ! test -f $(RLIB)/$*/data/Rdata.rdb ; then \
      $(ECHO) "  zipping data" ; \
      (cd $(RLIB)/$*/data; \
        if test -f Rdata.zip ; then \
          unzip -qou Rdata; \
        fi; \
        $(RM) Rdata.zip filelist ; \
        ls -1 > filelist; \
        zip -rmq9X Rdata * -x filelist 00Index) ;\
    fi

data-%:
    @if ! test -f $(RLIB)/$*/data/Rdata.rdb ; then \
      $(ECHO) "  not zipping data" ; \
    fi