@@ -82,7 +82,8 @@ vignettes: stamp-recommended
8282
8383# # This needs packages built, hence 'R' dependence on 'javaconf'
8484# # javareconf gets remade often.
85- stamp-java : etc/javaconf $(srcdir ) /src/scripts/javareconf.in
85+ # # If configure is re-run, etc/Makeconf gets reset to initial Java state
86+ stamp-java : etc/Makeconf etc/javaconf $(srcdir ) /src/scripts/javareconf.in
8687@WANT_JAVA_TRUE@ @$(ECHO) "configuring Java ..."
8788@WANT_JAVA_TRUE@ @-bin/R CMD javareconf
8889 @touch stamp-java
@@ -142,7 +143,7 @@ uninstall:
142143 @for f in $(INSTFILES ) $(NON_SVN_INSTFILES ) ; do \
143144 rm -f " $( DESTDIR) $( rhome) /$$ {f}" ; \
144145 done
145- @rm -rf " $( DESTDIR) $( Rexecbindir) " " $( DESTDIR) $( rhome) /lib"
146+ @rm -Rf " $( DESTDIR) $( Rexecbindir) " " $( DESTDIR) $( rhome) /lib"
146147 @rmdir " $( DESTDIR) $( rhome) " 2> /dev/null \
147148 || $(ECHO) " dir $(DESTDIR)$(rhome) not removed"
148149 @rm -f "$(DESTDIR)${libdir}/libR$(R_DYLIB_EXT)"
@@ -158,15 +159,15 @@ distclean: clean
158159 @ (for d in $( SUBDIRS) ; do rsd=" $$ {d} $$ {rsd}" ; done ; \
159160 for d in $$ {rsd}; do (cd $$ {d} && $( MAKE) $@ ); done)
160161 @rm -f po/Makefile
161- -@rm -rf bin include lib library modules gnome
162+ -@rm -Rf bin include lib library modules gnome
162163 @if test -f non-tarball ; then \
163164 rm -f $(NON_SVN_INSTFILES ) non-tarball doc/FAQ doc/RESOURCES doc/html/resources.html doc/html/NEWS.html; \
164165 fi
165166 @if test " $( BUILDDIR_IS_SRCDIR) " = no ; then \
166167 rm -f $(NON_SVN_INSTFILES ) ; \
167- rm -rf $(SUBDIRS ) $(SUBDIRS_WITH_NO_BUILD ) ; \
168+ rm -Rf $(SUBDIRS ) $(SUBDIRS_WITH_NO_BUILD ) ; \
168169 fi
169- -@rm -rf libconftest.dSYM
170+ -@rm -Rf libconftest.dSYM
170171 -@rm -f Makeconf Makefile Makefile.bak Makefrag.* \
171172 config.cache config.log config.status libtool stamp-java \
172173 $(ACLOCAL_M4 ) acinclude.m4 $(distdir ) .tar.gz
@@ -175,9 +176,10 @@ maintainer-clean: distclean
175176 @$(ECHO ) " deletes files that may need special rules to rebuild"
176177 @ (for d in $( SUBDIRS) ; do rsd=" $$ {d} $$ {rsd}" ; done ; \
177178 for d in $$ {rsd}; do (cd $$ {d} && $( MAKE) $@ ); done)
178- -@ (cd $( srcdir) && rm -rf autom4te.cache)
179+ -@ (cd $( srcdir) && rm -Rf autom4te.cache)
179180
180181dist : dist-unix
182+ # # GNU gzip 1.8 warns that env var GZIP is obsolescent for gzip, so use as arg
181183dist-unix : distdir
182184 -chmod -R a+r $(distdir )
183185 -chmod -R go-w $(distdir )
@@ -186,11 +188,11 @@ dist-unix: distdir
186188 if test $(distdir) != $${dirname} ; then \
187189 mv $(distdir) $${dirname}; \
188190 fi ; \
189- GZIP=$(GZIP) $( TAR) czf $${distname}.tar.gz $${dirname}; \
190- rm -rf $${dirname}
191+ $( TAR) cf $${distname}.tar $${dirname} && $(R_GZIPCMD) $(GZIP) $${distname}.tar ; \
192+ rm -Rf $${dirname}
191193dist-win :
192194distdir : $(DISTFILES ) vignettes
193- @rm -rf $(distdir )
195+ @rm -Rf $(distdir )
194196 @mkdir $(distdir )
195197 @-chmod 755 $(distdir )
196198 @for f in $(DISTFILES ) ; do \
@@ -220,6 +222,71 @@ distdir: $(DISTFILES) vignettes
220222 done
221223 @ (cd $( distdir) ; tools/link-recommended)
222224
225+ distcheck : distcheck-unix
226+ distcheck-unix : dist
227+ distname=` $( srcdir) /tools/GETDISTNAME` ; \
228+ dirname=` $( ECHO) $$ {distname} | sed -e s/_.* //` ; \
229+ rm -Rf $$ {dirname}; \
230+ $(R_GZIPCMD ) -d -c $$ {distname}.tar.gz | $(TAR ) -x -f -; \
231+ chmod u+w $$ {dirname}; \
232+ if test -f config.site; then \
233+ cp config.site $$ {dirname}; \
234+ fi ; \
235+ mkdir $$ {dirname}/_build $$ {dirname}/_inst; \
236+ test -d $$ {dirname}/_build || exit 0; \
237+ dc_install_base=` cd $$ {dirname}/_inst && pwd` \
238+ && save__cwd=` pwd` \
239+ && cd $$ {dirname}/_build \
240+ && ../configure --srcdir=.. --prefix=" $$ dc_install_base" \
241+ && $(MAKE ) \
242+ && $(MAKE ) check-all \
243+ && $(MAKE ) install \
244+ && $(MAKE ) uninstall \
245+ && $(MAKE ) distuninstallcheck_dir=" $$ dc_install_base" \
246+ distuninstallcheck \
247+ && $(MAKE ) dist \
248+ && rm -f $$ {distname}.tar.gz \
249+ && $(MAKE ) distcleancheck \
250+ && cd " $$ save__cwd" \
251+ || exit 1; \
252+ rm -Rf $$ {dirname}; \
253+ $(ECHO ) " $$ {distname}.tar.gz ready for distribution"
254+
255+ distcheck-win :
256+ distuninstallcheck :
257+ @test -n ' $(distuninstallcheck_dir)' || { \
258+ echo ' ERROR: trying to run $@ with an empty' \
259+ ' $$(distuninstallcheck_dir)' >&2 ; \
260+ exit 1; \
261+ }; \
262+ cd ' $(distuninstallcheck_dir)' || { \
263+ $(ECHO ) ' ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2 ; \
264+ exit 1; \
265+ }; \
266+ test ` find . -type f -print | wc -l` -eq 0 || \
267+ { $( ECHO) " ERROR: files left after uninstall:" ; \
268+ ` find . -type f -print` ; \
269+ exit 1; } >&2
270+ distcleancheck : distclean
271+ @test ` find . -type f -print | wc -l` -eq 0 || \
272+ { $( ECHO) " ERROR: files left in build directory after distclean:" ; \
273+ ` find . -type f -print` ; \
274+ exit 1; } >&2
275+
276+ # # For developers: from an svn checkout expect .svn to be only in the srcdir
277+ checkdistcomplete :
278+ @distname=` $( srcdir) /tools/GETDISTNAME` ; \
279+ dirname=` $( ECHO) $$ {distname} | sed -e s/_.* //` ; \
280+ if test -d $$ {dirname}; then \
281+ echo " Please remove directory $$ {dirname} first" ; \
282+ exit 1; \
283+ fi ; \
284+ rm -Rf $$ {dirname}; \
285+ echo " Checking $$ {distname}.tar.gz" ; \
286+ $(R_GZIPCMD ) -d -c $$ {distname}.tar.gz | $(TAR ) -x -f -; \
287+ diff -r $$ {dirname} $(srcdir ) | grep " ^Only in $( srcdir) " | grep -v " ^Only in.*[.]svn" ; \
288+ rm -Rf $$ {dirname}
289+
223290info pdf :
224291 -@ (cd doc && $( MAKE) $@ )
225292install-info install-pdf :
0 commit comments