Rev 33914 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#!/usr/bin/make -f# debian/rules file for the Debian GNU/Linux r-base package# Copyright 1997-2004 by Douglas Bates <bates@stat.wisc.edu># and Dirk Eddelbuettel <edd@debian.org># $Id: rules,v 1.56 2004/04/09 13:32:46 bates Exp $corepackage = r-base-corelatexpackage = r-base-latexpdfpackage = r-doc-pdfhtmlpackage = r-doc-htmlgnomepackage = r-gnomenmathpackage = r-mathlibinfopackage = r-doc-inforecdpackage = r-recommended# for the standalone library, no sonames are assigned in the upstream Makefilessomaj = 1somin = 0sorel = 0libver = $(somaj).$(somin).$(sorel)debbase := $(CURDIR)/debiandebtmp := $(debbase)/tmpdebdoc := $(debbase)/$(corepackage)/usr/share/doc/$(corepackage)debmat := $(debbase)/$(nmathpackage)debetc := $(debbase)/$(corepackage)/usr/lib/R/etcdebinf := $(debbase)/$(infopackage)arch := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)# set this to 1 (default) if you want the Gnome GUI package# edd 27 Feb 2005 as of R 2.1.0, the Gnome GUI is no longer includedgnome = 0ifeq ($(gnome),0)gnomeconfig = --without-gnomeelsegnomeconfig = --with-gnomeendif#export DH_VERBOSE = 1export DH_COMPAT = 3# edd 15 Aug 2001 default to blas, atlas can override it#atlas = --with-blas=blas# dmb 04 Apr 2003 better to use no specify blas# atlas = --with-blas# edd 28 Apr 2003 try configuring with atlas# atlas = --with-blas=atlas# edd 16 Oct 2003 back to older default#atlas = --with-blas=blas# edd 26 Feb 2004 point to refblas3atlas = --with-blas=-lblas-3# edd 08 Mar 2003 use the new lapack feature# edd 27 Apr 2003 Set this to =no as we currently see numerical errors#lapack = --with-lapack=no# edd 26 Feb 2004 point to lapack3#lapack = --with-lapack=-llapack-3# edd 13 Oct 2004 Set this once again to =no as we still see numerical errorslapack = --with-lapack=no# edd 02 Sep 2001 default to g77 but let m68k use f2c# edd 06 Mar 2003 enforce 3.2 versions explicitly# so that on testing we will pick them over 2.95# edd 07 Jun 2003 let's fall back to the default compilersfortrancompiler = F77=g77compiler = gcccxxcompiler = g++compilerflags = -O2# edd 04 Sep 2001 default compiler flags, lowered for m68kcompilerflags = -O2# m68k barks when using g77, and when gcc use -O2# edd 26 Nov 2002 switched back to g77# edd 02 Jun 2003 switched back# cts 04 Jun 2003 use -O1 on m68kifeq ($(arch),m68k-linux)fortrancompiler = F2C=f2ccompilerflags = -O1endif# edd 14 Nov 2003 turn blas off on armifeq ($(arch),arm-linux)atlas = --without-blasendif## edd 09 Nov 2001 ia64 needs gcc-3.0, hppa gets it by default#ifeq ($(arch),ia64-linux)#fortrancompiler = F77=g77-3.0#compiler = gcc-3.0#cxxcompiler = g++-3.0#compilerflags = -O2#endif## lamont@debian.org 06 Dec 2001 hppa needs -ffunction-sectionsifeq ($(arch),hppa-linux)compilerflags = -O2 -ffunction-sectionsendif## edd 20 Jun 2002 no optimisation or debugging on baby systems## edd 02 Jun 2003 use this on arm only##ifneq "$(findstring $(arch), m68k-linux arm-linux)" ""ifneq "$(findstring $(arch), arm-linux)" ""compilerflags = -O0 -g0endifget-orig-source: upstreamupstream:#links http://cran.us.r-project.org/src/baselinks http://cran.r-project.org/src/base/?M=Dupstreamdevel:links ftp://ftp.stat.math.ethz.ch/Software/R#links http://cran.us.r-project.org/src/base#rsync -vaC rsync.r-project.org::r-devel .upstreamprerelease:links http://cran.r-project.org/src/base-prerelease## edd 24 Oct 2003 build is invoked by the buildd, so we would prefer to## not imply build-indep; unfortunately R does not build## properly without it, so we have to stick with it## edd 15 Jan 2004 trying again on build only build: build-arch build-indep## the main hook is to then have binary depend on both## binary-arch and binary-indep, and those on their buildsbuild: build-archbuild-arch: make-archbuild-indep: make-indepconfigure: configure-stampconfigure-stamp:@echo "*** configure ***"# we have to disable use of the expanded R_LD_LIBRARY_PATH as it# conflicts with Debian's Atlas-can-replace-Blas scheme# so set R_LD_LIBRARY_PATH to the minimal value R_HOME/bin# and discard what configure finds for it on this machineperl -p -i -e 's|:\@R_LD_LIBRARY_PATH\@||' src/scripts/R.sh.indh_testdirR_PAPERSIZE=letter \R_BROWSER=sensible-browser \PAGER=/usr/bin/pager \PERL=/usr/bin/perl \R_UNZIPCMD=/usr/bin/miniunzip \R_ZIPCMD=/usr/bin/minizip \R_PRINTCMD=/usr/bin/lpr \CC=${compiler} \CXX=${cxxcompiler} \${fortrancompiler} \CPPFLAGS= \LDFLAGS= \FLIBS= \./configure --prefix=/usr \--with-bzlib \--with-jpeg \--with-pcre \--with-png \--with-readline \--with-tcltk \--with-zlib \--mandir=/usr/share/man \--infodir=/usr/share/info \$(atlas) \$(lapack) \$(gnomeconfig) \--enable-R-profiling \--enable-R-shlib \--without-recommended-packages \--build $(arch)touch configure-stampmake-arch: configure make-arch-stampmake-arch-stamp:@echo "*** make-arch ***"$(MAKE) CFLAGS="$(compilerflags)" \CXXFLAGS="$(compilerflags)" \FFLAGS="$(compilerflags)" \CC=${compiler} \CXX=${cxxcompiler} \${fortrancompiler} \R# the top-level 'make stamp-recommended' target implies 'make docs'# which (for the buildds) implies a lot of time wasted generating# output we already take from the initial i386 build# $(MAKE) CFLAGS="$(compilerflags)" \# CXXFLAGS="$(compilerflags)" \# FFLAGS="$(compilerflags)" \# CC=${compiler} \# CXX=${cxxcompiler} \# ${fortrancompiler} \# stamp-recommended# make standalone math lib(cd src/nmath/standalone; \$(MAKE) CFLAGS="$(compilerflags) -D_REENTRANT" \CXXFLAGS="$(compilerflags) -D_REENTRANT"\FFLAGS="$(compilerflags) -D_REENTRANT" \CC=${compiler} \CXX=${cxxcompiler} \${fortrancompiler} \libRmath_la_LDFLAGS=-Wl,-soname,libRmath.so.$(somaj) \)# edd 25 Jan 2004 make install needs html docs# edd 03 Feb 2004 new test, try without#make docs# edd 15 Jan 2004 make install needs html docs# edd 25 Jan 2004 not needed as we have 'make docs'## make html$(MAKE) docs R_CMD_BUILD_HELP_OPTS="--txt --example"touch make-arch-stampmake-indep: configure make-indep-stampmake-indep-stamp:@echo "*** make-indep ***"## edd 12 Jan 2004 uncommenting 'make docs' to split binary all/any## now that recommended packages aren't made## edd 25 Jan 2004 make docs and make html are made in make-arch## edd 05 Feb 2004 finally, this works in pre-1.9.0 with Kurt's## R_CMD_BUILD_HELP_OPTS$(MAKE) docs$(MAKE) html$(MAKE) help$(MAKE) info$(MAKE) pdftouch make-indep-stampmake: make-stampmake-stamp: make-arch make-indepcheck: make-arch check-stampcheck-stamp:@echo "*** check ***"ifneq ($(arch),arm-linux)-make checkendiftouch check-stampclean:@echo "*** clean ***"dh_testdirdh_testrootrm -f configure-stamp \build-stamp build-indep-stamp build-arch-stamp \make-stamp make-arch-stamp make-indep-stamp \install-indep-stamp install-arch-stamp \check-stamp-$(MAKE) distclean-rm -f `find . -name "*~"`-rm -rf debian/tmp debian/files* core debian/substvars-rm -f doc/html/function.html doc/html/packages.html-rm -f modules/*.so# left over in CVS from r-base --> r-base-core transition(cd debian; rm -vf r-base.dirs r-base.files r-base.lintian \r-base.menu r-base.postinst)dh_cleaninstall: install-arch install-indepinstall-arch: make-arch check install-arch-stampinstall-arch-stamp:@echo "*** install-arch ***"dh_testdirdh_testrootdh_clean -a -kdh_installdirs -A$(MAKE) prefix=$(debtmp)/usr \mandir=$(debtmp)/usr/share/man install# link $R_HOME/bin/R to real one, and set R_HOME_DIR env.var.(cd $(debtmp)/usr/lib/R/bin/; \ln -svf ../../../bin/R R; \cd ../../../bin; \perl -p -i -e \'s|^R_HOME_DIR=.*|R_HOME_DIR=/usr/lib/R|' R)# set browser to mozilla as mozilla-1.0.0 works with help.start()# (we're now using /usr/bin/sensible-browser, see above)# (cd $(debtmp)/usr/lib/R/etc; \# perl -p -i -e \# "s|R_BROWSER-'.*'|R_BROWSER-'/usr/bin/mozilla'|" \# Renviron)# fix permissions (Lintian)chmod a+x $(debtmp)/usr/lib/R/share/sh/echo.sh \$(debtmp)/usr/lib/R/share/sh/help-links.sh \$(debtmp)/usr/lib/R/share/sh/help-print.sh# remove unneeded license files, but link them backrm -v $(debtmp)/usr/lib/R/COPYING \$(debtmp)/usr/lib/R/COPYING.LIB(cd $(debtmp)/usr/lib/R/; \ln -s ../../share/common-licenses/GPL COPYING; \ln -s ../../share/common-licenses/LGPL COPYING.LIB)# edd 15 Jul 2002 reduce compile load on small machinesifneq "$(findstring $(arch), m68k-linux arm-linux)" ""perl -p -i -e 's/-g -O2/-g0 -O0/g' $(debtmp)/usr/lib/R/etc/Makeconfendif# edd 10 Jan 2003 fix Perl interpreter path(cd $(debtmp)/usr/lib/R/bin; \for file in Rdconv Rprof Sd2Rd build check; do \perl -p -i -e "s|/usr/local/bin/perl|/usr/bin/perl|" \$${file}; \done)# that being done, now install in different sub-packages# move the GNOME version to the r-gnome package#ifeq ($(gnome),1)# dh_movefiles -p$(gnomepackage) usr/lib/R/modules/R_gnome.so#endif# move files for r-recommended# doing this before html/latex moves ensure they keep their tex/latex# dh_movefiles -p$(recdpackage)# move the html manual files in r-doc-html.files into r-doc-html# these get built in make-arch too ...dh_movefiles -p$(htmlpackage)# move files for r-base-htmldh_movefiles -pr-base-html# move files for r-base-latexdh_movefiles -pr-base-latexmake prefix=$(debtmp)/usr install-pdf# the indep package r-doc-info is made nowmake prefix=$(debtmp)/usr \infodir=$(debtmp)/usr/share/info install-info# move the pdf manual files listed in r-doc-pdf.files into r-doc-pdfdh_movefiles -p$(pdfpackage)# move the html manual files in r-doc-html.files into r-doc-htmldh_movefiles -p$(htmlpackage)touch install-indep-stamp# move files for r-doc-infodh_movefiles -p$(infopackage)# deal with stupid automake / install-info issue (cf #235713)rm -vf $(debinf)/usr/share/info/dir \$(debinf)/usr/share/info/dir.old# move all the rest into r-base-coredh_movefiles -p$(corepackage)# for the standalone library package, move the two libs# as 'make install' ignores these, we have to do it by hand#ifeq ($(gnome),1)# dh_installdirs -p$(gnomepackage) usr/share/lintian/overrides#endifdh_installdirs -p$(nmathpackage) usr/include usr/lib \usr/share/lintian/overridesinstall -m 0644 src/nmath/standalone/libRmath.a \$(debmat)/usr/libinstall -m 0644 src/nmath/standalone/libRmath.so \$(debmat)/usr/lib/libRmath.so.$(libver)(cd $(debmat)/usr/lib; \ln -s libRmath.so.$(libver) libRmath.so.$(somaj); \ln -s libRmath.so.$(somaj) libRmath.so)# and create a link for Rmath.h#(cd $(debmat)/usr/include; \# ln -s ../lib/R/include/Rmath.h .)# rather copy directly into the more independent package r-mathlibinstall -m 0644 src/include/Rmath.h \$(debmat)/usr/include# now deal with $R_HOME/etc <--> /etc/R# edd 03 Apr 2003 patch Renviron for new R_LIBS standard# edd 24 Apr 2004 patch Renviron for R_PAPERSIZE (bug #245525)# edd 16 Jun 2004 nope, doesn't work# edd 09 Apr 2005 also move the new file repositories to /etc/R(cd $(debetc); \cat $(debbase)/Renviron-R_LIBS.patch | patch --verbose; \mv Makeconf Renviron repositories \../../../../etc/R/; \ln -s /etc/R/Makeconf .; \ln -s /etc/R/Renviron .; \ln -s /etc/R/repositories . )## cat $(debbase)/Renviron-R_PAPERSIZE.patch | patch --verbose;touch install-arch-stamp#install-indep: make-arch make-indep install-arch install-indep-stampinstall-indep: make-indep install-indep-stampinstall-indep-stamp:@echo "*** install-indep ***"dh_testdirdh_testrootdh_clean -a -kdh_installdirs -A# make prefix=$(debtmp)/usr install-pdf## # the indep package r-doc-info is made now# make prefix=$(debtmp)/usr \# infodir=$(debtmp)/usr/share/info install-info## # move the pdf manual files listed in r-doc-pdf.files into r-doc-pdf# dh_movefiles -p$(pdfpackage)# # move the html manual files in r-doc-html.files into r-doc-html# dh_movefiles -p$(htmlpackage)# touch install-indep-stamp# # move files for r-doc-info# dh_movefiles -p$(infopackage)# but clean up dir and old.dirrm -vf $(debbase)/$(infopackage)/usr/share/info/dir \$(debbase)/$(infopackage)/usr/share/info/dir.olddh_installdirs $(gnomepackage)dh_installchangelogs -p$(gnomepackage)touch install-indep-stamp# Build architecture-independent files here.# edd 5 Feb 2004 binary-indep: build-indep install-indepbinary-indep: build-indep install-indep@echo "*** binary-indep ***"dh_testdir -idh_testroot -idh_link -i -N$(gnomepackage)#dh_installdebconf -idh_installdocs -i#dh_installexamples -i#dh_installmenu -i#dh_installemacsen -i#dh_installpam -i#dh_installmime -i#dh_installinit -i#dh_installcron -i#dh_installmanpages -i#dh_installinfo -i#dh_undocumented -idh_installchangelogs -i# install lintian "silencer"install -p -m 0644 debian/$(latexpackage).lintian \$(debbase)/$(latexpackage)/usr/share/lintian/overrides/$(latexpackage)dh_compress -idh_fixperms -i#dh_suidregister -idh_installdeb -i#dh_perl -idh_gencontrol -idh_md5sums -idh_builddeb -i# Build architecture-dependent files here.binary-arch: build-arch check install-arch@echo "*** binary-arch ***"dh_testdir -adh_testroot -a#dh_installdebconf -a#dh_link -a#ifeq ($(gnome),1)# dh_link -p$(gnomepackage)#endifdh_installdocs -p$(corepackage) AUTHORS NEWS ONEWS README \RESOURCES THANKS Y2K \debian/README.Atlas \debian/README.mathlibdh_installdocs -p$(nmathpackage) AUTHORS NEWS ONEWS README \RESOURCES THANKS Y2K \debian/README.mathlib#dh_installexamples -a#dh_installexamples -p$(corepackage) src/nmath/standalone/test.cdh_installexamples -p$(nmathpackage) src/nmath/standalone/test.cdh_installmenu -a#dh_installemacsen -a#dh_installpam -a#dh_installmime -a#dh_installinit -a#dh_installcron -a#dh_installmanpages -a -N$(gnomepackage) -p$(corepackage) getline.3#dh_installman -p$(corepackage) doc/R.1## dh_installinfo -a -n doc/manual/R-*.info*## edd 04 Apr 2004 manual is dangling unless r-doc-pdf is installed ...##(cd $(debdoc)/doc && ln -s ../../../../lib/R/doc/html .)##(cd $(debdoc)/doc && ln -s ../../../../lib/R/doc/manual .)# ... so install doc as a link, as we already did with library(cd $(debdoc) && ln -s ../../../lib/R/doc .)(cd $(debdoc) && ln -s ../../../lib/R/library .)# install lintian "silencer"install -p -m 0644 debian/$(corepackage).lintian \$(debbase)/$(corepackage)/usr/share/lintian/overrides/$(corepackage)# install -p -m 0644 debian/$(recdpackage).lintian \# $(debbase)/$(recdpackage)/usr/share/lintian/overrides/$(recdpackage)install -p -m 0644 debian/$(nmathpackage).lintian \$(debbase)/$(nmathpackage)/usr/share/lintian/overrides/$(nmathpackage)#ifeq ($(gnome),1)# install -p -m 0644 debian/$(gnomepackage).lintian \# $(debbase)/$(gnomepackage)/usr/share/lintian/overrides/$(gnomepackage)#endif#dh_undocumented -adh_installchangelogs -a -k NEWSdh_strip -adh_compress -adh_fixperms -a#dh_suidregister -adh_makeshlibs -adh_installdeb -adh_perl -adh_shlibdeps -a# @echo "*** Pruning shlibdeps result from double atlas entry ***"# cat debian/r-base-core.substvars# perl -p -i -e 's/atlas2-base, //' debian/r-base-core.substvars# cat debian/r-base-core.substvars# @echo "*** Pruning atlas from r-recommended shlibdeps ***"# cat debian/r-recommended.substvars# perl -p -i -e 's/atlas2-base, //' debian/r-recommended.substvars# cat debian/r-recommended.substvars# echo "*** Done ***"dh_gencontrol -adh_md5sums -a -X'usr/bin/R' -XLibIndex -Xindex.txt \-Xfunction.html -Xpackages.htmldh_builddeb -a#binary: binary-indep binary-arch install-arch install-indepbinary: make-stamp check binary-arch binary-indep.PHONY: build clean binary-indep binary-arch binary install install-arch install-indep