#!/usr/bin/make -f # debian/rules file for the Debian GNU/Linux r-base package # Copyright 1997-2001 by Douglas Bates , # Copyright 2001-2002 by Dirk Eddelbuettel # $Id: rules,v 1.41 2002/06/20 17:52:55 bates Exp $ corepackage = r-base-core latexpackage = r-base-latex pdfpackage = r-doc-pdf htmlpackage = r-doc-html gnomepackage = r-gnome nmathpackage = r-mathlib infopackage = r-doc-info # for the standalone library, no sonames are assigned in the upstream Makefiles somaj = 1 somin = 0 sorel = 0 libver = $(somaj).$(somin).$(sorel) debbase := $(CURDIR)/debian debtmp := $(debbase)/tmp debdoc := $(debbase)/$(corepackage)/usr/share/doc/$(corepackage) debmat := $(debbase)/$(nmathpackage) arch := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ## set this to 1 if you want the skip the pdf creation and tests #skipparts = 1 # set this to 1 (default) if you want the Gnome GUI package gnome = 1 ifeq ($(gnome),0) gnomeconfig = --without-gnome else gnomeconfig = --with-gnome endif #export DH_VERBOSE = 1 export DH_COMPAT = 3 # edd 15 Aug 2001: default to blas, atlas can override it atlas = --with-blas=blas # edd 02 Sep 2001: default to g77 but let m68k use f2c fortrancompiler = F77=g77 compiler = gcc cxxcompiler = g++ # edd 04 Sep 2001 default compiler flags, lowered for m68k compilerflags = -O2 # m68k barks when using g77, and when gcc use -O2 ifeq ($(arch),m68k-linux) fortrancompiler = F2C=f2c compilerflags = -O endif ## 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-sections ifeq ($(arch),hppa-linux) compilerflags = -O2 -ffunction-sections endif ## try gcc-3.0 on i386 -- appears to work #ifeq ($(arch),i386-linux) #fortrancompiler= F77=g77-3.0 #compiler = gcc-3.0 #cxxcompiler = g++-3.0 #compilerflags = -O2 #endif get-orig-source: upstream upstream: links http://cran.us.r-project.org upstreamdevel: links ftp://ftp.stat.math.ethz.ch/Software/R build: build-arch build-indep build-arch: configure make-arch build-arch-stamp build-arch-stamp: @echo "*** build-arch ***" touch build-arch-stamp build-indep: configure make-indep build-indep-stamp build-indep-stamp: @echo "*** build-indep ***" touch build-indep-stamp configure: configure-stamp configure-stamp: @echo "*** configure ***" dh_testdir R_UNZIPCMD=/usr/bin/miniunzip \ R_ZIPCMD=/usr/bin/minizip \ CC=${compiler} \ CXX=${cxxcompiler} \ ${fortrancompiler} \ CPPFLAGS= \ LDFLAGS= \ FLIBS= \ ./configure --prefix=/usr \ --with-tcltk \ --with-tcl-config=/usr/lib/tcl8.3/tclConfig.sh \ --with-tk-config=/usr/lib/tk8.3/tkConfig.sh \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ $(atlas) \ $(gnomeconfig) \ --enable-R-profiling \ --enable-R-shlib \ --host $(arch) # this should now be fixed upstream by KH # ## hppa and ia64 really need the PIC version of libg2c # ## for conformity we will use it throughout # perl -p -i -e "s/ -lg2c / -lg2c-pic /" Makeconf # ## same needed for lower-level library files # for i in ctest modreg mva ts; do \ # perl -p -i -e "s/ -lg2c / -lg2c-pic /" \ # src/library/$$i/src/Makefile; \ # done # ## and etc/Makeconf # perl -p -i -e "s/ -lg2c / -lg2c-pic /" etc/Makeconf touch configure-stamp make-arch: configure make-arch-stamp make-arch-stamp: @echo "*** make-arch ***" make CFLAGS="$(compilerflags)" \ CXXFLAGS="$(compilerflags)" \ FFLAGS="$(compilerflags)" \ CC=${compiler} \ CXX=${cxxcompiler} \ FC=${fortrancompiler} \ R # currently needed for binary package with docs [FIXME: how?] make docs # 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} \ FC=${fortrancompiler} \ libRmath_la_LDFLAGS=-Wl,-soname,libRmath.so.$(somaj) \ ) # FIXME make html # currently needed for binary package [FIXME: into r-doc-help] make help touch make-arch-stamp make-indep: configure make-indep-stamp make-indep-stamp: @echo "*** make-indep ***" # FIXME would be nice here: make docs # make help # currently needed for binary package [FIXME: into r-doc-info] make info make pdf touch make-indep-stamp #make: configure make-arch make-stamp #make-stamp: # # Already made in general 'make': make html # touch make-stamp check: configure make-arch check-stamp check-stamp: @echo "*** check ***" ifneq ($(arch),arm-linux) -make check endif touch check-stamp clean: @echo "*** clean ***" dh_testdir dh_testroot rm -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_clean install: install-arch install-indep install-arch: make-arch check install-arch-stamp install-arch-stamp: @echo "*** install-arch ***" dh_testdir dh_testroot dh_clean -a -k dh_installdirs -A make prefix=$(debtmp)/usr \ mandir=$(debtmp)/usr/share/man install # set R_HOME_DIR env.var. in R shell script sed -e '/^R_HOME_DIR=.*/s::R_HOME_DIR=/usr/lib/R:' \ < bin/R > $(debtmp)/usr/bin/R sed -e '/^R_HOME_DIR=.*/s::R_HOME_DIR=/usr/lib/R:' \ < bin/R > $(debtmp)/usr/lib/R/bin/R # fix permissions (Lintian) chmod a+x $(debtmp)/usr/lib/R/share/sh/echo.sh \ $(debtmp)/usr/lib/R/share/sh/help-links.sh # remove unneeded license files, but link them back rm -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) # move the GNOME version to the r-gnome package ifneq ($(gnome),0) dh_movefiles -p$(gnomepackage) usr/lib/R/modules/R_gnome.so endif # 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-html dh_movefiles -pr-base-html # move files for r-base-latex dh_movefiles -pr-base-latex # move files for r-base-core dh_movefiles -p$(corepackage) # for the standalone library package, move the two libs # as 'make install' ignore these, we have to do it by hand dh_installdirs -p$(nmathpackage) usr/include usr/lib install -m 0644 src/nmath/standalone/libRmath.a \ $(debmat)/usr/lib install -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 .) touch install-arch-stamp #install-indep: make-arch make-indep install-arch install-indep-stamp install-indep: make-indep install-indep-stamp install-indep-stamp: @echo "*** install-indep ***" dh_testdir dh_testroot dh_clean -a -k dh_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.dir rm -vf $(debbase)/$(infopackage)/usr/share/info/dir \ $(debbase)/$(infopackage)/usr/share/info/dir.old # Build architecture-independent files here. binary-indep: build-indep install-indep @echo "*** binary-indep ***" dh_testdir -i dh_testroot -i dh_link -i #dh_installdebconf -i dh_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 -i dh_installchangelogs -i # install lintian "silencer" install -p -m 0644 debian/$(latexpackage).lintian \ $(debbase)/$(latexpackage)/usr/share/lintian/overrides/$(latexpackage) dh_compress -i dh_fixperms -i #dh_suidregister -i dh_installdeb -i #dh_perl -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: build-arch install-arch check @echo "*** binary-arch ***" dh_testdir -a dh_testroot -a #dh_installdebconf -a dh_link -a dh_installdocs -p$(corepackage) AUTHORS BUGS NEWS ONEWS README \ RESOURCES THANKS Y2K \ debian/README.Atlas \ debian/README.mathlib dh_installexamples -a dh_installexamples -p$(corepackage) src/nmath/standalone/test.c dh_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* (cd $(debdoc)/doc && ln -s ../../../../lib/R/doc/html .) (cd $(debdoc)/doc && ln -s ../../../../lib/R/doc/manual .) (cd $(debdoc) && ln -s ../../../lib/R/library .) # install lintian "silencer" install -p -m 0644 debian/$(corepackage).lintian \ $(debbase)/$(corepackage)/usr/share/lintian/overrides/$(corepackage) #dh_undocumented -a dh_installchangelogs -a -k NEWS dh_strip -a dh_compress -a dh_fixperms -a #dh_suidregister -a dh_makeshlibs -a dh_installdeb -a dh_perl -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a -X'usr/bin/R' -XLibIndex -Xindex.txt \ -Xfunction.html -Xpackages.html dh_builddeb -a binary: binary-arch binary-indep .PHONY: build clean binary-indep binary-arch binary install install-arch install-indep