mirror of
https://github.com/coreutils/coreutils.git
synced 2025-01-11 10:33:49 +08:00
115 lines
3.2 KiB
Makefile
115 lines
3.2 KiB
Makefile
# -*-Makefile-*-
|
|
# This Makefile fragment is shared between fileutils, sh-utils, textutils.
|
|
|
|
maintainer-check:
|
|
if head ChangeLog| grep 'Version $(VERSION)' > /dev/null; then \
|
|
:; \
|
|
else \
|
|
echo "$(VERSION) not in ChangeLog; not tagging" 1>&2; \
|
|
exit 1; \
|
|
fi
|
|
$(MAKE) distcheck
|
|
$(MAKE) my-distcheck
|
|
|
|
# Tag before making distribution. Also, don't make a distribution if
|
|
# checks fail. Also, make sure the NEWS file is up-to-date.
|
|
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
|
|
cvs-dist: maintainer-check
|
|
pkg=`echo "$(PACKAGE)" | tr a-z A-Z`; \
|
|
ver=`echo "$(VERSION)" | sed 's/\./_/g'`; \
|
|
tag="$$pkg-$$ver"; \
|
|
echo tag=$$tag; \
|
|
if cvs -n log -h README| grep -e $$tag: > /dev/null; then \
|
|
echo "VERSION not new; not tagging" 1>&2; \
|
|
exit 1; \
|
|
fi; \
|
|
cvs update po; \
|
|
cvs tag -c $$tag
|
|
$(MAKE) dist
|
|
|
|
t=./=test
|
|
my-distcheck:
|
|
-rm -rf $(t)
|
|
mkdir $(t)
|
|
GZIP=$(GZIP) $(TAR) -C $(t) -zxf $(distdir).tar.gz
|
|
cd $(t)/$(distdir) \
|
|
&& ./configure --disable-nls \
|
|
&& $(MAKE) CFLAGS='-Wformat -Werror' \
|
|
&& $(MAKE) dvi \
|
|
&& $(MAKE) check \
|
|
&& $(MAKE) distclean
|
|
cd $(t) && mv $(distdir) $(distdir).old \
|
|
&& $(TAR) -zxf ../$(distdir).tar.gz
|
|
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
|
|
-rm -rf $(t)
|
|
@echo "========================"; \
|
|
echo "$(distdir).tar.gz is ready for distribution"; \
|
|
echo "========================"
|
|
|
|
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
|
|
# FIXME: this works only for Gnits-style test releases.
|
|
PREV_VERSION := $(shell echo $(VERSION)|tr a-z Xa-y)
|
|
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
|
|
v = Version
|
|
|
|
a_host=alpha.gnu.org
|
|
b_host=tug.org/pub
|
|
c_host=ftp.enst.fr
|
|
|
|
a_url_dir=gnu/fetish
|
|
b_url_dir=gnu/fetish
|
|
c_url_dir=pub/gnu/gnits/fetish
|
|
|
|
a_real_dir=/fs/share/ftp/gnu/fetish
|
|
b_real_dir=/home/ftp/pub/gnu/fetish
|
|
c_real_dir=/pub/gnu/gnits/fetish
|
|
|
|
url_dir_list = $(foreach x,a b c,ftp://$($(x)_host)/$($(x)_url_dir))
|
|
real_dir_list = $(foreach x,a b c,ftp://$($(x)_host)$($(x)_real_dir))
|
|
|
|
md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/ -//')
|
|
|
|
rel-check:
|
|
tarz=/tmp/rel-check-tarz-$$$$; \
|
|
md5_tmp=/tmp/rel-check-md5-$$$$; \
|
|
set -e; \
|
|
trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
|
|
wget -q --output-document=$$tarz $(url); \
|
|
echo "$(md5) -" > $$md5_tmp; \
|
|
md5sum -c $$md5_tmp < $$tarz
|
|
|
|
announcement: NEWS ChangeLog $(distdir).tar.gz
|
|
@( \
|
|
echo Subject: $(distdir) released; \
|
|
echo; \
|
|
echo FIXME: put comments here; \
|
|
echo; \
|
|
for url in $(url_dir_list); do \
|
|
echo " $$url/$(distdir).tar.gz"; \
|
|
done; \
|
|
echo; \
|
|
echo "$(md5) $(distdir).tar.gz"; \
|
|
echo; \
|
|
echo NEWS:; \
|
|
sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
|
|
| grep -v '^\['; \
|
|
echo; \
|
|
echo ChangeLog entries:; \
|
|
sed -n "1,/$v $(PREV_VERSION_REGEXP)/p" \
|
|
ChangeLog; \
|
|
)
|
|
|
|
alpha:
|
|
$(MAKE) cvs-dist
|
|
$(MAKE) -s announcement > /tmp/announcement
|
|
ln $(distdir).tar.gz ../release
|
|
chmod a-w $(distdir).tar.gz
|
|
@echo =====================================
|
|
@for url in $(real_dir_list); do \
|
|
echo "ncftp -u $$url/"; \
|
|
done
|
|
@echo '# put $(distdir).tar.gz'
|
|
@echo '# send the /tmp/announcement e-mail'
|
|
@echo 'pot-mail $(distdir).tar.gz | bash'
|
|
@echo =====================================
|