parent
929cedf9ff
commit
13694434cc
@ -1,22 +0,0 @@
|
|||||||
SUBDIRS = csv
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I build-aux
|
|
||||||
|
|
||||||
dist-hook:
|
|
||||||
$(SHELL) $(top_srcdir)/ChangeLog > $(top_distdir)/ChangeLog
|
|
||||||
|
|
||||||
moddir=$(prefix)/share/guile/site
|
|
||||||
|
|
||||||
SOURCES =
|
|
||||||
|
|
||||||
GOBJECTS = $(SOURCES:%.scm=%.go)
|
|
||||||
|
|
||||||
nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES) $(GOBJECTS)
|
|
||||||
EXTRA_DIST = pkg-list.scm $(SOURCES) $(NOCOMP_SOURCES)
|
|
||||||
|
|
||||||
CLEANFILES = $(GOBJECTS)
|
|
||||||
|
|
||||||
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
|
|
||||||
SUFFIXES = .scm .go
|
|
||||||
.scm.go:
|
|
||||||
$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
|
|
||||||
@ -1,842 +0,0 @@
|
|||||||
# Makefile.in generated by automake 1.12.1 from Makefile.am.
|
|
||||||
# @configure_input@
|
|
||||||
|
|
||||||
# Copyright (C) 1994-2012 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
|
||||||
# with or without modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
||||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
# PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
@SET_MAKE@
|
|
||||||
|
|
||||||
VPATH = @srcdir@
|
|
||||||
am__make_dryrun = \
|
|
||||||
{ \
|
|
||||||
am__dry=no; \
|
|
||||||
case $$MAKEFLAGS in \
|
|
||||||
*\\[\ \ ]*) \
|
|
||||||
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
|
||||||
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
|
||||||
*) \
|
|
||||||
for am__flg in $$MAKEFLAGS; do \
|
|
||||||
case $$am__flg in \
|
|
||||||
*=*|--*) ;; \
|
|
||||||
*n*) am__dry=yes; break;; \
|
|
||||||
esac; \
|
|
||||||
done;; \
|
|
||||||
esac; \
|
|
||||||
test $$am__dry = yes; \
|
|
||||||
}
|
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
|
||||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
|
||||||
install_sh_SCRIPT = $(install_sh) -c
|
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
|
||||||
transform = $(program_transform_name)
|
|
||||||
NORMAL_INSTALL = :
|
|
||||||
PRE_INSTALL = :
|
|
||||||
POST_INSTALL = :
|
|
||||||
NORMAL_UNINSTALL = :
|
|
||||||
PRE_UNINSTALL = :
|
|
||||||
POST_UNINSTALL = :
|
|
||||||
build_triplet = @build@
|
|
||||||
host_triplet = @host@
|
|
||||||
subdir = .
|
|
||||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
|
||||||
$(srcdir)/Makefile.in $(srcdir)/env.in \
|
|
||||||
$(top_srcdir)/build-aux/config.guess \
|
|
||||||
$(top_srcdir)/build-aux/config.rpath \
|
|
||||||
$(top_srcdir)/build-aux/config.sub \
|
|
||||||
$(top_srcdir)/build-aux/install-sh \
|
|
||||||
$(top_srcdir)/build-aux/missing $(top_srcdir)/configure \
|
|
||||||
AUTHORS COPYING ChangeLog INSTALL NEWS build-aux/compile \
|
|
||||||
build-aux/config.guess build-aux/config.rpath \
|
|
||||||
build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \
|
|
||||||
build-aux/missing
|
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
||||||
$(ACLOCAL_M4)
|
|
||||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
|
||||||
configure.lineno config.status.lineno
|
|
||||||
mkinstalldirs = $(install_sh) -d
|
|
||||||
CONFIG_CLEAN_FILES = env
|
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
|
||||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
|
||||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
|
||||||
am__v_GEN_0 = @echo " GEN " $@;
|
|
||||||
AM_V_at = $(am__v_at_@AM_V@)
|
|
||||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
|
||||||
am__v_at_0 = @
|
|
||||||
DIST_SOURCES =
|
|
||||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
|
||||||
html-recursive info-recursive install-data-recursive \
|
|
||||||
install-dvi-recursive install-exec-recursive \
|
|
||||||
install-html-recursive install-info-recursive \
|
|
||||||
install-pdf-recursive install-ps-recursive install-recursive \
|
|
||||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
|
||||||
ps-recursive uninstall-recursive
|
|
||||||
am__can_run_installinfo = \
|
|
||||||
case $$AM_UPDATE_INFO_DIR in \
|
|
||||||
n|no|NO) false;; \
|
|
||||||
*) (install-info --version) >/dev/null 2>&1;; \
|
|
||||||
esac
|
|
||||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
||||||
am__vpath_adj = case $$p in \
|
|
||||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
||||||
*) f=$$p;; \
|
|
||||||
esac;
|
|
||||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
|
||||||
am__install_max = 40
|
|
||||||
am__nobase_strip_setup = \
|
|
||||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
|
||||||
am__nobase_strip = \
|
|
||||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
|
||||||
am__nobase_list = $(am__nobase_strip_setup); \
|
|
||||||
for p in $$list; do echo "$$p $$p"; done | \
|
|
||||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
|
||||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
|
||||||
if (++n[$$2] == $(am__install_max)) \
|
|
||||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
||||||
END { for (dir in files) print dir, files[dir] }'
|
|
||||||
am__base_list = \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
||||||
am__uninstall_files_from_dir = { \
|
|
||||||
test -z "$$files" \
|
|
||||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
||||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
||||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
|
||||||
}
|
|
||||||
am__installdirs = "$(DESTDIR)$(moddir)"
|
|
||||||
DATA = $(nobase_mod_DATA)
|
|
||||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
|
||||||
distclean-recursive maintainer-clean-recursive
|
|
||||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
|
||||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
|
||||||
cscope distdir dist dist-all distcheck
|
|
||||||
ETAGS = etags
|
|
||||||
CTAGS = ctags
|
|
||||||
CSCOPE = cscope
|
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
||||||
distdir = $(PACKAGE)-$(VERSION)
|
|
||||||
top_distdir = $(distdir)
|
|
||||||
am__remove_distdir = \
|
|
||||||
if test -d "$(distdir)"; then \
|
|
||||||
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
|
||||||
&& rm -rf "$(distdir)" \
|
|
||||||
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
|
||||||
else :; fi
|
|
||||||
am__post_remove_distdir = $(am__remove_distdir)
|
|
||||||
am__relativize = \
|
|
||||||
dir0=`pwd`; \
|
|
||||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
|
||||||
sed_rest='s,^[^/]*/*,,'; \
|
|
||||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
|
||||||
sed_butlast='s,/*[^/]*$$,,'; \
|
|
||||||
while test -n "$$dir1"; do \
|
|
||||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
|
||||||
if test "$$first" != "."; then \
|
|
||||||
if test "$$first" = ".."; then \
|
|
||||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
|
||||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
|
||||||
else \
|
|
||||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
|
||||||
if test "$$first2" = "$$first"; then \
|
|
||||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
|
||||||
else \
|
|
||||||
dir2="../$$dir2"; \
|
|
||||||
fi; \
|
|
||||||
dir0="$$dir0"/"$$first"; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
|
||||||
done; \
|
|
||||||
reldir="$$dir2"
|
|
||||||
DIST_ARCHIVES = $(distdir).tar.gz
|
|
||||||
GZIP_ENV = --best
|
|
||||||
DIST_TARGETS = dist-gzip
|
|
||||||
distuninstallcheck_listfiles = find . -type f -print
|
|
||||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
|
||||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
|
||||||
distcleancheck_listfiles = find . -type f -print
|
|
||||||
ACLOCAL = @ACLOCAL@
|
|
||||||
AMTAR = @AMTAR@
|
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
|
||||||
AUTOCONF = @AUTOCONF@
|
|
||||||
AUTOHEADER = @AUTOHEADER@
|
|
||||||
AUTOMAKE = @AUTOMAKE@
|
|
||||||
AWK = @AWK@
|
|
||||||
CC = @CC@
|
|
||||||
CCDEPMODE = @CCDEPMODE@
|
|
||||||
CFLAGS = @CFLAGS@
|
|
||||||
CPP = @CPP@
|
|
||||||
CPPFLAGS = @CPPFLAGS@
|
|
||||||
CYGPATH_W = @CYGPATH_W@
|
|
||||||
DEFS = @DEFS@
|
|
||||||
DEPDIR = @DEPDIR@
|
|
||||||
ECHO_C = @ECHO_C@
|
|
||||||
ECHO_N = @ECHO_N@
|
|
||||||
ECHO_T = @ECHO_T@
|
|
||||||
EGREP = @EGREP@
|
|
||||||
EXEEXT = @EXEEXT@
|
|
||||||
GREP = @GREP@
|
|
||||||
GUILD = @GUILD@
|
|
||||||
GUILE = @GUILE@
|
|
||||||
GUILECONFIG = @GUILECONFIG@
|
|
||||||
GUILE_CFLAGS = @GUILE_CFLAGS@
|
|
||||||
GUILE_CONFIG = @GUILE_CONFIG@
|
|
||||||
GUILE_EFFECTIVE_VERSION = @GUILE_EFFECTIVE_VERSION@
|
|
||||||
GUILE_LDFLAGS = @GUILE_LDFLAGS@
|
|
||||||
GUILE_LIBS = @GUILE_LIBS@
|
|
||||||
GUILE_LTLIBS = @GUILE_LTLIBS@
|
|
||||||
GUILE_SITE = @GUILE_SITE@
|
|
||||||
GUILE_TOOLS = @GUILE_TOOLS@
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
|
||||||
LDFLAGS = @LDFLAGS@
|
|
||||||
LIBOBJS = @LIBOBJS@
|
|
||||||
LIBS = @LIBS@
|
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
|
||||||
MAKEINFO = @MAKEINFO@
|
|
||||||
MKDIR_P = @MKDIR_P@
|
|
||||||
OBJEXT = @OBJEXT@
|
|
||||||
PACKAGE = @PACKAGE@
|
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
|
||||||
PACKAGE_NAME = @PACKAGE_NAME@
|
|
||||||
PACKAGE_STRING = @PACKAGE_STRING@
|
|
||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|
||||||
PACKAGE_URL = @PACKAGE_URL@
|
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
|
||||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
|
||||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
|
||||||
SET_MAKE = @SET_MAKE@
|
|
||||||
SHELL = @SHELL@
|
|
||||||
STRIP = @STRIP@
|
|
||||||
VERSION = @VERSION@
|
|
||||||
abs_builddir = @abs_builddir@
|
|
||||||
abs_srcdir = @abs_srcdir@
|
|
||||||
abs_top_builddir = @abs_top_builddir@
|
|
||||||
abs_top_srcdir = @abs_top_srcdir@
|
|
||||||
ac_ct_CC = @ac_ct_CC@
|
|
||||||
am__include = @am__include@
|
|
||||||
am__leading_dot = @am__leading_dot@
|
|
||||||
am__quote = @am__quote@
|
|
||||||
am__tar = @am__tar@
|
|
||||||
am__untar = @am__untar@
|
|
||||||
bindir = @bindir@
|
|
||||||
build = @build@
|
|
||||||
build_alias = @build_alias@
|
|
||||||
build_cpu = @build_cpu@
|
|
||||||
build_os = @build_os@
|
|
||||||
build_vendor = @build_vendor@
|
|
||||||
builddir = @builddir@
|
|
||||||
datadir = @datadir@
|
|
||||||
datarootdir = @datarootdir@
|
|
||||||
docdir = @docdir@
|
|
||||||
dvidir = @dvidir@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
host = @host@
|
|
||||||
host_alias = @host_alias@
|
|
||||||
host_cpu = @host_cpu@
|
|
||||||
host_os = @host_os@
|
|
||||||
host_vendor = @host_vendor@
|
|
||||||
htmldir = @htmldir@
|
|
||||||
includedir = @includedir@
|
|
||||||
infodir = @infodir@
|
|
||||||
install_sh = @install_sh@
|
|
||||||
libdir = @libdir@
|
|
||||||
libexecdir = @libexecdir@
|
|
||||||
localedir = @localedir@
|
|
||||||
localstatedir = @localstatedir@
|
|
||||||
mandir = @mandir@
|
|
||||||
mkdir_p = @mkdir_p@
|
|
||||||
oldincludedir = @oldincludedir@
|
|
||||||
pdfdir = @pdfdir@
|
|
||||||
prefix = @prefix@
|
|
||||||
program_transform_name = @program_transform_name@
|
|
||||||
psdir = @psdir@
|
|
||||||
runstatedir = @runstatedir@
|
|
||||||
sbindir = @sbindir@
|
|
||||||
sharedstatedir = @sharedstatedir@
|
|
||||||
srcdir = @srcdir@
|
|
||||||
sysconfdir = @sysconfdir@
|
|
||||||
target_alias = @target_alias@
|
|
||||||
top_build_prefix = @top_build_prefix@
|
|
||||||
top_builddir = @top_builddir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
SUBDIRS = csv
|
|
||||||
ACLOCAL_AMFLAGS = -I build-aux
|
|
||||||
moddir = $(prefix)/share/guile/site
|
|
||||||
SOURCES =
|
|
||||||
GOBJECTS = $(SOURCES:%.scm=%.go)
|
|
||||||
nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES) $(GOBJECTS)
|
|
||||||
EXTRA_DIST = pkg-list.scm $(SOURCES) $(NOCOMP_SOURCES)
|
|
||||||
CLEANFILES = $(GOBJECTS)
|
|
||||||
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
|
|
||||||
SUFFIXES = .scm .go
|
|
||||||
all: all-recursive
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .scm .go
|
|
||||||
am--refresh: Makefile
|
|
||||||
@:
|
|
||||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
|
||||||
@for dep in $?; do \
|
|
||||||
case '$(am__configure_deps)' in \
|
|
||||||
*$$dep*) \
|
|
||||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
|
|
||||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
|
|
||||||
&& exit 0; \
|
|
||||||
exit 1;; \
|
|
||||||
esac; \
|
|
||||||
done; \
|
|
||||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
|
||||||
$(am__cd) $(top_srcdir) && \
|
|
||||||
$(AUTOMAKE) --gnu Makefile
|
|
||||||
.PRECIOUS: Makefile
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
||||||
@case '$?' in \
|
|
||||||
*config.status*) \
|
|
||||||
echo ' $(SHELL) ./config.status'; \
|
|
||||||
$(SHELL) ./config.status;; \
|
|
||||||
*) \
|
|
||||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
|
||||||
esac;
|
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|
||||||
$(SHELL) ./config.status --recheck
|
|
||||||
|
|
||||||
$(top_srcdir)/configure: $(am__configure_deps)
|
|
||||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
|
||||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
|
||||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
|
||||||
$(am__aclocal_m4_deps):
|
|
||||||
env: $(top_builddir)/config.status $(srcdir)/env.in
|
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
|
||||||
install-nobase_modDATA: $(nobase_mod_DATA)
|
|
||||||
@$(NORMAL_INSTALL)
|
|
||||||
@list='$(nobase_mod_DATA)'; test -n "$(moddir)" || list=; \
|
|
||||||
if test -n "$$list"; then \
|
|
||||||
echo " $(MKDIR_P) '$(DESTDIR)$(moddir)'"; \
|
|
||||||
$(MKDIR_P) "$(DESTDIR)$(moddir)" || exit 1; \
|
|
||||||
fi; \
|
|
||||||
$(am__nobase_list) | while read dir files; do \
|
|
||||||
xfiles=; for file in $$files; do \
|
|
||||||
if test -f "$$file"; then xfiles="$$xfiles $$file"; \
|
|
||||||
else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
|
|
||||||
test -z "$$xfiles" || { \
|
|
||||||
test "x$$dir" = x. || { \
|
|
||||||
echo " $(MKDIR_P) '$(DESTDIR)$(moddir)/$$dir'"; \
|
|
||||||
$(MKDIR_P) "$(DESTDIR)$(moddir)/$$dir"; }; \
|
|
||||||
echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(moddir)/$$dir'"; \
|
|
||||||
$(INSTALL_DATA) $$xfiles "$(DESTDIR)$(moddir)/$$dir" || exit $$?; }; \
|
|
||||||
done
|
|
||||||
|
|
||||||
uninstall-nobase_modDATA:
|
|
||||||
@$(NORMAL_UNINSTALL)
|
|
||||||
@list='$(nobase_mod_DATA)'; test -n "$(moddir)" || list=; \
|
|
||||||
$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
|
|
||||||
dir='$(DESTDIR)$(moddir)'; $(am__uninstall_files_from_dir)
|
|
||||||
|
|
||||||
# This directory's subdirectories are mostly independent; you can cd
|
|
||||||
# into them and run 'make' without going through this Makefile.
|
|
||||||
# To change the values of 'make' variables: instead of editing Makefiles,
|
|
||||||
# (1) if the variable is set in 'config.status', edit 'config.status'
|
|
||||||
# (which will cause the Makefiles to be regenerated when you run 'make');
|
|
||||||
# (2) otherwise, pass the desired values on the 'make' command line.
|
|
||||||
$(RECURSIVE_TARGETS):
|
|
||||||
@fail= failcom='exit 1'; \
|
|
||||||
for f in x $$MAKEFLAGS; do \
|
|
||||||
case $$f in \
|
|
||||||
*=* | --[!k]*);; \
|
|
||||||
*k*) failcom='fail=yes';; \
|
|
||||||
esac; \
|
|
||||||
done; \
|
|
||||||
dot_seen=no; \
|
|
||||||
target=`echo $@ | sed s/-recursive//`; \
|
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
||||||
echo "Making $$target in $$subdir"; \
|
|
||||||
if test "$$subdir" = "."; then \
|
|
||||||
dot_seen=yes; \
|
|
||||||
local_target="$$target-am"; \
|
|
||||||
else \
|
|
||||||
local_target="$$target"; \
|
|
||||||
fi; \
|
|
||||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|
||||||
|| eval $$failcom; \
|
|
||||||
done; \
|
|
||||||
if test "$$dot_seen" = "no"; then \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
|
||||||
fi; test -z "$$fail"
|
|
||||||
|
|
||||||
$(RECURSIVE_CLEAN_TARGETS):
|
|
||||||
@fail= failcom='exit 1'; \
|
|
||||||
for f in x $$MAKEFLAGS; do \
|
|
||||||
case $$f in \
|
|
||||||
*=* | --[!k]*);; \
|
|
||||||
*k*) failcom='fail=yes';; \
|
|
||||||
esac; \
|
|
||||||
done; \
|
|
||||||
dot_seen=no; \
|
|
||||||
case "$@" in \
|
|
||||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
|
||||||
*) list='$(SUBDIRS)' ;; \
|
|
||||||
esac; \
|
|
||||||
rev=''; for subdir in $$list; do \
|
|
||||||
if test "$$subdir" = "."; then :; else \
|
|
||||||
rev="$$subdir $$rev"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
rev="$$rev ."; \
|
|
||||||
target=`echo $@ | sed s/-recursive//`; \
|
|
||||||
for subdir in $$rev; do \
|
|
||||||
echo "Making $$target in $$subdir"; \
|
|
||||||
if test "$$subdir" = "."; then \
|
|
||||||
local_target="$$target-am"; \
|
|
||||||
else \
|
|
||||||
local_target="$$target"; \
|
|
||||||
fi; \
|
|
||||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|
||||||
|| eval $$failcom; \
|
|
||||||
done && test -z "$$fail"
|
|
||||||
tags-recursive:
|
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
||||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
|
||||||
done
|
|
||||||
ctags-recursive:
|
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
||||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
|
||||||
done
|
|
||||||
cscopelist-recursive:
|
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
||||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
|
|
||||||
done
|
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
||||||
unique=`for i in $$list; do \
|
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
||||||
done | \
|
|
||||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
||||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
||||||
mkid -fID $$unique
|
|
||||||
tags: TAGS
|
|
||||||
|
|
||||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
||||||
$(TAGS_FILES) $(LISP)
|
|
||||||
set x; \
|
|
||||||
here=`pwd`; \
|
|
||||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
|
||||||
include_option=--etags-include; \
|
|
||||||
empty_fix=.; \
|
|
||||||
else \
|
|
||||||
include_option=--include; \
|
|
||||||
empty_fix=; \
|
|
||||||
fi; \
|
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
||||||
if test "$$subdir" = .; then :; else \
|
|
||||||
test ! -f $$subdir/TAGS || \
|
|
||||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
||||||
unique=`for i in $$list; do \
|
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
||||||
done | \
|
|
||||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
||||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
||||||
shift; \
|
|
||||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|
||||||
test -n "$$unique" || unique=$$empty_fix; \
|
|
||||||
if test $$# -gt 0; then \
|
|
||||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
||||||
"$$@" $$unique; \
|
|
||||||
else \
|
|
||||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
||||||
$$unique; \
|
|
||||||
fi; \
|
|
||||||
fi
|
|
||||||
ctags: CTAGS
|
|
||||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
||||||
$(TAGS_FILES) $(LISP)
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
||||||
unique=`for i in $$list; do \
|
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
||||||
done | \
|
|
||||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
||||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
||||||
test -z "$(CTAGS_ARGS)$$unique" \
|
|
||||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|
||||||
$$unique
|
|
||||||
|
|
||||||
GTAGS:
|
|
||||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
|
||||||
&& $(am__cd) $(top_srcdir) \
|
|
||||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
|
||||||
|
|
||||||
cscope: cscope.files
|
|
||||||
test ! -s cscope.files \
|
|
||||||
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
|
||||||
|
|
||||||
clean-cscope:
|
|
||||||
-rm -f cscope.files
|
|
||||||
|
|
||||||
cscope.files: clean-cscope cscopelist-recursive cscopelist
|
|
||||||
|
|
||||||
cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP)'; \
|
|
||||||
case "$(srcdir)" in \
|
|
||||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
|
||||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
|
||||||
esac; \
|
|
||||||
for i in $$list; do \
|
|
||||||
if test -f "$$i"; then \
|
|
||||||
echo "$(subdir)/$$i"; \
|
|
||||||
else \
|
|
||||||
echo "$$sdir/$$i"; \
|
|
||||||
fi; \
|
|
||||||
done >> $(top_builddir)/cscope.files
|
|
||||||
|
|
||||||
distclean-tags:
|
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
|
||||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
|
||||||
$(am__remove_distdir)
|
|
||||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
||||||
list='$(DISTFILES)'; \
|
|
||||||
dist_files=`for file in $$list; do echo $$file; done | \
|
|
||||||
sed -e "s|^$$srcdirstrip/||;t" \
|
|
||||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|
||||||
case $$dist_files in \
|
|
||||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|
||||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|
||||||
sort -u` ;; \
|
|
||||||
esac; \
|
|
||||||
for file in $$dist_files; do \
|
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|
||||||
if test -d $$d/$$file; then \
|
|
||||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|
||||||
if test -d "$(distdir)/$$file"; then \
|
|
||||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
||||||
fi; \
|
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|
||||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
|
||||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
||||||
fi; \
|
|
||||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
|
||||||
else \
|
|
||||||
test -f "$(distdir)/$$file" \
|
|
||||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
|
||||||
|| exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
|
||||||
if test "$$subdir" = .; then :; else \
|
|
||||||
$(am__make_dryrun) \
|
|
||||||
|| test -d "$(distdir)/$$subdir" \
|
|
||||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
|
||||||
|| exit 1; \
|
|
||||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
|
||||||
$(am__relativize); \
|
|
||||||
new_distdir=$$reldir; \
|
|
||||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
|
||||||
$(am__relativize); \
|
|
||||||
new_top_distdir=$$reldir; \
|
|
||||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
|
||||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
|
||||||
($(am__cd) $$subdir && \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
|
||||||
top_distdir="$$new_top_distdir" \
|
|
||||||
distdir="$$new_distdir" \
|
|
||||||
am__remove_distdir=: \
|
|
||||||
am__skip_length_check=: \
|
|
||||||
am__skip_mode_fix=: \
|
|
||||||
distdir) \
|
|
||||||
|| exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
|
||||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
|
||||||
dist-hook
|
|
||||||
-test -n "$(am__skip_mode_fix)" \
|
|
||||||
|| find "$(distdir)" -type d ! -perm -755 \
|
|
||||||
-exec chmod u+rwx,go+rx {} \; -o \
|
|
||||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
|
||||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
|
||||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
|
||||||
|| chmod -R a+r "$(distdir)"
|
|
||||||
dist-gzip: distdir
|
|
||||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist-bzip2: distdir
|
|
||||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist-lzip: distdir
|
|
||||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist-xz: distdir
|
|
||||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist-tarZ: distdir
|
|
||||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist-shar: distdir
|
|
||||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist-zip: distdir
|
|
||||||
-rm -f $(distdir).zip
|
|
||||||
zip -rq $(distdir).zip $(distdir)
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
dist dist-all:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
|
|
||||||
# This target untars the dist file and tries a VPATH configuration. Then
|
|
||||||
# it guarantees that the distribution is self-contained by making another
|
|
||||||
# tarfile.
|
|
||||||
distcheck: dist
|
|
||||||
case '$(DIST_ARCHIVES)' in \
|
|
||||||
*.tar.gz*) \
|
|
||||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
|
||||||
*.tar.bz2*) \
|
|
||||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
|
||||||
*.tar.lz*) \
|
|
||||||
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
|
||||||
*.tar.xz*) \
|
|
||||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
|
||||||
*.tar.Z*) \
|
|
||||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
|
||||||
*.shar.gz*) \
|
|
||||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
|
||||||
*.zip*) \
|
|
||||||
unzip $(distdir).zip ;;\
|
|
||||||
esac
|
|
||||||
chmod -R a-w $(distdir); chmod u+w $(distdir)
|
|
||||||
mkdir $(distdir)/_build
|
|
||||||
mkdir $(distdir)/_inst
|
|
||||||
chmod a-w $(distdir)
|
|
||||||
test -d $(distdir)/_build || exit 0; \
|
|
||||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
|
||||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
|
||||||
&& am__cwd=`pwd` \
|
|
||||||
&& $(am__cd) $(distdir)/_build \
|
|
||||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
|
||||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
|
||||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
|
||||||
distuninstallcheck \
|
|
||||||
&& chmod -R a-w "$$dc_install_base" \
|
|
||||||
&& ({ \
|
|
||||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
|
||||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
|
||||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
|
||||||
&& rm -rf "$$dc_destdir" \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
|
||||||
&& rm -rf $(DIST_ARCHIVES) \
|
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
|
||||||
&& cd "$$am__cwd" \
|
|
||||||
|| exit 1
|
|
||||||
$(am__post_remove_distdir)
|
|
||||||
@(echo "$(distdir) archives ready for distribution: "; \
|
|
||||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
|
||||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
|
||||||
distuninstallcheck:
|
|
||||||
@test -n '$(distuninstallcheck_dir)' || { \
|
|
||||||
echo 'ERROR: trying to run $@ with an empty' \
|
|
||||||
'$$(distuninstallcheck_dir)' >&2; \
|
|
||||||
exit 1; \
|
|
||||||
}; \
|
|
||||||
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
|
||||||
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
|
||||||
exit 1; \
|
|
||||||
}; \
|
|
||||||
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
|
||||||
|| { echo "ERROR: files left after uninstall:" ; \
|
|
||||||
if test -n "$(DESTDIR)"; then \
|
|
||||||
echo " (check DESTDIR support)"; \
|
|
||||||
fi ; \
|
|
||||||
$(distuninstallcheck_listfiles) ; \
|
|
||||||
exit 1; } >&2
|
|
||||||
distcleancheck: distclean
|
|
||||||
@if test '$(srcdir)' = . ; then \
|
|
||||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
|
||||||
exit 1 ; \
|
|
||||||
fi
|
|
||||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
|
||||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
|
||||||
$(distcleancheck_listfiles) ; \
|
|
||||||
exit 1; } >&2
|
|
||||||
check-am: all-am
|
|
||||||
check: check-recursive
|
|
||||||
all-am: Makefile $(DATA)
|
|
||||||
installdirs: installdirs-recursive
|
|
||||||
installdirs-am:
|
|
||||||
for dir in "$(DESTDIR)$(moddir)"; do \
|
|
||||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
|
||||||
done
|
|
||||||
install: install-recursive
|
|
||||||
install-exec: install-exec-recursive
|
|
||||||
install-data: install-data-recursive
|
|
||||||
uninstall: uninstall-recursive
|
|
||||||
|
|
||||||
install-am: all-am
|
|
||||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
||||||
|
|
||||||
installcheck: installcheck-recursive
|
|
||||||
install-strip:
|
|
||||||
if test -z '$(STRIP)'; then \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
||||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
||||||
install; \
|
|
||||||
else \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
||||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
||||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
|
||||||
fi
|
|
||||||
mostlyclean-generic:
|
|
||||||
|
|
||||||
clean-generic:
|
|
||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
|
||||||
|
|
||||||
distclean-generic:
|
|
||||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
||||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
|
||||||
|
|
||||||
maintainer-clean-generic:
|
|
||||||
@echo "This command is intended for maintainers to use"
|
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
|
||||||
clean: clean-recursive
|
|
||||||
|
|
||||||
clean-am: clean-generic mostlyclean-am
|
|
||||||
|
|
||||||
distclean: distclean-recursive
|
|
||||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
|
||||||
-rm -f Makefile
|
|
||||||
distclean-am: clean-am distclean-generic distclean-tags
|
|
||||||
|
|
||||||
dvi: dvi-recursive
|
|
||||||
|
|
||||||
dvi-am:
|
|
||||||
|
|
||||||
html: html-recursive
|
|
||||||
|
|
||||||
html-am:
|
|
||||||
|
|
||||||
info: info-recursive
|
|
||||||
|
|
||||||
info-am:
|
|
||||||
|
|
||||||
install-data-am: install-nobase_modDATA
|
|
||||||
|
|
||||||
install-dvi: install-dvi-recursive
|
|
||||||
|
|
||||||
install-dvi-am:
|
|
||||||
|
|
||||||
install-exec-am:
|
|
||||||
|
|
||||||
install-html: install-html-recursive
|
|
||||||
|
|
||||||
install-html-am:
|
|
||||||
|
|
||||||
install-info: install-info-recursive
|
|
||||||
|
|
||||||
install-info-am:
|
|
||||||
|
|
||||||
install-man:
|
|
||||||
|
|
||||||
install-pdf: install-pdf-recursive
|
|
||||||
|
|
||||||
install-pdf-am:
|
|
||||||
|
|
||||||
install-ps: install-ps-recursive
|
|
||||||
|
|
||||||
install-ps-am:
|
|
||||||
|
|
||||||
installcheck-am:
|
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive
|
|
||||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
|
||||||
-rm -rf $(top_srcdir)/autom4te.cache
|
|
||||||
-rm -f Makefile
|
|
||||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
||||||
|
|
||||||
mostlyclean: mostlyclean-recursive
|
|
||||||
|
|
||||||
mostlyclean-am: mostlyclean-generic
|
|
||||||
|
|
||||||
pdf: pdf-recursive
|
|
||||||
|
|
||||||
pdf-am:
|
|
||||||
|
|
||||||
ps: ps-recursive
|
|
||||||
|
|
||||||
ps-am:
|
|
||||||
|
|
||||||
uninstall-am: uninstall-nobase_modDATA
|
|
||||||
|
|
||||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
|
|
||||||
cscopelist-recursive ctags-recursive install-am install-strip \
|
|
||||||
tags-recursive
|
|
||||||
|
|
||||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
|
||||||
all all-am am--refresh check check-am clean clean-cscope \
|
|
||||||
clean-generic cscope cscopelist cscopelist-recursive ctags \
|
|
||||||
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
|
|
||||||
dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
|
|
||||||
distclean distclean-generic distclean-tags distcleancheck \
|
|
||||||
distdir distuninstallcheck dvi dvi-am html html-am info \
|
|
||||||
info-am install install-am install-data install-data-am \
|
|
||||||
install-dvi install-dvi-am install-exec install-exec-am \
|
|
||||||
install-html install-html-am install-info install-info-am \
|
|
||||||
install-man install-nobase_modDATA install-pdf install-pdf-am \
|
|
||||||
install-ps install-ps-am install-strip installcheck \
|
|
||||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
|
||||||
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
|
||||||
uninstall-nobase_modDATA
|
|
||||||
|
|
||||||
|
|
||||||
dist-hook:
|
|
||||||
$(SHELL) $(top_srcdir)/ChangeLog > $(top_distdir)/ChangeLog
|
|
||||||
.scm.go:
|
|
||||||
$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
.NOEXPORT:
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
libtoolize --force
|
|
||||||
aclocal
|
|
||||||
autoheader
|
|
||||||
automake --force-missing --add-missing
|
|
||||||
autoconf
|
|
||||||
@ -1 +0,0 @@
|
|||||||
link-warning.h
|
|
||||||
@ -1,554 +0,0 @@
|
|||||||
eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
|
|
||||||
& eval 'exec perl -wS "$0" $argv:q'
|
|
||||||
if 0;
|
|
||||||
# Generate a release announcement message.
|
|
||||||
|
|
||||||
my $VERSION = '2015-01-28 12:02'; # UTC
|
|
||||||
# The definition above must lie within the first 8 lines in order
|
|
||||||
# for the Emacs time-stamp write hook (at end) to update it.
|
|
||||||
# If you change this file with Emacs, please let the write hook
|
|
||||||
# do its job. Otherwise, update this string manually.
|
|
||||||
|
|
||||||
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# Written by Jim Meyering
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
use Getopt::Long;
|
|
||||||
use Digest::MD5;
|
|
||||||
use Digest::SHA1;
|
|
||||||
use POSIX qw(strftime);
|
|
||||||
|
|
||||||
(my $ME = $0) =~ s|.*/||;
|
|
||||||
|
|
||||||
my %valid_release_types = map {$_ => 1} qw (alpha beta stable);
|
|
||||||
my @archive_suffixes = ('tar.gz', 'tar.bz2', 'tar.lzma', 'tar.xz');
|
|
||||||
my $srcdir = '.';
|
|
||||||
|
|
||||||
sub usage ($)
|
|
||||||
{
|
|
||||||
my ($exit_code) = @_;
|
|
||||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
|
||||||
if ($exit_code != 0)
|
|
||||||
{
|
|
||||||
print $STREAM "Try '$ME --help' for more information.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
my @types = sort keys %valid_release_types;
|
|
||||||
print $STREAM <<EOF;
|
|
||||||
Usage: $ME [OPTIONS]
|
|
||||||
Generate an announcement message. Run this from builddir.
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
|
|
||||||
These options must be specified:
|
|
||||||
|
|
||||||
--release-type=TYPE TYPE must be one of @types
|
|
||||||
--package-name=PACKAGE_NAME
|
|
||||||
--previous-version=VER
|
|
||||||
--current-version=VER
|
|
||||||
--gpg-key-id=ID The GnuPG ID of the key used to sign the tarballs
|
|
||||||
--url-directory=URL_DIR
|
|
||||||
|
|
||||||
The following are optional:
|
|
||||||
|
|
||||||
--news=NEWS_FILE include the NEWS section about this release
|
|
||||||
from this NEWS_FILE; accumulates.
|
|
||||||
--srcdir=DIR where to find the NEWS_FILEs (default: $srcdir)
|
|
||||||
--bootstrap-tools=TOOL_LIST a comma-separated list of tools, e.g.,
|
|
||||||
autoconf,automake,bison,gnulib
|
|
||||||
--gnulib-version=VERSION report VERSION as the gnulib version, where
|
|
||||||
VERSION is the result of running git describe
|
|
||||||
in the gnulib source directory.
|
|
||||||
required if gnulib is in TOOL_LIST.
|
|
||||||
--no-print-checksums do not emit MD5 or SHA1 checksums
|
|
||||||
--archive-suffix=SUF add SUF to the list of archive suffixes
|
|
||||||
--mail-headers=HEADERS a space-separated list of mail headers, e.g.,
|
|
||||||
To: x\@example.com Cc: y-announce\@example.com,...
|
|
||||||
|
|
||||||
--help display this help and exit
|
|
||||||
--version output version information and exit
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
exit $exit_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
=item C<%size> = C<sizes (@file)>
|
|
||||||
|
|
||||||
Compute the sizes of the C<@file> and return them as a hash. Return
|
|
||||||
C<undef> if one of the computation failed.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub sizes (@)
|
|
||||||
{
|
|
||||||
my (@file) = @_;
|
|
||||||
|
|
||||||
my $fail = 0;
|
|
||||||
my %res;
|
|
||||||
foreach my $f (@file)
|
|
||||||
{
|
|
||||||
my $cmd = "du -h $f";
|
|
||||||
my $t = `$cmd`;
|
|
||||||
# FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
|
|
||||||
$@
|
|
||||||
and (warn "command failed: '$cmd'\n"), $fail = 1;
|
|
||||||
chomp $t;
|
|
||||||
$t =~ s/^\s*([\d.]+[MkK]).*/${1}B/;
|
|
||||||
$res{$f} = $t;
|
|
||||||
}
|
|
||||||
return $fail ? undef : %res;
|
|
||||||
}
|
|
||||||
|
|
||||||
=item C<print_locations ($title, \@url, \%size, @file)
|
|
||||||
|
|
||||||
Print a section C<$title> dedicated to the list of <@file>, which
|
|
||||||
sizes are stored in C<%size>, and which are available from the C<@url>.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub print_locations ($\@\%@)
|
|
||||||
{
|
|
||||||
my ($title, $url, $size, @file) = @_;
|
|
||||||
print "Here are the $title:\n";
|
|
||||||
foreach my $url (@{$url})
|
|
||||||
{
|
|
||||||
for my $file (@file)
|
|
||||||
{
|
|
||||||
print " $url/$file";
|
|
||||||
print " (", $$size{$file}, ")"
|
|
||||||
if exists $$size{$file};
|
|
||||||
print "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
=item C<print_checksums (@file)
|
|
||||||
|
|
||||||
Print the MD5 and SHA1 signature section for each C<@file>.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub print_checksums (@)
|
|
||||||
{
|
|
||||||
my (@file) = @_;
|
|
||||||
|
|
||||||
print "Here are the MD5 and SHA1 checksums:\n";
|
|
||||||
print "\n";
|
|
||||||
|
|
||||||
foreach my $meth (qw (md5 sha1))
|
|
||||||
{
|
|
||||||
foreach my $f (@file)
|
|
||||||
{
|
|
||||||
open IN, '<', $f
|
|
||||||
or die "$ME: $f: cannot open for reading: $!\n";
|
|
||||||
binmode IN;
|
|
||||||
my $dig =
|
|
||||||
($meth eq 'md5'
|
|
||||||
? Digest::MD5->new->addfile(*IN)->hexdigest
|
|
||||||
: Digest::SHA1->new->addfile(*IN)->hexdigest);
|
|
||||||
close IN;
|
|
||||||
print "$dig $f\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
=item C<print_news_deltas ($news_file, $prev_version, $curr_version)
|
|
||||||
|
|
||||||
Print the section of the NEWS file C<$news_file> addressing changes
|
|
||||||
between versions C<$prev_version> and C<$curr_version>.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub print_news_deltas ($$$)
|
|
||||||
{
|
|
||||||
my ($news_file, $prev_version, $curr_version) = @_;
|
|
||||||
|
|
||||||
my $news_name = $news_file;
|
|
||||||
$news_name =~ s|^\Q$srcdir\E/||;
|
|
||||||
|
|
||||||
print "\n$news_name\n\n";
|
|
||||||
|
|
||||||
# Print all lines from $news_file, starting with the first one
|
|
||||||
# that mentions $curr_version up to but not including
|
|
||||||
# the first occurrence of $prev_version.
|
|
||||||
my $in_items;
|
|
||||||
|
|
||||||
my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/;
|
|
||||||
|
|
||||||
my $found_news;
|
|
||||||
open NEWS, '<', $news_file
|
|
||||||
or die "$ME: $news_file: cannot open for reading: $!\n";
|
|
||||||
while (defined (my $line = <NEWS>))
|
|
||||||
{
|
|
||||||
if ( ! $in_items)
|
|
||||||
{
|
|
||||||
# Match lines like these:
|
|
||||||
# * Major changes in release 5.0.1:
|
|
||||||
# * Noteworthy changes in release 6.6 (2006-11-22) [stable]
|
|
||||||
$line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o
|
|
||||||
or next;
|
|
||||||
$in_items = 1;
|
|
||||||
print $line;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
# This regexp must not match version numbers in NEWS items.
|
|
||||||
# For example, they might well say "introduced in 4.5.5",
|
|
||||||
# and we don't want that to match.
|
|
||||||
$line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o
|
|
||||||
and last;
|
|
||||||
print $line;
|
|
||||||
$line =~ /\S/
|
|
||||||
and $found_news = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close NEWS;
|
|
||||||
|
|
||||||
$in_items
|
|
||||||
or die "$ME: $news_file: no matching lines for '$curr_version'\n";
|
|
||||||
$found_news
|
|
||||||
or die "$ME: $news_file: no news item found for '$curr_version'\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub print_changelog_deltas ($$)
|
|
||||||
{
|
|
||||||
my ($package_name, $prev_version) = @_;
|
|
||||||
|
|
||||||
# Print new ChangeLog entries.
|
|
||||||
|
|
||||||
# First find all CVS-controlled ChangeLog files.
|
|
||||||
use File::Find;
|
|
||||||
my @changelog;
|
|
||||||
find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS'
|
|
||||||
and push @changelog, $File::Find::name}},
|
|
||||||
'.');
|
|
||||||
|
|
||||||
# If there are no ChangeLog files, we're done.
|
|
||||||
@changelog
|
|
||||||
or return;
|
|
||||||
my %changelog = map {$_ => 1} @changelog;
|
|
||||||
|
|
||||||
# Reorder the list of files so that if there are ChangeLog
|
|
||||||
# files in the specified directories, they're listed first,
|
|
||||||
# in this order:
|
|
||||||
my @dir = qw ( . src lib m4 config doc );
|
|
||||||
|
|
||||||
# A typical @changelog array might look like this:
|
|
||||||
# ./ChangeLog
|
|
||||||
# ./po/ChangeLog
|
|
||||||
# ./m4/ChangeLog
|
|
||||||
# ./lib/ChangeLog
|
|
||||||
# ./doc/ChangeLog
|
|
||||||
# ./config/ChangeLog
|
|
||||||
my @reordered;
|
|
||||||
foreach my $d (@dir)
|
|
||||||
{
|
|
||||||
my $dot_slash = $d eq '.' ? $d : "./$d";
|
|
||||||
my $target = "$dot_slash/ChangeLog";
|
|
||||||
delete $changelog{$target}
|
|
||||||
and push @reordered, $target;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Append any remaining ChangeLog files.
|
|
||||||
push @reordered, sort keys %changelog;
|
|
||||||
|
|
||||||
# Remove leading './'.
|
|
||||||
@reordered = map { s!^\./!!; $_ } @reordered;
|
|
||||||
|
|
||||||
print "\nChangeLog entries:\n\n";
|
|
||||||
# print join ("\n", @reordered), "\n";
|
|
||||||
|
|
||||||
$prev_version =~ s/\./_/g;
|
|
||||||
my $prev_cvs_tag = "\U$package_name\E-$prev_version";
|
|
||||||
|
|
||||||
my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered";
|
|
||||||
open DIFF, '-|', $cmd
|
|
||||||
or die "$ME: cannot run '$cmd': $!\n";
|
|
||||||
# Print two types of lines, making minor changes:
|
|
||||||
# Lines starting with '+++ ', e.g.,
|
|
||||||
# +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247
|
|
||||||
# and those starting with '+'.
|
|
||||||
# Don't print the others.
|
|
||||||
my $prev_printed_line_empty = 1;
|
|
||||||
while (defined (my $line = <DIFF>))
|
|
||||||
{
|
|
||||||
if ($line =~ /^\+\+\+ /)
|
|
||||||
{
|
|
||||||
my $separator = "*"x70 ."\n";
|
|
||||||
$line =~ s///;
|
|
||||||
$line =~ s/\s.*//;
|
|
||||||
$prev_printed_line_empty
|
|
||||||
or print "\n";
|
|
||||||
print $separator, $line, $separator;
|
|
||||||
}
|
|
||||||
elsif ($line =~ /^\+/)
|
|
||||||
{
|
|
||||||
$line =~ s///;
|
|
||||||
print $line;
|
|
||||||
$prev_printed_line_empty = ($line =~ /^$/);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close DIFF;
|
|
||||||
|
|
||||||
# The exit code should be 1.
|
|
||||||
# Allow in case there are no modified ChangeLog entries.
|
|
||||||
$? == 256 || $? == 128
|
|
||||||
or warn "warning: '$cmd' had unexpected exit code or signal ($?)\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub get_tool_versions ($$)
|
|
||||||
{
|
|
||||||
my ($tool_list, $gnulib_version) = @_;
|
|
||||||
@$tool_list
|
|
||||||
or return ();
|
|
||||||
|
|
||||||
my $fail;
|
|
||||||
my @tool_version_pair;
|
|
||||||
foreach my $t (@$tool_list)
|
|
||||||
{
|
|
||||||
if ($t eq 'gnulib')
|
|
||||||
{
|
|
||||||
push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version;
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
# Assume that the last "word" on the first line of
|
|
||||||
# 'tool --version' output is the version string.
|
|
||||||
my ($first_line, undef) = split ("\n", `$t --version`);
|
|
||||||
if ($first_line =~ /.* (\d[\w.-]+)$/)
|
|
||||||
{
|
|
||||||
$t = ucfirst $t;
|
|
||||||
push @tool_version_pair, "$t $1";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
defined $first_line
|
|
||||||
and $first_line = '';
|
|
||||||
warn "$t: unexpected --version output\n:$first_line";
|
|
||||||
$fail = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$fail
|
|
||||||
and exit 1;
|
|
||||||
|
|
||||||
return @tool_version_pair;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
# Neutralize the locale, so that, for instance, "du" does not
|
|
||||||
# issue "1,2" instead of "1.2", what confuses our regexps.
|
|
||||||
$ENV{LC_ALL} = "C";
|
|
||||||
|
|
||||||
my $mail_headers;
|
|
||||||
my $release_type;
|
|
||||||
my $package_name;
|
|
||||||
my $prev_version;
|
|
||||||
my $curr_version;
|
|
||||||
my $gpg_key_id;
|
|
||||||
my @url_dir_list;
|
|
||||||
my @news_file;
|
|
||||||
my $bootstrap_tools;
|
|
||||||
my $gnulib_version;
|
|
||||||
my $print_checksums_p = 1;
|
|
||||||
|
|
||||||
# Reformat the warnings before displaying them.
|
|
||||||
local $SIG{__WARN__} = sub
|
|
||||||
{
|
|
||||||
my ($msg) = @_;
|
|
||||||
# Warnings from GetOptions.
|
|
||||||
$msg =~ s/Option (\w)/option --$1/;
|
|
||||||
warn "$ME: $msg";
|
|
||||||
};
|
|
||||||
|
|
||||||
GetOptions
|
|
||||||
(
|
|
||||||
'mail-headers=s' => \$mail_headers,
|
|
||||||
'release-type=s' => \$release_type,
|
|
||||||
'package-name=s' => \$package_name,
|
|
||||||
'previous-version=s' => \$prev_version,
|
|
||||||
'current-version=s' => \$curr_version,
|
|
||||||
'gpg-key-id=s' => \$gpg_key_id,
|
|
||||||
'url-directory=s' => \@url_dir_list,
|
|
||||||
'news=s' => \@news_file,
|
|
||||||
'srcdir=s' => \$srcdir,
|
|
||||||
'bootstrap-tools=s' => \$bootstrap_tools,
|
|
||||||
'gnulib-version=s' => \$gnulib_version,
|
|
||||||
'print-checksums!' => \$print_checksums_p,
|
|
||||||
'archive-suffix=s' => \@archive_suffixes,
|
|
||||||
|
|
||||||
help => sub { usage 0 },
|
|
||||||
version => sub { print "$ME version $VERSION\n"; exit },
|
|
||||||
) or usage 1;
|
|
||||||
|
|
||||||
my $fail = 0;
|
|
||||||
# Ensure that each required option is specified.
|
|
||||||
$release_type
|
|
||||||
or (warn "release type not specified\n"), $fail = 1;
|
|
||||||
$package_name
|
|
||||||
or (warn "package name not specified\n"), $fail = 1;
|
|
||||||
$prev_version
|
|
||||||
or (warn "previous version string not specified\n"), $fail = 1;
|
|
||||||
$curr_version
|
|
||||||
or (warn "current version string not specified\n"), $fail = 1;
|
|
||||||
$gpg_key_id
|
|
||||||
or (warn "GnuPG key ID not specified\n"), $fail = 1;
|
|
||||||
@url_dir_list
|
|
||||||
or (warn "URL directory name(s) not specified\n"), $fail = 1;
|
|
||||||
|
|
||||||
my @tool_list = split ',', $bootstrap_tools;
|
|
||||||
|
|
||||||
grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
|
|
||||||
and (warn "when specifying gnulib as a tool, you must also specify\n"
|
|
||||||
. "--gnulib-version=V, where V is the result of running git describe\n"
|
|
||||||
. "in the gnulib source directory.\n"), $fail = 1;
|
|
||||||
|
|
||||||
exists $valid_release_types{$release_type}
|
|
||||||
or (warn "'$release_type': invalid release type\n"), $fail = 1;
|
|
||||||
|
|
||||||
@ARGV
|
|
||||||
and (warn "too many arguments:\n", join ("\n", @ARGV), "\n"),
|
|
||||||
$fail = 1;
|
|
||||||
$fail
|
|
||||||
and usage 1;
|
|
||||||
|
|
||||||
my $my_distdir = "$package_name-$curr_version";
|
|
||||||
|
|
||||||
my $xd = "$package_name-$prev_version-$curr_version.xdelta";
|
|
||||||
|
|
||||||
my @candidates = map { "$my_distdir.$_" } @archive_suffixes;
|
|
||||||
my @tarballs = grep {-f $_} @candidates;
|
|
||||||
|
|
||||||
@tarballs
|
|
||||||
or die "$ME: none of " . join(', ', @candidates) . " were found\n";
|
|
||||||
my @sizable = @tarballs;
|
|
||||||
-f $xd
|
|
||||||
and push @sizable, $xd;
|
|
||||||
my %size = sizes (@sizable);
|
|
||||||
%size
|
|
||||||
or exit 1;
|
|
||||||
|
|
||||||
my $headers = '';
|
|
||||||
if (defined $mail_headers)
|
|
||||||
{
|
|
||||||
($headers = $mail_headers) =~ s/\s+(\S+:)/\n$1/g;
|
|
||||||
$headers .= "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
# The markup is escaped as <\# so that when this script is sent by
|
|
||||||
# mail (or part of a diff), Gnus is not triggered.
|
|
||||||
print <<EOF;
|
|
||||||
|
|
||||||
${headers}Subject: $my_distdir released [$release_type]
|
|
||||||
|
|
||||||
<\#secure method=pgpmime mode=sign>
|
|
||||||
|
|
||||||
FIXME: put comments here
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
if (@url_dir_list == 1 && @tarballs == 1)
|
|
||||||
{
|
|
||||||
# When there's only one tarball and one URL, use a more concise form.
|
|
||||||
my $m = "$url_dir_list[0]/$tarballs[0]";
|
|
||||||
print "Here are the compressed sources and a GPG detached signature[*]:\n"
|
|
||||||
. " $m\n"
|
|
||||||
. " $m.sig\n\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print_locations ("compressed sources", @url_dir_list, %size, @tarballs);
|
|
||||||
-f $xd
|
|
||||||
and print_locations ("xdelta diffs (useful? if so, "
|
|
||||||
. "please tell bug-gnulib\@gnu.org)",
|
|
||||||
@url_dir_list, %size, $xd);
|
|
||||||
my @sig_files = map { "$_.sig" } @tarballs;
|
|
||||||
print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
|
|
||||||
@sig_files);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($url_dir_list[0] =~ "gnu\.org")
|
|
||||||
{
|
|
||||||
print "Use a mirror for higher download bandwidth:\n";
|
|
||||||
if (@tarballs == 1 && $url_dir_list[0] =~ m!http://ftp\.gnu\.org/gnu/!)
|
|
||||||
{
|
|
||||||
(my $m = "$url_dir_list[0]/$tarballs[0]")
|
|
||||||
=~ s!http://ftp\.gnu\.org/gnu/!http://ftpmirror\.gnu\.org/!;
|
|
||||||
print " $m\n"
|
|
||||||
. " $m.sig\n\n";
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print " http://www.gnu.org/order/ftp.html\n\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$print_checksums_p
|
|
||||||
and print_checksums (@sizable);
|
|
||||||
|
|
||||||
print <<EOF;
|
|
||||||
[*] Use a .sig file to verify that the corresponding file (without the
|
|
||||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
|
||||||
and the corresponding tarball. Then, run a command like this:
|
|
||||||
|
|
||||||
gpg --verify $tarballs[0].sig
|
|
||||||
|
|
||||||
If that command fails because you don't have the required public key,
|
|
||||||
then run this command to import it:
|
|
||||||
|
|
||||||
gpg --keyserver keys.gnupg.net --recv-keys $gpg_key_id
|
|
||||||
|
|
||||||
and rerun the 'gpg --verify' command.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version);
|
|
||||||
@tool_versions
|
|
||||||
and print "\nThis release was bootstrapped with the following tools:",
|
|
||||||
join ('', map {"\n $_"} @tool_versions), "\n";
|
|
||||||
|
|
||||||
print_news_deltas ($_, $prev_version, $curr_version)
|
|
||||||
foreach @news_file;
|
|
||||||
|
|
||||||
$release_type eq 'stable'
|
|
||||||
or print_changelog_deltas ($package_name, $prev_version);
|
|
||||||
|
|
||||||
exit 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
### Setup "GNU" style for perl-mode and cperl-mode.
|
|
||||||
## Local Variables:
|
|
||||||
## mode: perl
|
|
||||||
## perl-indent-level: 2
|
|
||||||
## perl-continued-statement-offset: 2
|
|
||||||
## perl-continued-brace-offset: 0
|
|
||||||
## perl-brace-offset: 0
|
|
||||||
## perl-brace-imaginary-offset: 0
|
|
||||||
## perl-label-offset: -2
|
|
||||||
## perl-extra-newline-before-brace: t
|
|
||||||
## perl-merge-trailing-else: nil
|
|
||||||
## eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
## time-stamp-start: "my $VERSION = '"
|
|
||||||
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
|
||||||
## time-stamp-time-zone: "UTC"
|
|
||||||
## time-stamp-end: "'; # UTC"
|
|
||||||
## End:
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
/* A C macro for declaring that specific arguments must not be NULL.
|
|
||||||
Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published
|
|
||||||
by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
|
|
||||||
that the values passed as arguments n, ..., m must be non-NULL pointers.
|
|
||||||
n = 1 stands for the first argument, n = 2 for the second argument etc. */
|
|
||||||
#ifndef _GL_ARG_NONNULL
|
|
||||||
# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
|
|
||||||
# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
|
|
||||||
# else
|
|
||||||
# define _GL_ARG_NONNULL(params)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
@ -1,271 +0,0 @@
|
|||||||
/* C++ compatible function declaration macros.
|
|
||||||
Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published
|
|
||||||
by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#ifndef _GL_CXXDEFS_H
|
|
||||||
#define _GL_CXXDEFS_H
|
|
||||||
|
|
||||||
/* The three most frequent use cases of these macros are:
|
|
||||||
|
|
||||||
* For providing a substitute for a function that is missing on some
|
|
||||||
platforms, but is declared and works fine on the platforms on which
|
|
||||||
it exists:
|
|
||||||
|
|
||||||
#if @GNULIB_FOO@
|
|
||||||
# if !@HAVE_FOO@
|
|
||||||
_GL_FUNCDECL_SYS (foo, ...);
|
|
||||||
# endif
|
|
||||||
_GL_CXXALIAS_SYS (foo, ...);
|
|
||||||
_GL_CXXALIASWARN (foo);
|
|
||||||
#elif defined GNULIB_POSIXCHECK
|
|
||||||
...
|
|
||||||
#endif
|
|
||||||
|
|
||||||
* For providing a replacement for a function that exists on all platforms,
|
|
||||||
but is broken/insufficient and needs to be replaced on some platforms:
|
|
||||||
|
|
||||||
#if @GNULIB_FOO@
|
|
||||||
# if @REPLACE_FOO@
|
|
||||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
|
||||||
# undef foo
|
|
||||||
# define foo rpl_foo
|
|
||||||
# endif
|
|
||||||
_GL_FUNCDECL_RPL (foo, ...);
|
|
||||||
_GL_CXXALIAS_RPL (foo, ...);
|
|
||||||
# else
|
|
||||||
_GL_CXXALIAS_SYS (foo, ...);
|
|
||||||
# endif
|
|
||||||
_GL_CXXALIASWARN (foo);
|
|
||||||
#elif defined GNULIB_POSIXCHECK
|
|
||||||
...
|
|
||||||
#endif
|
|
||||||
|
|
||||||
* For providing a replacement for a function that exists on some platforms
|
|
||||||
but is broken/insufficient and needs to be replaced on some of them and
|
|
||||||
is additionally either missing or undeclared on some other platforms:
|
|
||||||
|
|
||||||
#if @GNULIB_FOO@
|
|
||||||
# if @REPLACE_FOO@
|
|
||||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
|
||||||
# undef foo
|
|
||||||
# define foo rpl_foo
|
|
||||||
# endif
|
|
||||||
_GL_FUNCDECL_RPL (foo, ...);
|
|
||||||
_GL_CXXALIAS_RPL (foo, ...);
|
|
||||||
# else
|
|
||||||
# if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
|
|
||||||
_GL_FUNCDECL_SYS (foo, ...);
|
|
||||||
# endif
|
|
||||||
_GL_CXXALIAS_SYS (foo, ...);
|
|
||||||
# endif
|
|
||||||
_GL_CXXALIASWARN (foo);
|
|
||||||
#elif defined GNULIB_POSIXCHECK
|
|
||||||
...
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* _GL_EXTERN_C declaration;
|
|
||||||
performs the declaration with C linkage. */
|
|
||||||
#if defined __cplusplus
|
|
||||||
# define _GL_EXTERN_C extern "C"
|
|
||||||
#else
|
|
||||||
# define _GL_EXTERN_C extern
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
|
|
||||||
declares a replacement function, named rpl_func, with the given prototype,
|
|
||||||
consisting of return type, parameters, and attributes.
|
|
||||||
Example:
|
|
||||||
_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
|
|
||||||
_GL_ARG_NONNULL ((1)));
|
|
||||||
*/
|
|
||||||
#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
|
|
||||||
_GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
|
|
||||||
#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
|
|
||||||
_GL_EXTERN_C rettype rpl_func parameters_and_attributes
|
|
||||||
|
|
||||||
/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
|
|
||||||
declares the system function, named func, with the given prototype,
|
|
||||||
consisting of return type, parameters, and attributes.
|
|
||||||
Example:
|
|
||||||
_GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
|
|
||||||
_GL_ARG_NONNULL ((1)));
|
|
||||||
*/
|
|
||||||
#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
|
|
||||||
_GL_EXTERN_C rettype func parameters_and_attributes
|
|
||||||
|
|
||||||
/* _GL_CXXALIAS_RPL (func, rettype, parameters);
|
|
||||||
declares a C++ alias called GNULIB_NAMESPACE::func
|
|
||||||
that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
|
|
||||||
Example:
|
|
||||||
_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
|
|
||||||
*/
|
|
||||||
#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
|
|
||||||
_GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
|
|
||||||
namespace GNULIB_NAMESPACE \
|
|
||||||
{ \
|
|
||||||
rettype (*const func) parameters = ::rpl_func; \
|
|
||||||
} \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
|
|
||||||
is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
|
|
||||||
except that the C function rpl_func may have a slightly different
|
|
||||||
declaration. A cast is used to silence the "invalid conversion" error
|
|
||||||
that would otherwise occur. */
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
|
|
||||||
namespace GNULIB_NAMESPACE \
|
|
||||||
{ \
|
|
||||||
rettype (*const func) parameters = \
|
|
||||||
reinterpret_cast<rettype(*)parameters>(::rpl_func); \
|
|
||||||
} \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_CXXALIAS_SYS (func, rettype, parameters);
|
|
||||||
declares a C++ alias called GNULIB_NAMESPACE::func
|
|
||||||
that redirects to the system provided function func, if GNULIB_NAMESPACE
|
|
||||||
is defined.
|
|
||||||
Example:
|
|
||||||
_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
|
|
||||||
*/
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
/* If we were to write
|
|
||||||
rettype (*const func) parameters = ::func;
|
|
||||||
like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
|
|
||||||
better (remove an indirection through a 'static' pointer variable),
|
|
||||||
but then the _GL_CXXALIASWARN macro below would cause a warning not only
|
|
||||||
for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */
|
|
||||||
# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
|
|
||||||
namespace GNULIB_NAMESPACE \
|
|
||||||
{ \
|
|
||||||
static rettype (*func) parameters = ::func; \
|
|
||||||
} \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
|
|
||||||
is like _GL_CXXALIAS_SYS (func, rettype, parameters);
|
|
||||||
except that the C function func may have a slightly different declaration.
|
|
||||||
A cast is used to silence the "invalid conversion" error that would
|
|
||||||
otherwise occur. */
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
|
|
||||||
namespace GNULIB_NAMESPACE \
|
|
||||||
{ \
|
|
||||||
static rettype (*func) parameters = \
|
|
||||||
reinterpret_cast<rettype(*)parameters>(::func); \
|
|
||||||
} \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
|
|
||||||
is like _GL_CXXALIAS_SYS (func, rettype, parameters);
|
|
||||||
except that the C function is picked among a set of overloaded functions,
|
|
||||||
namely the one with rettype2 and parameters2. Two consecutive casts
|
|
||||||
are used to silence the "cannot find a match" and "invalid conversion"
|
|
||||||
errors that would otherwise occur. */
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
/* The outer cast must be a reinterpret_cast.
|
|
||||||
The inner cast: When the function is defined as a set of overloaded
|
|
||||||
functions, it works as a static_cast<>, choosing the designated variant.
|
|
||||||
When the function is defined as a single variant, it works as a
|
|
||||||
reinterpret_cast<>. The parenthesized cast syntax works both ways. */
|
|
||||||
# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
|
|
||||||
namespace GNULIB_NAMESPACE \
|
|
||||||
{ \
|
|
||||||
static rettype (*func) parameters = \
|
|
||||||
reinterpret_cast<rettype(*)parameters>( \
|
|
||||||
(rettype2(*)parameters2)(::func)); \
|
|
||||||
} \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_CXXALIASWARN (func);
|
|
||||||
causes a warning to be emitted when ::func is used but not when
|
|
||||||
GNULIB_NAMESPACE::func is used. func must be defined without overloaded
|
|
||||||
variants. */
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
# define _GL_CXXALIASWARN(func) \
|
|
||||||
_GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
|
|
||||||
# define _GL_CXXALIASWARN_1(func,namespace) \
|
|
||||||
_GL_CXXALIASWARN_2 (func, namespace)
|
|
||||||
/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
|
|
||||||
we enable the warning only when not optimizing. */
|
|
||||||
# if !__OPTIMIZE__
|
|
||||||
# define _GL_CXXALIASWARN_2(func,namespace) \
|
|
||||||
_GL_WARN_ON_USE (func, \
|
|
||||||
"The symbol ::" #func " refers to the system function. " \
|
|
||||||
"Use " #namespace "::" #func " instead.")
|
|
||||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
|
|
||||||
# define _GL_CXXALIASWARN_2(func,namespace) \
|
|
||||||
extern __typeof__ (func) func
|
|
||||||
# else
|
|
||||||
# define _GL_CXXALIASWARN_2(func,namespace) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIASWARN(func) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
|
|
||||||
causes a warning to be emitted when the given overloaded variant of ::func
|
|
||||||
is used but not when GNULIB_NAMESPACE::func is used. */
|
|
||||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
|
|
||||||
# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
|
|
||||||
_GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
|
|
||||||
GNULIB_NAMESPACE)
|
|
||||||
# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
|
|
||||||
_GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
|
|
||||||
/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
|
|
||||||
we enable the warning only when not optimizing. */
|
|
||||||
# if !__OPTIMIZE__
|
|
||||||
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
|
|
||||||
_GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
|
|
||||||
"The symbol ::" #func " refers to the system function. " \
|
|
||||||
"Use " #namespace "::" #func " instead.")
|
|
||||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
|
|
||||||
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
|
|
||||||
extern __typeof__ (func) func
|
|
||||||
# else
|
|
||||||
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
|
|
||||||
_GL_EXTERN_C int _gl_cxxalias_dummy
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _GL_CXXDEFS_H */
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
#! /usr/bin/env guile
|
|
||||||
!#
|
|
||||||
;; -*- indent-tabs-mode:nil; coding: utf-8 -*-
|
|
||||||
;; Copyright (C) 2015
|
|
||||||
;; "Mu Lei" known as "NalaGinrut" <mulei@gnu.org>
|
|
||||||
;; This file is free software: you can redistribute it and/or modify
|
|
||||||
;; it under the terms of the GNU General Public License and GNU
|
|
||||||
;; Lesser General Public License published by the Free Software
|
|
||||||
;; Foundation, either version 3 of the License, or (at your option)
|
|
||||||
;; any later version.
|
|
||||||
|
|
||||||
;; This file is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License and GNU Lesser General Public License
|
|
||||||
;; for more details.
|
|
||||||
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; and GNU Lesser General Public License along with this program.
|
|
||||||
;; If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
;; NOTE: It's not fair to check GNU Texinfo in configure, since users
|
|
||||||
;; don't have to install it unless they want to generate manuals.
|
|
||||||
|
|
||||||
(use-modules (ice-9 popen) (ice-9 rdelim) (ice-9 regex))
|
|
||||||
|
|
||||||
(let ((m (string-match "texindex [(]GNU texinfo[)] ([0-9.]+)"
|
|
||||||
(read-line (open-pipe "texindex --version" OPEN_READ)))))
|
|
||||||
(if m
|
|
||||||
(if (string>=? (match:substring m 1) "5.2")
|
|
||||||
0
|
|
||||||
(error "Please upgrade GNU Texinfo for generating manuals!"))
|
|
||||||
(error "Please install the latest GNU Texinfo!")))
|
|
||||||
@ -1,143 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Wrapper for compilers which do not understand `-c -o'.
|
|
||||||
|
|
||||||
scriptversion=2009-10-06.20; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
|
|
||||||
# Foundation, Inc.
|
|
||||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# This file is maintained in Automake, please report
|
|
||||||
# bugs to <bug-automake@gnu.org> or send patches to
|
|
||||||
# <automake-patches@gnu.org>.
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
'')
|
|
||||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
|
||||||
exit 1;
|
|
||||||
;;
|
|
||||||
-h | --h*)
|
|
||||||
cat <<\EOF
|
|
||||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
|
||||||
|
|
||||||
Wrapper for compilers which do not understand `-c -o'.
|
|
||||||
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
|
||||||
arguments, and rename the output as expected.
|
|
||||||
|
|
||||||
If you are trying to build a whole package this is not the
|
|
||||||
right script to run: please start by reading the file `INSTALL'.
|
|
||||||
|
|
||||||
Report bugs to <bug-automake@gnu.org>.
|
|
||||||
EOF
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
-v | --v*)
|
|
||||||
echo "compile $scriptversion"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ofile=
|
|
||||||
cfile=
|
|
||||||
eat=
|
|
||||||
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
if test -n "$eat"; then
|
|
||||||
eat=
|
|
||||||
else
|
|
||||||
case $1 in
|
|
||||||
-o)
|
|
||||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
|
||||||
# So we strip `-o arg' only if arg is an object.
|
|
||||||
eat=1
|
|
||||||
case $2 in
|
|
||||||
*.o | *.obj)
|
|
||||||
ofile=$2
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set x "$@" -o "$2"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*.c)
|
|
||||||
cfile=$1
|
|
||||||
set x "$@" "$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set x "$@" "$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$ofile" || test -z "$cfile"; then
|
|
||||||
# If no `-o' option was seen then we might have been invoked from a
|
|
||||||
# pattern rule where we don't need one. That is ok -- this is a
|
|
||||||
# normal compilation that the losing compiler can handle. If no
|
|
||||||
# `.c' file was seen then we are probably linking. That is also
|
|
||||||
# ok.
|
|
||||||
exec "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Name of file we expect compiler to create.
|
|
||||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
|
||||||
|
|
||||||
# Create the lock directory.
|
|
||||||
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
|
|
||||||
# that we are using for the .o file. Also, base the name on the expected
|
|
||||||
# object file name, since that is what matters with a parallel build.
|
|
||||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
|
||||||
while true; do
|
|
||||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# FIXME: race condition here if user kills between mkdir and trap.
|
|
||||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
|
||||||
|
|
||||||
# Run the compile.
|
|
||||||
"$@"
|
|
||||||
ret=$?
|
|
||||||
|
|
||||||
if test -f "$cofile"; then
|
|
||||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
|
||||||
elif test -f "${cofile}bj"; then
|
|
||||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rmdir "$lockdir"
|
|
||||||
exit $ret
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# mode: shell-script
|
|
||||||
# sh-indentation: 2
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/usr/share/automake-1.12/config.guess
|
|
||||||
@ -1,690 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Output a system dependent set of variables, describing how to set the
|
|
||||||
# run time search path of shared libraries in an executable.
|
|
||||||
#
|
|
||||||
# Copyright 1996-2014 Free Software Foundation, Inc.
|
|
||||||
# Taken from GNU libtool, 2001
|
|
||||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
|
||||||
#
|
|
||||||
# This file is free software; the Free Software Foundation gives
|
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
|
||||||
# modifications, as long as this notice is preserved.
|
|
||||||
#
|
|
||||||
# The first argument passed to this file is the canonical host specification,
|
|
||||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
|
||||||
# or
|
|
||||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
|
||||||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
|
|
||||||
# should be set by the caller.
|
|
||||||
#
|
|
||||||
# The set of defined variables is at the end of this script.
|
|
||||||
|
|
||||||
# Known limitations:
|
|
||||||
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
|
|
||||||
# than 256 bytes, otherwise the compiler driver will dump core. The only
|
|
||||||
# known workaround is to choose shorter directory names for the build
|
|
||||||
# directory and/or the installation directory.
|
|
||||||
|
|
||||||
# All known linkers require a '.a' archive for static linking (except MSVC,
|
|
||||||
# which needs '.lib').
|
|
||||||
libext=a
|
|
||||||
shrext=.so
|
|
||||||
|
|
||||||
host="$1"
|
|
||||||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
|
||||||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
|
||||||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
|
||||||
|
|
||||||
# Code taken from libtool.m4's _LT_CC_BASENAME.
|
|
||||||
|
|
||||||
for cc_temp in $CC""; do
|
|
||||||
case $cc_temp in
|
|
||||||
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
|
|
||||||
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
|
|
||||||
\-*) ;;
|
|
||||||
*) break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
|
|
||||||
|
|
||||||
# Code taken from libtool.m4's _LT_COMPILER_PIC.
|
|
||||||
|
|
||||||
wl=
|
|
||||||
if test "$GCC" = yes; then
|
|
||||||
wl='-Wl,'
|
|
||||||
else
|
|
||||||
case "$host_os" in
|
|
||||||
aix*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
mingw* | cygwin* | pw32* | os2* | cegcc*)
|
|
||||||
;;
|
|
||||||
hpux9* | hpux10* | hpux11*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
irix5* | irix6* | nonstopux*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
linux* | k*bsd*-gnu | kopensolaris*-gnu)
|
|
||||||
case $cc_basename in
|
|
||||||
ecc*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
icc* | ifort*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
lf95*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
nagfor*)
|
|
||||||
wl='-Wl,-Wl,,'
|
|
||||||
;;
|
|
||||||
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
ccc*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
xl* | bgxl* | bgf* | mpixl*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
como)
|
|
||||||
wl='-lopt='
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
case `$CC -V 2>&1 | sed 5q` in
|
|
||||||
*Sun\ F* | *Sun*Fortran*)
|
|
||||||
wl=
|
|
||||||
;;
|
|
||||||
*Sun\ C*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
newsos6)
|
|
||||||
;;
|
|
||||||
*nto* | *qnx*)
|
|
||||||
;;
|
|
||||||
osf3* | osf4* | osf5*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
rdos*)
|
|
||||||
;;
|
|
||||||
solaris*)
|
|
||||||
case $cc_basename in
|
|
||||||
f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
|
|
||||||
wl='-Qoption ld '
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
sunos4*)
|
|
||||||
wl='-Qoption ld '
|
|
||||||
;;
|
|
||||||
sysv4 | sysv4.2uw2* | sysv4.3*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
sysv4*MP*)
|
|
||||||
;;
|
|
||||||
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
unicos*)
|
|
||||||
wl='-Wl,'
|
|
||||||
;;
|
|
||||||
uts4*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
|
|
||||||
|
|
||||||
hardcode_libdir_flag_spec=
|
|
||||||
hardcode_libdir_separator=
|
|
||||||
hardcode_direct=no
|
|
||||||
hardcode_minus_L=no
|
|
||||||
|
|
||||||
case "$host_os" in
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
|
||||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
|
||||||
# When not using gcc, we currently assume that we are using
|
|
||||||
# Microsoft Visual C++.
|
|
||||||
if test "$GCC" != yes; then
|
|
||||||
with_gnu_ld=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
interix*)
|
|
||||||
# we just hope/assume this is gcc and not c89 (= MSVC++)
|
|
||||||
with_gnu_ld=yes
|
|
||||||
;;
|
|
||||||
openbsd*)
|
|
||||||
with_gnu_ld=no
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ld_shlibs=yes
|
|
||||||
if test "$with_gnu_ld" = yes; then
|
|
||||||
# Set some defaults for GNU ld with shared library support. These
|
|
||||||
# are reset later if shared libraries are not supported. Putting them
|
|
||||||
# here allows them to be overridden if necessary.
|
|
||||||
# Unlike libtool, we use -rpath here, not --rpath, since the documented
|
|
||||||
# option of GNU ld is called -rpath, not --rpath.
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
||||||
case "$host_os" in
|
|
||||||
aix[3-9]*)
|
|
||||||
# On AIX/PPC, the GNU linker is very broken
|
|
||||||
if test "$host_cpu" != ia64; then
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
amigaos*)
|
|
||||||
case "$host_cpu" in
|
|
||||||
powerpc)
|
|
||||||
;;
|
|
||||||
m68k)
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
beos*)
|
|
||||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
|
||||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
|
||||||
# no search path for DLLs.
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
haiku*)
|
|
||||||
;;
|
|
||||||
interix[3-9]*)
|
|
||||||
hardcode_direct=no
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
|
||||||
;;
|
|
||||||
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
|
|
||||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
netbsd*)
|
|
||||||
;;
|
|
||||||
solaris*)
|
|
||||||
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
|
|
||||||
ld_shlibs=no
|
|
||||||
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
|
|
||||||
case `$LD -v 2>&1` in
|
|
||||||
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
|
|
||||||
ld_shlibs=no
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
|
||||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
sunos4*)
|
|
||||||
hardcode_direct=yes
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if test "$ld_shlibs" = no; then
|
|
||||||
hardcode_libdir_flag_spec=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
case "$host_os" in
|
|
||||||
aix3*)
|
|
||||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
|
||||||
# are no directories specified by -L.
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
if test "$GCC" = yes; then
|
|
||||||
# Neither direct hardcoding nor static linking is supported with a
|
|
||||||
# broken collect2.
|
|
||||||
hardcode_direct=unsupported
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
aix[4-9]*)
|
|
||||||
if test "$host_cpu" = ia64; then
|
|
||||||
# On IA64, the linker does run time linking by default, so we don't
|
|
||||||
# have to do anything special.
|
|
||||||
aix_use_runtimelinking=no
|
|
||||||
else
|
|
||||||
aix_use_runtimelinking=no
|
|
||||||
# Test if we are trying to use run time linking or normal
|
|
||||||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
|
|
||||||
# need to do runtime linking.
|
|
||||||
case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
|
|
||||||
for ld_flag in $LDFLAGS; do
|
|
||||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
|
|
||||||
aix_use_runtimelinking=yes
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
hardcode_direct=yes
|
|
||||||
hardcode_libdir_separator=':'
|
|
||||||
if test "$GCC" = yes; then
|
|
||||||
case $host_os in aix4.[012]|aix4.[012].*)
|
|
||||||
collect2name=`${CC} -print-prog-name=collect2`
|
|
||||||
if test -f "$collect2name" && \
|
|
||||||
strings "$collect2name" | grep resolve_lib_name >/dev/null
|
|
||||||
then
|
|
||||||
# We have reworked collect2
|
|
||||||
:
|
|
||||||
else
|
|
||||||
# We have old collect2
|
|
||||||
hardcode_direct=unsupported
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
hardcode_libdir_separator=
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
# Begin _LT_AC_SYS_LIBPATH_AIX.
|
|
||||||
echo 'int main () { return 0; }' > conftest.c
|
|
||||||
${CC} ${LDFLAGS} conftest.c -o conftest
|
|
||||||
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
|
||||||
}'`
|
|
||||||
if test -z "$aix_libpath"; then
|
|
||||||
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
|
||||||
}'`
|
|
||||||
fi
|
|
||||||
if test -z "$aix_libpath"; then
|
|
||||||
aix_libpath="/usr/lib:/lib"
|
|
||||||
fi
|
|
||||||
rm -f conftest.c conftest
|
|
||||||
# End _LT_AC_SYS_LIBPATH_AIX.
|
|
||||||
if test "$aix_use_runtimelinking" = yes; then
|
|
||||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
|
||||||
else
|
|
||||||
if test "$host_cpu" = ia64; then
|
|
||||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
|
||||||
else
|
|
||||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
amigaos*)
|
|
||||||
case "$host_cpu" in
|
|
||||||
powerpc)
|
|
||||||
;;
|
|
||||||
m68k)
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
bsdi[45]*)
|
|
||||||
;;
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
|
||||||
# When not using gcc, we currently assume that we are using
|
|
||||||
# Microsoft Visual C++.
|
|
||||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
|
||||||
# no search path for DLLs.
|
|
||||||
hardcode_libdir_flag_spec=' '
|
|
||||||
libext=lib
|
|
||||||
;;
|
|
||||||
darwin* | rhapsody*)
|
|
||||||
hardcode_direct=no
|
|
||||||
if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
dgux*)
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
;;
|
|
||||||
freebsd2.2*)
|
|
||||||
hardcode_libdir_flag_spec='-R$libdir'
|
|
||||||
hardcode_direct=yes
|
|
||||||
;;
|
|
||||||
freebsd2*)
|
|
||||||
hardcode_direct=yes
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
freebsd* | dragonfly*)
|
|
||||||
hardcode_libdir_flag_spec='-R$libdir'
|
|
||||||
hardcode_direct=yes
|
|
||||||
;;
|
|
||||||
hpux9*)
|
|
||||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
hardcode_direct=yes
|
|
||||||
# hardcode_minus_L: Not really in the search PATH,
|
|
||||||
# but as the default location of the library.
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
hpux10*)
|
|
||||||
if test "$with_gnu_ld" = no; then
|
|
||||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
hardcode_direct=yes
|
|
||||||
# hardcode_minus_L: Not really in the search PATH,
|
|
||||||
# but as the default location of the library.
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
hpux11*)
|
|
||||||
if test "$with_gnu_ld" = no; then
|
|
||||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
case $host_cpu in
|
|
||||||
hppa*64*|ia64*)
|
|
||||||
hardcode_direct=no
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
hardcode_direct=yes
|
|
||||||
# hardcode_minus_L: Not really in the search PATH,
|
|
||||||
# but as the default location of the library.
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
irix5* | irix6* | nonstopux*)
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
;;
|
|
||||||
netbsd*)
|
|
||||||
hardcode_libdir_flag_spec='-R$libdir'
|
|
||||||
hardcode_direct=yes
|
|
||||||
;;
|
|
||||||
newsos6)
|
|
||||||
hardcode_direct=yes
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
;;
|
|
||||||
*nto* | *qnx*)
|
|
||||||
;;
|
|
||||||
openbsd*)
|
|
||||||
if test -f /usr/libexec/ld.so; then
|
|
||||||
hardcode_direct=yes
|
|
||||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
|
||||||
else
|
|
||||||
case "$host_os" in
|
|
||||||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
|
|
||||||
hardcode_libdir_flag_spec='-R$libdir'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ld_shlibs=no
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
os2*)
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
osf3*)
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
;;
|
|
||||||
osf4* | osf5*)
|
|
||||||
if test "$GCC" = yes; then
|
|
||||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
||||||
else
|
|
||||||
# Both cc and cxx compiler support -rpath directly
|
|
||||||
hardcode_libdir_flag_spec='-rpath $libdir'
|
|
||||||
fi
|
|
||||||
hardcode_libdir_separator=:
|
|
||||||
;;
|
|
||||||
solaris*)
|
|
||||||
hardcode_libdir_flag_spec='-R$libdir'
|
|
||||||
;;
|
|
||||||
sunos4*)
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
hardcode_direct=yes
|
|
||||||
hardcode_minus_L=yes
|
|
||||||
;;
|
|
||||||
sysv4)
|
|
||||||
case $host_vendor in
|
|
||||||
sni)
|
|
||||||
hardcode_direct=yes # is this really true???
|
|
||||||
;;
|
|
||||||
siemens)
|
|
||||||
hardcode_direct=no
|
|
||||||
;;
|
|
||||||
motorola)
|
|
||||||
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
sysv4.3*)
|
|
||||||
;;
|
|
||||||
sysv4*MP*)
|
|
||||||
if test -d /usr/nec; then
|
|
||||||
ld_shlibs=yes
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
|
|
||||||
;;
|
|
||||||
sysv5* | sco3.2v5* | sco5v6*)
|
|
||||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
|
|
||||||
hardcode_libdir_separator=':'
|
|
||||||
;;
|
|
||||||
uts4*)
|
|
||||||
hardcode_libdir_flag_spec='-L$libdir'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
ld_shlibs=no
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check dynamic linker characteristics
|
|
||||||
# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
|
|
||||||
# Unlike libtool.m4, here we don't care about _all_ names of the library, but
|
|
||||||
# only about the one the linker finds when passed -lNAME. This is the last
|
|
||||||
# element of library_names_spec in libtool.m4, or possibly two of them if the
|
|
||||||
# linker has special search rules.
|
|
||||||
library_names_spec= # the last element of library_names_spec in libtool.m4
|
|
||||||
libname_spec='lib$name'
|
|
||||||
case "$host_os" in
|
|
||||||
aix3*)
|
|
||||||
library_names_spec='$libname.a'
|
|
||||||
;;
|
|
||||||
aix[4-9]*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
amigaos*)
|
|
||||||
case "$host_cpu" in
|
|
||||||
powerpc*)
|
|
||||||
library_names_spec='$libname$shrext' ;;
|
|
||||||
m68k)
|
|
||||||
library_names_spec='$libname.a' ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
beos*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
bsdi[45]*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
cygwin* | mingw* | pw32* | cegcc*)
|
|
||||||
shrext=.dll
|
|
||||||
library_names_spec='$libname.dll.a $libname.lib'
|
|
||||||
;;
|
|
||||||
darwin* | rhapsody*)
|
|
||||||
shrext=.dylib
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
dgux*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
freebsd* | dragonfly*)
|
|
||||||
case "$host_os" in
|
|
||||||
freebsd[123]*)
|
|
||||||
library_names_spec='$libname$shrext$versuffix' ;;
|
|
||||||
*)
|
|
||||||
library_names_spec='$libname$shrext' ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
gnu*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
haiku*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
hpux9* | hpux10* | hpux11*)
|
|
||||||
case $host_cpu in
|
|
||||||
ia64*)
|
|
||||||
shrext=.so
|
|
||||||
;;
|
|
||||||
hppa*64*)
|
|
||||||
shrext=.sl
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
shrext=.sl
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
interix[3-9]*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
irix5* | irix6* | nonstopux*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
case "$host_os" in
|
|
||||||
irix5* | nonstopux*)
|
|
||||||
libsuff= shlibsuff=
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
case $LD in
|
|
||||||
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
|
|
||||||
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
|
|
||||||
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
|
|
||||||
*) libsuff= shlibsuff= ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
linux*oldld* | linux*aout* | linux*coff*)
|
|
||||||
;;
|
|
||||||
linux* | k*bsd*-gnu | kopensolaris*-gnu)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
knetbsd*-gnu)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
netbsd*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
newsos6)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
*nto* | *qnx*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
openbsd*)
|
|
||||||
library_names_spec='$libname$shrext$versuffix'
|
|
||||||
;;
|
|
||||||
os2*)
|
|
||||||
libname_spec='$name'
|
|
||||||
shrext=.dll
|
|
||||||
library_names_spec='$libname.a'
|
|
||||||
;;
|
|
||||||
osf3* | osf4* | osf5*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
rdos*)
|
|
||||||
;;
|
|
||||||
solaris*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
sunos4*)
|
|
||||||
library_names_spec='$libname$shrext$versuffix'
|
|
||||||
;;
|
|
||||||
sysv4 | sysv4.3*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
sysv4*MP*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
tpf*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
uts4*)
|
|
||||||
library_names_spec='$libname$shrext'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
|
|
||||||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
|
||||||
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
|
|
||||||
escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
|
||||||
escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
|
||||||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
|
||||||
|
|
||||||
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
|
|
||||||
|
|
||||||
# How to pass a linker flag through the compiler.
|
|
||||||
wl="$escaped_wl"
|
|
||||||
|
|
||||||
# Static library suffix (normally "a").
|
|
||||||
libext="$libext"
|
|
||||||
|
|
||||||
# Shared library suffix (normally "so").
|
|
||||||
shlibext="$shlibext"
|
|
||||||
|
|
||||||
# Format of library name prefix.
|
|
||||||
libname_spec="$escaped_libname_spec"
|
|
||||||
|
|
||||||
# Library names that the linker finds when passed -lNAME.
|
|
||||||
library_names_spec="$escaped_library_names_spec"
|
|
||||||
|
|
||||||
# Flag to hardcode \$libdir into a binary during linking.
|
|
||||||
# This must work even if \$libdir does not exist.
|
|
||||||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
|
|
||||||
|
|
||||||
# Whether we need a single -rpath flag with a separated argument.
|
|
||||||
hardcode_libdir_separator="$hardcode_libdir_separator"
|
|
||||||
|
|
||||||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
|
|
||||||
# resulting binary.
|
|
||||||
hardcode_direct="$hardcode_direct"
|
|
||||||
|
|
||||||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
|
|
||||||
# resulting binary.
|
|
||||||
hardcode_minus_L="$hardcode_minus_L"
|
|
||||||
|
|
||||||
EOF
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/usr/share/automake-1.12/config.sub
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
#! /usr/bin/env guile
|
|
||||||
!#
|
|
||||||
;; -*- indent-tabs-mode:nil; coding: utf-8 -*-
|
|
||||||
;; Copyright (C) 2015
|
|
||||||
;; "Mu Lei" known as "NalaGinrut" <mulei@gnu.org>
|
|
||||||
;; This file is free software: you can redistribute it and/or modify
|
|
||||||
;; it under the terms of the GNU General Public License and GNU
|
|
||||||
;; Lesser General Public License published by the Free Software
|
|
||||||
;; Foundation, either version 3 of the License, or (at your option)
|
|
||||||
;; any later version.
|
|
||||||
|
|
||||||
;; This file is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License and GNU Lesser General Public License
|
|
||||||
;; for more details.
|
|
||||||
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; and GNU Lesser General Public License along with this program.
|
|
||||||
;; If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
;; NOTE: It's not fair to check GNU Texinfo in configure, since users
|
|
||||||
;; don't have to install it unless they want to generate manuals.
|
|
||||||
(use-modules (ice-9 match))
|
|
||||||
|
|
||||||
(define *tpl*
|
|
||||||
"version: ~a
|
|
||||||
directory: artanis
|
|
||||||
filename: artanis-~a.tar.~a
|
|
||||||
symlink: artanis-~a.tar.~a artanis-latest.tar.~a
|
|
||||||
comment: make a release")
|
|
||||||
|
|
||||||
(define (main args)
|
|
||||||
(define (->f e v) (format #f "artanis-~a.tar.~a.directive" v e))
|
|
||||||
(define (->t e v) (format #f *tpl* v v e v e e))
|
|
||||||
(match args
|
|
||||||
((cmd ext ver)
|
|
||||||
(let* ((f (->f ext ver))
|
|
||||||
(t (->t ext ver))
|
|
||||||
(fp (open-file f "w")))
|
|
||||||
(display t fp)
|
|
||||||
(close fp)))
|
|
||||||
(else (error "[usage] gen-directive.scm ext version"))))
|
|
||||||
|
|
||||||
(main (command-line))
|
|
||||||
@ -1,466 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
# gendocs.sh -- generate a GNU manual in many formats. This script is
|
|
||||||
# mentioned in maintain.texi. See the help message below for usage details.
|
|
||||||
|
|
||||||
scriptversion=2013-02-03.15
|
|
||||||
|
|
||||||
# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
|
||||||
# Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Original author: Mohit Agarwal.
|
|
||||||
# Send bug reports and any other correspondence to bug-texinfo@gnu.org.
|
|
||||||
#
|
|
||||||
# The latest version of this script, and the companion template, is
|
|
||||||
# available from Texinfo CVS:
|
|
||||||
# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh
|
|
||||||
# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template
|
|
||||||
#
|
|
||||||
# An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib).
|
|
||||||
|
|
||||||
# TODO:
|
|
||||||
# - image importation was only implemented for HTML generated by
|
|
||||||
# makeinfo. But it should be simple enough to adjust.
|
|
||||||
# - images are not imported in the source tarball. All the needed
|
|
||||||
# formats (PDF, PNG, etc.) should be included.
|
|
||||||
|
|
||||||
prog=`basename "$0"`
|
|
||||||
srcdir=`pwd`
|
|
||||||
|
|
||||||
scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
|
|
||||||
templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
|
|
||||||
|
|
||||||
: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
|
|
||||||
: ${MAKEINFO="makeinfo"}
|
|
||||||
: ${TEXI2DVI="texi2dvi -t @finalout"}
|
|
||||||
: ${DOCBOOK2HTML="docbook2html"}
|
|
||||||
: ${DOCBOOK2PDF="docbook2pdf"}
|
|
||||||
: ${DOCBOOK2TXT="docbook2txt"}
|
|
||||||
: ${GENDOCS_TEMPLATE_DIR="."}
|
|
||||||
: ${PERL='perl'}
|
|
||||||
: ${TEXI2HTML="texi2html"}
|
|
||||||
unset CDPATH
|
|
||||||
unset use_texi2html
|
|
||||||
|
|
||||||
version="gendocs.sh $scriptversion
|
|
||||||
|
|
||||||
Copyright 2013 Free Software Foundation, Inc.
|
|
||||||
There is NO warranty. You may redistribute this software
|
|
||||||
under the terms of the GNU General Public License.
|
|
||||||
For more information about these matters, see the files named COPYING."
|
|
||||||
|
|
||||||
usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
|
|
||||||
|
|
||||||
Generate output in various formats from PACKAGE.texinfo (or .texi or
|
|
||||||
.txi) source. See the GNU Maintainers document for a more extensive
|
|
||||||
discussion:
|
|
||||||
http://www.gnu.org/prep/maintain_toc.html
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--email ADR use ADR as contact in generated web pages; always give this.
|
|
||||||
|
|
||||||
-s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
|
|
||||||
-o OUTDIR write files into OUTDIR, instead of manual/.
|
|
||||||
-I DIR append DIR to the Texinfo search path.
|
|
||||||
--common ARG pass ARG in all invocations.
|
|
||||||
--html ARG pass ARG to makeinfo or texi2html for HTML targets.
|
|
||||||
--info ARG pass ARG to makeinfo for Info, instead of --no-split.
|
|
||||||
--no-ascii skip generating the plain text output.
|
|
||||||
--source ARG include ARG in tar archive of sources.
|
|
||||||
--split HOW make split HTML by node, section, chapter; default node.
|
|
||||||
|
|
||||||
--texi2html use texi2html to make HTML target, with all split versions.
|
|
||||||
--docbook convert through DocBook too (xml, txt, html, pdf).
|
|
||||||
|
|
||||||
--help display this help and exit successfully.
|
|
||||||
--version display version information and exit successfully.
|
|
||||||
|
|
||||||
Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
|
|
||||||
|
|
||||||
Typical sequence:
|
|
||||||
cd PACKAGESOURCE/doc
|
|
||||||
wget \"$scripturl\"
|
|
||||||
wget \"$templateurl\"
|
|
||||||
$prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
|
|
||||||
|
|
||||||
Output will be in a new subdirectory \"manual\" (by default;
|
|
||||||
use -o OUTDIR to override). Move all the new files into your web CVS
|
|
||||||
tree, as explained in the Web Pages node of maintain.texi.
|
|
||||||
|
|
||||||
Please use the --email ADDRESS option so your own bug-reporting
|
|
||||||
address will be used in the generated HTML pages.
|
|
||||||
|
|
||||||
MANUAL-TITLE is included as part of the HTML <title> of the overall
|
|
||||||
manual/index.html file. It should include the name of the package being
|
|
||||||
documented. manual/index.html is created by substitution from the file
|
|
||||||
$GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the
|
|
||||||
generic template for your own purposes.)
|
|
||||||
|
|
||||||
If you have several manuals, you'll need to run this script several
|
|
||||||
times with different MANUAL values, specifying a different output
|
|
||||||
directory with -o each time. Then write (by hand) an overall index.html
|
|
||||||
with links to them all.
|
|
||||||
|
|
||||||
If a manual's Texinfo sources are spread across several directories,
|
|
||||||
first copy or symlink all Texinfo sources into a single directory.
|
|
||||||
(Part of the script's work is to make a tar.gz of the sources.)
|
|
||||||
|
|
||||||
As implied above, by default monolithic Info files are generated.
|
|
||||||
If you want split Info, or other Info options, use --info to override.
|
|
||||||
|
|
||||||
You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML,
|
|
||||||
and PERL to control the programs that get executed, and
|
|
||||||
GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
|
|
||||||
looked for. With --docbook, the environment variables DOCBOOK2HTML,
|
|
||||||
DOCBOOK2PDF, and DOCBOOK2TXT are also consulted.
|
|
||||||
|
|
||||||
By default, makeinfo and texi2dvi are run in the default (English)
|
|
||||||
locale, since that's the language of most Texinfo manuals. If you
|
|
||||||
happen to have a non-English manual and non-English web site, see the
|
|
||||||
SETLANG setting in the source.
|
|
||||||
|
|
||||||
Email bug reports or enhancement requests to bug-texinfo@gnu.org.
|
|
||||||
"
|
|
||||||
|
|
||||||
MANUAL_TITLE=
|
|
||||||
PACKAGE=
|
|
||||||
EMAIL=webmasters@gnu.org # please override with --email
|
|
||||||
commonarg= # passed to all makeinfo/texi2html invcations.
|
|
||||||
dirargs= # passed to all tools (-I dir).
|
|
||||||
dirs= # -I's directories.
|
|
||||||
htmlarg=
|
|
||||||
infoarg=--no-split
|
|
||||||
generate_ascii=true
|
|
||||||
outdir=manual
|
|
||||||
source_extra=
|
|
||||||
split=node
|
|
||||||
srcfile=
|
|
||||||
|
|
||||||
while test $# -gt 0; do
|
|
||||||
case $1 in
|
|
||||||
-s) shift; srcfile=$1;;
|
|
||||||
-o) shift; outdir=$1;;
|
|
||||||
-I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";;
|
|
||||||
--common) shift; commonarg=$1;;
|
|
||||||
--docbook) docbook=yes;;
|
|
||||||
--email) shift; EMAIL=$1;;
|
|
||||||
--html) shift; htmlarg=$1;;
|
|
||||||
--info) shift; infoarg=$1;;
|
|
||||||
--no-ascii) generate_ascii=false;;
|
|
||||||
--source) shift; source_extra=$1;;
|
|
||||||
--split) shift; split=$1;;
|
|
||||||
--texi2html) use_texi2html=1;;
|
|
||||||
|
|
||||||
--help) echo "$usage"; exit 0;;
|
|
||||||
--version) echo "$version"; exit 0;;
|
|
||||||
-*)
|
|
||||||
echo "$0: Unknown option \`$1'." >&2
|
|
||||||
echo "$0: Try \`--help' for more information." >&2
|
|
||||||
exit 1;;
|
|
||||||
*)
|
|
||||||
if test -z "$PACKAGE"; then
|
|
||||||
PACKAGE=$1
|
|
||||||
elif test -z "$MANUAL_TITLE"; then
|
|
||||||
MANUAL_TITLE=$1
|
|
||||||
else
|
|
||||||
echo "$0: extra non-option argument \`$1'." >&2
|
|
||||||
exit 1
|
|
||||||
fi;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# makeinfo uses the dirargs, but texi2dvi doesn't.
|
|
||||||
commonarg=" $dirargs $commonarg"
|
|
||||||
|
|
||||||
# For most of the following, the base name is just $PACKAGE
|
|
||||||
base=$PACKAGE
|
|
||||||
|
|
||||||
if test -n "$srcfile"; then
|
|
||||||
# but here, we use the basename of $srcfile
|
|
||||||
base=`basename "$srcfile"`
|
|
||||||
case $base in
|
|
||||||
*.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;;
|
|
||||||
esac
|
|
||||||
PACKAGE=$base
|
|
||||||
elif test -s "$srcdir/$PACKAGE.texinfo"; then
|
|
||||||
srcfile=$srcdir/$PACKAGE.texinfo
|
|
||||||
elif test -s "$srcdir/$PACKAGE.texi"; then
|
|
||||||
srcfile=$srcdir/$PACKAGE.texi
|
|
||||||
elif test -s "$srcdir/$PACKAGE.txi"; then
|
|
||||||
srcfile=$srcdir/$PACKAGE.txi
|
|
||||||
else
|
|
||||||
echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
|
|
||||||
echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
|
|
||||||
echo "$0: it is available from $templateurl." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Function to return size of $1 in something resembling kilobytes.
|
|
||||||
calcsize()
|
|
||||||
{
|
|
||||||
size=`ls -ksl $1 | awk '{print $1}'`
|
|
||||||
echo $size
|
|
||||||
}
|
|
||||||
|
|
||||||
# copy_images OUTDIR HTML-FILE...
|
|
||||||
# -------------------------------
|
|
||||||
# Copy all the images needed by the HTML-FILEs into OUTDIR. Look
|
|
||||||
# for them in the -I directories.
|
|
||||||
copy_images()
|
|
||||||
{
|
|
||||||
local odir
|
|
||||||
odir=$1
|
|
||||||
shift
|
|
||||||
$PERL -n -e "
|
|
||||||
BEGIN {
|
|
||||||
\$me = '$prog';
|
|
||||||
\$odir = '$odir';
|
|
||||||
@dirs = qw($dirs);
|
|
||||||
}
|
|
||||||
" -e '
|
|
||||||
/<img src="(.*?)"/g && ++$need{$1};
|
|
||||||
|
|
||||||
END {
|
|
||||||
#print "$me: @{[keys %need]}\n"; # for debugging, show images found.
|
|
||||||
FILE: for my $f (keys %need) {
|
|
||||||
for my $d (@dirs) {
|
|
||||||
if (-f "$d/$f") {
|
|
||||||
use File::Basename;
|
|
||||||
my $dest = dirname ("$odir/$f");
|
|
||||||
#
|
|
||||||
use File::Path;
|
|
||||||
-d $dest || mkpath ($dest)
|
|
||||||
|| die "$me: cannot mkdir $dest: $!\n";
|
|
||||||
#
|
|
||||||
use File::Copy;
|
|
||||||
copy ("$d/$f", $dest)
|
|
||||||
|| die "$me: cannot copy $d/$f to $dest: $!\n";
|
|
||||||
next FILE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
die "$me: $ARGV: cannot find image $f\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
' -- "$@" || exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
case $outdir in
|
|
||||||
/*) abs_outdir=$outdir;;
|
|
||||||
*) abs_outdir=$srcdir/$outdir;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo "Making output for $srcfile"
|
|
||||||
echo " in `pwd`"
|
|
||||||
mkdir -p "$outdir/"
|
|
||||||
|
|
||||||
cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
|
|
||||||
echo "Generating info... ($cmd)"
|
|
||||||
eval "$cmd"
|
|
||||||
tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
|
|
||||||
ls -l "$outdir/$PACKAGE.info.tar.gz"
|
|
||||||
info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
|
|
||||||
# do not mv the info files, there's no point in having them available
|
|
||||||
# separately on the web.
|
|
||||||
|
|
||||||
cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\""
|
|
||||||
printf "\nGenerating dvi... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
# compress/finish dvi:
|
|
||||||
gzip -f -9 $PACKAGE.dvi
|
|
||||||
dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
|
|
||||||
mv $PACKAGE.dvi.gz "$outdir/"
|
|
||||||
ls -l "$outdir/$PACKAGE.dvi.gz"
|
|
||||||
|
|
||||||
cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\""
|
|
||||||
printf "\nGenerating pdf... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
pdf_size=`calcsize $PACKAGE.pdf`
|
|
||||||
mv $PACKAGE.pdf "$outdir/"
|
|
||||||
ls -l "$outdir/$PACKAGE.pdf"
|
|
||||||
|
|
||||||
if $generate_ascii; then
|
|
||||||
opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
|
|
||||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
|
|
||||||
printf "\nGenerating ascii... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
ascii_size=`calcsize $PACKAGE.txt`
|
|
||||||
gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
|
|
||||||
ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
|
|
||||||
mv $PACKAGE.txt "$outdir/"
|
|
||||||
ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
|
|
||||||
fi
|
|
||||||
|
|
||||||
html_split()
|
|
||||||
{
|
|
||||||
opt="--split=$1 --node-files $commonarg $htmlarg"
|
|
||||||
cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
|
|
||||||
printf "\nGenerating html by $1... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
split_html_dir=$PACKAGE.html
|
|
||||||
(
|
|
||||||
cd ${split_html_dir} || exit 1
|
|
||||||
ln -sf ${PACKAGE}.html index.html
|
|
||||||
tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html
|
|
||||||
)
|
|
||||||
eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"`
|
|
||||||
rm -f "$outdir"/html_$1/*.html
|
|
||||||
mkdir -p "$outdir/html_$1/"
|
|
||||||
mv ${split_html_dir}/*.html "$outdir/html_$1/"
|
|
||||||
rmdir ${split_html_dir}
|
|
||||||
}
|
|
||||||
|
|
||||||
if test -z "$use_texi2html"; then
|
|
||||||
opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
|
|
||||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
|
|
||||||
printf "\nGenerating monolithic html... ($cmd)\n"
|
|
||||||
rm -rf $PACKAGE.html # in case a directory is left over
|
|
||||||
eval "$cmd"
|
|
||||||
html_mono_size=`calcsize $PACKAGE.html`
|
|
||||||
gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
|
|
||||||
html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
|
|
||||||
copy_images "$outdir/" $PACKAGE.html
|
|
||||||
mv $PACKAGE.html "$outdir/"
|
|
||||||
ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz"
|
|
||||||
|
|
||||||
opt="--html -o $PACKAGE.html --split=$split $commonarg $htmlarg"
|
|
||||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
|
|
||||||
printf "\nGenerating html by $split... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
split_html_dir=$PACKAGE.html
|
|
||||||
copy_images $split_html_dir/ $split_html_dir/*.html
|
|
||||||
(
|
|
||||||
cd $split_html_dir || exit 1
|
|
||||||
tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- *
|
|
||||||
)
|
|
||||||
eval \
|
|
||||||
html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"`
|
|
||||||
rm -rf "$outdir/html_$split/"
|
|
||||||
mv $split_html_dir "$outdir/html_$split/"
|
|
||||||
du -s "$outdir/html_$split/"
|
|
||||||
ls -l "$outdir/$PACKAGE.html_$split.tar.gz"
|
|
||||||
|
|
||||||
else # use texi2html:
|
|
||||||
opt="--output $PACKAGE.html $commonarg $htmlarg"
|
|
||||||
cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
|
|
||||||
printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
|
|
||||||
rm -rf $PACKAGE.html # in case a directory is left over
|
|
||||||
eval "$cmd"
|
|
||||||
html_mono_size=`calcsize $PACKAGE.html`
|
|
||||||
gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
|
|
||||||
html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
|
|
||||||
mv $PACKAGE.html "$outdir/"
|
|
||||||
|
|
||||||
html_split node
|
|
||||||
html_split chapter
|
|
||||||
html_split section
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "\nMaking .tar.gz for sources...\n"
|
|
||||||
d=`dirname $srcfile`
|
|
||||||
(
|
|
||||||
cd "$d"
|
|
||||||
srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true
|
|
||||||
tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
|
|
||||||
ls -l "$abs_outdir/$PACKAGE.texi.tar.gz"
|
|
||||||
)
|
|
||||||
texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
|
|
||||||
|
|
||||||
if test -n "$docbook"; then
|
|
||||||
opt="-o - --docbook $commonarg"
|
|
||||||
cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
|
|
||||||
printf "\nGenerating docbook XML... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
docbook_xml_size=`calcsize $PACKAGE-db.xml`
|
|
||||||
gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
|
|
||||||
docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"`
|
|
||||||
mv $PACKAGE-db.xml "$outdir/"
|
|
||||||
|
|
||||||
split_html_db_dir=html_node_db
|
|
||||||
opt="$commonarg -o $split_html_db_dir"
|
|
||||||
cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
|
|
||||||
printf "\nGenerating docbook HTML... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
(
|
|
||||||
cd ${split_html_db_dir} || exit 1
|
|
||||||
tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html
|
|
||||||
)
|
|
||||||
html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"`
|
|
||||||
rm -f "$outdir"/html_node_db/*.html
|
|
||||||
mkdir -p "$outdir/html_node_db"
|
|
||||||
mv ${split_html_db_dir}/*.html "$outdir/html_node_db/"
|
|
||||||
rmdir ${split_html_db_dir}
|
|
||||||
|
|
||||||
cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
|
|
||||||
printf "\nGenerating docbook ASCII... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
docbook_ascii_size=`calcsize $PACKAGE-db.txt`
|
|
||||||
mv $PACKAGE-db.txt "$outdir/"
|
|
||||||
|
|
||||||
cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
|
|
||||||
printf "\nGenerating docbook PDF... ($cmd)\n"
|
|
||||||
eval "$cmd"
|
|
||||||
docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
|
|
||||||
mv $PACKAGE-db.pdf "$outdir/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "\nMaking index file...\n"
|
|
||||||
if test -z "$use_texi2html"; then
|
|
||||||
CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\
|
|
||||||
/%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d"
|
|
||||||
else
|
|
||||||
# should take account of --split here.
|
|
||||||
CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d"
|
|
||||||
fi
|
|
||||||
|
|
||||||
curdate=`$SETLANG date '+%B %d, %Y'`
|
|
||||||
sed \
|
|
||||||
-e "s!%%TITLE%%!$MANUAL_TITLE!g" \
|
|
||||||
-e "s!%%EMAIL%%!$EMAIL!g" \
|
|
||||||
-e "s!%%PACKAGE%%!$PACKAGE!g" \
|
|
||||||
-e "s!%%DATE%%!$curdate!g" \
|
|
||||||
-e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
|
|
||||||
-e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
|
|
||||||
-e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
|
|
||||||
-e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
|
|
||||||
-e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
|
|
||||||
-e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
|
|
||||||
-e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
|
|
||||||
-e "s!%%PDF_SIZE%%!$pdf_size!g" \
|
|
||||||
-e "s!%%ASCII_SIZE%%!$ascii_size!g" \
|
|
||||||
-e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
|
|
||||||
-e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
|
|
||||||
-e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
|
|
||||||
-e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
|
|
||||||
-e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
|
|
||||||
-e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
|
|
||||||
-e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
|
|
||||||
-e "s,%%SCRIPTURL%%,$scripturl,g" \
|
|
||||||
-e "s!%%SCRIPTNAME%%!$prog!g" \
|
|
||||||
-e "$CONDS" \
|
|
||||||
$GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html"
|
|
||||||
|
|
||||||
echo "Done, see $outdir/ subdirectory for new files."
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-end: "$"
|
|
||||||
# End:
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
<!--#include virtual="/server/header.html" -->
|
|
||||||
<title>%%TITLE%% - GNU Project - Free Software Foundation (FSF)</title>
|
|
||||||
<!--#include virtual="/server/banner.html" -->
|
|
||||||
<h2>%%TITLE%%</h2>
|
|
||||||
|
|
||||||
<address>Free Software Foundation</address>
|
|
||||||
<address>last updated %%DATE%%</address>
|
|
||||||
|
|
||||||
<p>This manual (%%PACKAGE%%) is available in the following formats:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="manual.html">Well formatted & color HTML5 version</a>
|
|
||||||
- entirely on one web page.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.html">HTML
|
|
||||||
(%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li>
|
|
||||||
<li><a href="html_node/index.html">HTML</a> - with one web page per
|
|
||||||
node.</li>
|
|
||||||
%%IF HTML_SECTION%%
|
|
||||||
<li><a href="html_section/index.html">HTML</a> - with one web page per
|
|
||||||
section.</li>
|
|
||||||
%%ENDIF HTML_SECTION%%
|
|
||||||
%%IF HTML_CHAPTER%%
|
|
||||||
<li><a href="html_chapter/index.html">HTML</a> - with one web page per
|
|
||||||
chapter.</li>
|
|
||||||
%%ENDIF HTML_CHAPTER%%
|
|
||||||
<li><a href="%%PACKAGE%%.html.gz">HTML compressed
|
|
||||||
(%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on
|
|
||||||
one web page.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed
|
|
||||||
(%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> -
|
|
||||||
with one web page per node.</li>
|
|
||||||
%%IF HTML_SECTION%%
|
|
||||||
<li><a href="%%PACKAGE%%.html_section.tar.gz">HTML compressed
|
|
||||||
(%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> -
|
|
||||||
with one web page per section.</li>
|
|
||||||
%%ENDIF HTML_SECTION%%
|
|
||||||
%%IF HTML_CHAPTER%%
|
|
||||||
<li><a href="%%PACKAGE%%.html_chapter.tar.gz">HTML compressed
|
|
||||||
(%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> -
|
|
||||||
with one web page per chapter.</li>
|
|
||||||
%%ENDIF HTML_CHAPTER%%
|
|
||||||
<li><a href="%%PACKAGE%%.info.tar.gz">Info document
|
|
||||||
(%%INFO_TGZ_SIZE%%K bytes gzipped tar file)</a>.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.txt">ASCII text
|
|
||||||
(%%ASCII_SIZE%%K bytes)</a>.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed
|
|
||||||
(%%ASCII_GZ_SIZE%%K bytes gzipped)</a>.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file
|
|
||||||
(%%DVI_GZ_SIZE%%K bytes gzipped)</a>.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.pdf">PDF file
|
|
||||||
(%%PDF_SIZE%%K bytes)</a>.</li>
|
|
||||||
<li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source
|
|
||||||
(%%TEXI_TGZ_SIZE%%K bytes gzipped tar file).</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>You can <a href="http://shop.fsf.org/">buy printed copies of
|
|
||||||
some manuals</a> (among other items) from the Free Software Foundation;
|
|
||||||
this helps support FSF activities.</p>
|
|
||||||
|
|
||||||
<p>(This page generated by the <a href="%%SCRIPTURL%%">%%SCRIPTNAME%%
|
|
||||||
script</a>.)</p>
|
|
||||||
|
|
||||||
<!-- If needed, change the copyright block at the bottom. In general,
|
|
||||||
all pages on the GNU web server should have the section about
|
|
||||||
verbatim copying. Please do NOT remove this without talking
|
|
||||||
with the webmasters first.
|
|
||||||
Please make sure the copyright date is consistent with the document
|
|
||||||
and that it is like this: "2001, 2002", not this: "2001-2002". -->
|
|
||||||
</div><!-- for id="content", starts in the include above -->
|
|
||||||
<!--#include virtual="/server/footer.html" -->
|
|
||||||
<div id="footer">
|
|
||||||
|
|
||||||
<p>Please send general FSF & GNU inquiries to
|
|
||||||
<a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>.
|
|
||||||
There are also <a href="/contact/">other ways to contact</a>
|
|
||||||
the FSF.<br />
|
|
||||||
Please send broken links and other corrections or suggestions to
|
|
||||||
<a href="mailto:%%EMAIL%%"><%%EMAIL%%></a>.</p>
|
|
||||||
|
|
||||||
<p>Copyright © 2013 Free Software Foundation, Inc.</p>
|
|
||||||
|
|
||||||
<p>Verbatim copying and distribution of this entire article are
|
|
||||||
permitted worldwide, without royalty, in any medium, provided this
|
|
||||||
notice, and the copyright notice, are preserved.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,172 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Print a version string.
|
|
||||||
scriptversion=2011-02-19.19; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
|
|
||||||
# It may be run two ways:
|
|
||||||
# - from a git repository in which the "git describe" command below
|
|
||||||
# produces useful output (thus requiring at least one signed tag)
|
|
||||||
# - from a non-git-repo directory containing a .tarball-version file, which
|
|
||||||
# presumes this script is invoked like "./git-version-gen .tarball-version".
|
|
||||||
|
|
||||||
# In order to use intra-version strings in your project, you will need two
|
|
||||||
# separate generated version string files:
|
|
||||||
#
|
|
||||||
# .tarball-version - present only in a distribution tarball, and not in
|
|
||||||
# a checked-out repository. Created with contents that were learned at
|
|
||||||
# the last time autoconf was run, and used by git-version-gen. Must not
|
|
||||||
# be present in either $(srcdir) or $(builddir) for git-version-gen to
|
|
||||||
# give accurate answers during normal development with a checked out tree,
|
|
||||||
# but must be present in a tarball when there is no version control system.
|
|
||||||
# Therefore, it cannot be used in any dependencies. GNUmakefile has
|
|
||||||
# hooks to force a reconfigure at distribution time to get the value
|
|
||||||
# correct, without penalizing normal development with extra reconfigures.
|
|
||||||
#
|
|
||||||
# .version - present in a checked-out repository and in a distribution
|
|
||||||
# tarball. Usable in dependencies, particularly for files that don't
|
|
||||||
# want to depend on config.h but do want to track version changes.
|
|
||||||
# Delete this file prior to any autoconf run where you want to rebuild
|
|
||||||
# files to pick up a version string change; and leave it stale to
|
|
||||||
# minimize rebuild time after unrelated changes to configure sources.
|
|
||||||
#
|
|
||||||
# It is probably wise to add these two files to .gitignore, so that you
|
|
||||||
# don't accidentally commit either generated file.
|
|
||||||
#
|
|
||||||
# Use the following line in your configure.ac, so that $(VERSION) will
|
|
||||||
# automatically be up-to-date each time configure is run (and note that
|
|
||||||
# since configure.ac no longer includes a version string, Makefile rules
|
|
||||||
# should not depend on configure.ac for version updates).
|
|
||||||
#
|
|
||||||
# AC_INIT([GNU project],
|
|
||||||
# m4_esyscmd([build-aux/git-version-gen .tarball-version]),
|
|
||||||
# [bug-project@example])
|
|
||||||
#
|
|
||||||
# Then use the following lines in your Makefile.am, so that .version
|
|
||||||
# will be present for dependencies, and so that .tarball-version will
|
|
||||||
# exist in distribution tarballs.
|
|
||||||
#
|
|
||||||
# BUILT_SOURCES = $(top_srcdir)/.version
|
|
||||||
# $(top_srcdir)/.version:
|
|
||||||
# echo $(VERSION) > $@-t && mv $@-t $@
|
|
||||||
# dist-hook:
|
|
||||||
# echo $(VERSION) > $(distdir)/.tarball-version
|
|
||||||
|
|
||||||
case $# in
|
|
||||||
1|2) ;;
|
|
||||||
*) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version" \
|
|
||||||
'[TAG-NORMALIZATION-SED-SCRIPT]'
|
|
||||||
exit 1;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
tarball_version_file=$1
|
|
||||||
tag_sed_script="${2:-s/x/x/}"
|
|
||||||
nl='
|
|
||||||
'
|
|
||||||
|
|
||||||
# Avoid meddling by environment variable of the same name.
|
|
||||||
v=
|
|
||||||
v_from_git=
|
|
||||||
|
|
||||||
# First see if there is a tarball-only version file.
|
|
||||||
# then try "git describe", then default.
|
|
||||||
if test -f $tarball_version_file
|
|
||||||
then
|
|
||||||
v=`cat $tarball_version_file` || v=
|
|
||||||
case $v in
|
|
||||||
*$nl*) v= ;; # reject multi-line output
|
|
||||||
[0-9]*) ;;
|
|
||||||
*) v= ;;
|
|
||||||
esac
|
|
||||||
test -z "$v" \
|
|
||||||
&& echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$v"
|
|
||||||
then
|
|
||||||
: # use $v
|
|
||||||
# Otherwise, if there is at least one git commit involving the working
|
|
||||||
# directory, and "git describe" output looks sensible, use that to
|
|
||||||
# derive a version string.
|
|
||||||
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
|
|
||||||
&& v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
|
|
||||||
|| git describe --abbrev=4 HEAD 2>/dev/null` \
|
|
||||||
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
|
|
||||||
&& case $v in
|
|
||||||
v[0-9]*) ;;
|
|
||||||
*) (exit 1) ;;
|
|
||||||
esac
|
|
||||||
then
|
|
||||||
# Is this a new git that lists number of commits since the last
|
|
||||||
# tag or the previous older version that did not?
|
|
||||||
# Newer: v6.10-77-g0f8faeb
|
|
||||||
# Older: v6.10-g0f8faeb
|
|
||||||
case $v in
|
|
||||||
*-*-*) : git describe is okay three part flavor ;;
|
|
||||||
*-*)
|
|
||||||
: git describe is older two part flavor
|
|
||||||
# Recreate the number of commits and rewrite such that the
|
|
||||||
# result is the same as if we were using the newer version
|
|
||||||
# of git describe.
|
|
||||||
vtag=`echo "$v" | sed 's/-.*//'`
|
|
||||||
commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \
|
|
||||||
|| { commit_list=failed;
|
|
||||||
echo "$0: WARNING: git rev-list failed" 1>&2; }
|
|
||||||
numcommits=`echo "$commit_list" | wc -l`
|
|
||||||
v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
|
|
||||||
test "$commit_list" = failed && v=UNKNOWN
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Change the first '-' to a '.', so version-comparing tools work properly.
|
|
||||||
# Remove the "g" in git describe's output string, to save a byte.
|
|
||||||
v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
|
|
||||||
v_from_git=1
|
|
||||||
else
|
|
||||||
v=UNKNOWN
|
|
||||||
fi
|
|
||||||
|
|
||||||
v=`echo "$v" |sed 's/^v//'`
|
|
||||||
|
|
||||||
# Test whether to append the "-dirty" suffix only if the version
|
|
||||||
# string we're using came from git. I.e., skip the test if it's "UNKNOWN"
|
|
||||||
# or if it came from .tarball-version.
|
|
||||||
if test -n "$v_from_git"; then
|
|
||||||
# Don't declare a version "dirty" merely because a time stamp has changed.
|
|
||||||
git update-index --refresh > /dev/null 2>&1
|
|
||||||
|
|
||||||
dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
|
|
||||||
case "$dirty" in
|
|
||||||
'') ;;
|
|
||||||
*) # Append the suffix only if there isn't one already.
|
|
||||||
case $v in
|
|
||||||
*-dirty) ;;
|
|
||||||
*) v="$v-dirty" ;;
|
|
||||||
esac ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
|
|
||||||
echo "$v" | tr -d "$nl"
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@ -1,191 +0,0 @@
|
|||||||
eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
|
|
||||||
& eval 'exec perl -wS "$0" $argv:q'
|
|
||||||
if 0;
|
|
||||||
# Convert git log output to ChangeLog format.
|
|
||||||
|
|
||||||
my $VERSION = '2009-10-30 13:46'; # UTC
|
|
||||||
# The definition above must lie within the first 8 lines in order
|
|
||||||
# for the Emacs time-stamp write hook (at end) to update it.
|
|
||||||
# If you change this file with Emacs, please let the write hook
|
|
||||||
# do its job. Otherwise, update this string manually.
|
|
||||||
|
|
||||||
# Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# Written by Jim Meyering
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
use Getopt::Long;
|
|
||||||
use POSIX qw(strftime);
|
|
||||||
|
|
||||||
(my $ME = $0) =~ s|.*/||;
|
|
||||||
|
|
||||||
# use File::Coda; # http://meyering.net/code/Coda/
|
|
||||||
END {
|
|
||||||
defined fileno STDOUT or return;
|
|
||||||
close STDOUT and return;
|
|
||||||
warn "$ME: failed to close standard output: $!\n";
|
|
||||||
$? ||= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub usage ($)
|
|
||||||
{
|
|
||||||
my ($exit_code) = @_;
|
|
||||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
|
||||||
if ($exit_code != 0)
|
|
||||||
{
|
|
||||||
print $STREAM "Try `$ME --help' for more information.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $STREAM <<EOF;
|
|
||||||
Usage: $ME [OPTIONS] [ARGS]
|
|
||||||
|
|
||||||
Convert git log output to ChangeLog format. If present, any ARGS
|
|
||||||
are passed to "git log". To avoid ARGS being parsed as options to
|
|
||||||
$ME, they may be preceded by '--'.
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
|
|
||||||
--since=DATE convert only the logs since DATE;
|
|
||||||
the default is to convert all log entries.
|
|
||||||
--format=FMT set format string for commit subject and body;
|
|
||||||
see 'man git-log' for the list of format metacharacters;
|
|
||||||
the default is '%s%n%b%n'
|
|
||||||
|
|
||||||
--help display this help and exit
|
|
||||||
--version output version information and exit
|
|
||||||
|
|
||||||
EXAMPLE:
|
|
||||||
|
|
||||||
$ME --since=2008-01-01 > ChangeLog
|
|
||||||
$ME -- -n 5 foo > last-5-commits-to-branch-foo
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
exit $exit_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
# If the string $S is a well-behaved file name, simply return it.
|
|
||||||
# If it contains white space, quotes, etc., quote it, and return the new string.
|
|
||||||
sub shell_quote($)
|
|
||||||
{
|
|
||||||
my ($s) = @_;
|
|
||||||
if ($s =~ m![^\w+/.,-]!)
|
|
||||||
{
|
|
||||||
# Convert each single quote to '\''
|
|
||||||
$s =~ s/\'/\'\\\'\'/g;
|
|
||||||
# Then single quote the string.
|
|
||||||
$s = "'$s'";
|
|
||||||
}
|
|
||||||
return $s;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub quoted_cmd(@)
|
|
||||||
{
|
|
||||||
return join (' ', map {shell_quote $_} @_);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
my $since_date = '1970-01-01 UTC';
|
|
||||||
my $format_string = '%s%n%b%n';
|
|
||||||
GetOptions
|
|
||||||
(
|
|
||||||
help => sub { usage 0 },
|
|
||||||
version => sub { print "$ME version $VERSION\n"; exit },
|
|
||||||
'since=s' => \$since_date,
|
|
||||||
'format=s' => \$format_string,
|
|
||||||
) or usage 1;
|
|
||||||
|
|
||||||
my @cmd = (qw (git log --log-size), "--since=$since_date",
|
|
||||||
'--pretty=format:%ct %an <%ae>%n%n'.$format_string, @ARGV);
|
|
||||||
open PIPE, '-|', @cmd
|
|
||||||
or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n"
|
|
||||||
. "(Is your Git too old? Version 1.5.1 or later is required.)\n");
|
|
||||||
|
|
||||||
my $prev_date_line = '';
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
defined (my $in = <PIPE>)
|
|
||||||
or last;
|
|
||||||
$in =~ /^log size (\d+)$/
|
|
||||||
or die "$ME:$.: Invalid line (expected log size):\n$in";
|
|
||||||
my $log_nbytes = $1;
|
|
||||||
|
|
||||||
my $log;
|
|
||||||
my $n_read = read PIPE, $log, $log_nbytes;
|
|
||||||
$n_read == $log_nbytes
|
|
||||||
or die "$ME:$.: unexpected EOF\n";
|
|
||||||
|
|
||||||
my @line = split "\n", $log;
|
|
||||||
my $author_line = shift @line;
|
|
||||||
defined $author_line
|
|
||||||
or die "$ME:$.: unexpected EOF\n";
|
|
||||||
$author_line =~ /^(\d+) (.*>)$/
|
|
||||||
or die "$ME:$.: Invalid line "
|
|
||||||
. "(expected date/author/email):\n$author_line\n";
|
|
||||||
|
|
||||||
my $date_line = sprintf "%s $2\n", strftime ("%F", localtime ($1));
|
|
||||||
# If this line would be the same as the previous date/name/email
|
|
||||||
# line, then arrange not to print it.
|
|
||||||
if ($date_line ne $prev_date_line)
|
|
||||||
{
|
|
||||||
$prev_date_line eq ''
|
|
||||||
or print "\n";
|
|
||||||
print $date_line;
|
|
||||||
}
|
|
||||||
$prev_date_line = $date_line;
|
|
||||||
|
|
||||||
# Omit "Signed-off-by..." lines.
|
|
||||||
@line = grep !/^Signed-off-by: .*>$/, @line;
|
|
||||||
|
|
||||||
# If there were any lines
|
|
||||||
if (@line == 0)
|
|
||||||
{
|
|
||||||
warn "$ME: warning: empty commit message:\n $date_line\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
# Remove leading and trailing blank lines.
|
|
||||||
while ($line[0] =~ /^\s*$/) { shift @line; }
|
|
||||||
while ($line[$#line] =~ /^\s*$/) { pop @line; }
|
|
||||||
|
|
||||||
# Prefix each non-empty line with a TAB.
|
|
||||||
@line = map { length $_ ? "\t$_" : '' } @line;
|
|
||||||
|
|
||||||
print "\n", join ("\n", @line), "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
defined ($in = <PIPE>)
|
|
||||||
or last;
|
|
||||||
$in ne "\n"
|
|
||||||
and die "$ME:$.: unexpected line:\n$in";
|
|
||||||
}
|
|
||||||
|
|
||||||
close PIPE
|
|
||||||
or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
|
|
||||||
# FIXME-someday: include $PROCESS_STATUS in the diagnostic
|
|
||||||
}
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# mode: perl
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "my $VERSION = '"
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "'; # UTC"
|
|
||||||
# End:
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Run this after each non-alpha release, to update the web documentation at
|
|
||||||
# http://www.gnu.org/software/$pkg/manual/
|
|
||||||
# This script must be run from the top-level directory,
|
|
||||||
# assumes you're using git for revision control,
|
|
||||||
# and requires a .prev-version file as well as a Makefile,
|
|
||||||
# from which it extracts the version number and package name, respectively.
|
|
||||||
# Also, it assumes all documentation is in the doc/ sub-directory.
|
|
||||||
|
|
||||||
VERSION=2009-07-21.16; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# Requirements: everything required to bootstrap your package,
|
|
||||||
# plus these: git, cvs, cvsu, rsync, mktemp
|
|
||||||
|
|
||||||
ME=`basename "$0"`
|
|
||||||
warn() { printf '%s: %s\n' "$ME" "$*" >&2; }
|
|
||||||
die() { warn "$*"; exit 1; }
|
|
||||||
|
|
||||||
help_version()
|
|
||||||
{
|
|
||||||
case $1 in
|
|
||||||
--help) cat <<EOF
|
|
||||||
Usage: $ME
|
|
||||||
|
|
||||||
Run this script (no options or arguments) after each non-alpha release,
|
|
||||||
to update the web documentation at http://www.gnu.org/software/\$pkg/manual/
|
|
||||||
Run it from your project's the top-level directory.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--help print this help, then exit
|
|
||||||
--version print version number, then exit
|
|
||||||
|
|
||||||
Report bugs and patches to <bug-gnulib@gnu.org>.
|
|
||||||
EOF
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
--version)
|
|
||||||
year=`echo "$VERSION" | sed 's/[^0-9].*//'`
|
|
||||||
cat <<EOF
|
|
||||||
$ME $VERSION
|
|
||||||
Copyright (C) $year Free Software Foundation, Inc,
|
|
||||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
|
||||||
This is free software: you are free to change and redistribute it.
|
|
||||||
There is NO WARRANTY, to the extent permitted by law.
|
|
||||||
EOF
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
*) die "unrecognized option: $1";;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
case $# in
|
|
||||||
0) ;;
|
|
||||||
1) help_version $1 ;;
|
|
||||||
*) die "$ME: too many options" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
prev=.prev-version
|
|
||||||
version=$(cat $prev) || die "$ME: no $prev file?"
|
|
||||||
pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' Makefile) || die "$ME: no Makefile?"
|
|
||||||
tmp_branch=web-doc-$version-$$
|
|
||||||
|
|
||||||
cleanup()
|
|
||||||
{
|
|
||||||
__st=$?;
|
|
||||||
rm -rf "$tmp"
|
|
||||||
git checkout master
|
|
||||||
git branch -d $tmp_branch
|
|
||||||
exit $__st
|
|
||||||
}
|
|
||||||
trap cleanup 0
|
|
||||||
trap 'exit $?' 1 2 13 15
|
|
||||||
|
|
||||||
# We must build using sources for which --version reports the
|
|
||||||
# just-released version number, not some string like 7.6.18-20761.
|
|
||||||
# That version string propagates into all documentation.
|
|
||||||
git checkout -b $tmp_branch v$version
|
|
||||||
ok=0
|
|
||||||
./bootstrap && ./configure && make && make web-manual && ok=1
|
|
||||||
test $ok = 1 || exit 1
|
|
||||||
|
|
||||||
tmp=$(mktemp -d --tmpdir=. web-doc-update.XXXXXX) || exit 1
|
|
||||||
( cd $tmp \
|
|
||||||
&& cvs -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
|
|
||||||
rsync -avP doc/manual/ $tmp/$pkg/manual
|
|
||||||
|
|
||||||
(
|
|
||||||
cd $tmp/$pkg/manual
|
|
||||||
|
|
||||||
# Add any new files:
|
|
||||||
cvsu --types='?'|sed s/..// | xargs --no-run-if-empty -- cvs add -ko
|
|
||||||
|
|
||||||
cvs ci -m $version
|
|
||||||
)
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "VERSION="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@ -1,440 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Sign files and upload them.
|
|
||||||
|
|
||||||
scriptversion=2013-03-19.17; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 2004-2015 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# Originally written by Alexandre Duret-Lutz <adl@gnu.org>.
|
|
||||||
# The master copy of this file is maintained in the gnulib Git repository.
|
|
||||||
# Please send bug reports and feature requests to bug-gnulib@gnu.org.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
GPG='gpg --batch --no-tty'
|
|
||||||
conffile=.gnuploadrc
|
|
||||||
to=
|
|
||||||
dry_run=false
|
|
||||||
replace=
|
|
||||||
symlink_files=
|
|
||||||
delete_files=
|
|
||||||
delete_symlinks=
|
|
||||||
collect_var=
|
|
||||||
dbg=
|
|
||||||
nl='
|
|
||||||
'
|
|
||||||
|
|
||||||
usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...]
|
|
||||||
|
|
||||||
Sign all FILES, and process them at the destinations specified with --to.
|
|
||||||
If CMD is not given, it defaults to uploading. See examples below.
|
|
||||||
|
|
||||||
Commands:
|
|
||||||
--delete delete FILES from destination
|
|
||||||
--symlink create symbolic links
|
|
||||||
--rmsymlink remove symbolic links
|
|
||||||
-- treat the remaining arguments as files to upload
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--to DEST specify a destination DEST for FILES
|
|
||||||
(multiple --to options are allowed)
|
|
||||||
--user NAME sign with key NAME
|
|
||||||
--replace allow replacements of existing files
|
|
||||||
--symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names
|
|
||||||
--dry-run do nothing, show what would have been done
|
|
||||||
(including the constructed directive file)
|
|
||||||
--version output version information and exit
|
|
||||||
--help print this help text and exit
|
|
||||||
|
|
||||||
If --symlink-regex is given without EXPR, then the link target name
|
|
||||||
is created by replacing the version information with '-latest', e.g.:
|
|
||||||
foo-1.3.4.tar.gz -> foo-latest.tar.gz
|
|
||||||
|
|
||||||
Recognized destinations are:
|
|
||||||
alpha.gnu.org:DIRECTORY
|
|
||||||
savannah.gnu.org:DIRECTORY
|
|
||||||
savannah.nongnu.org:DIRECTORY
|
|
||||||
ftp.gnu.org:DIRECTORY
|
|
||||||
build directive files and upload files by FTP
|
|
||||||
download.gnu.org.ua:{alpha|ftp}/DIRECTORY
|
|
||||||
build directive files and upload files by SFTP
|
|
||||||
[user@]host:DIRECTORY upload files with scp
|
|
||||||
|
|
||||||
Options and commands are applied in order. If the file $conffile exists
|
|
||||||
in the current working directory, its contents are prepended to the
|
|
||||||
actual command line options. Use this to keep your defaults. Comments
|
|
||||||
(#) and empty lines in $conffile are allowed.
|
|
||||||
|
|
||||||
<http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
|
|
||||||
gives some further background.
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
1. Upload foobar-1.0.tar.gz to ftp.gnu.org:
|
|
||||||
gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz
|
|
||||||
|
|
||||||
2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org:
|
|
||||||
gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz
|
|
||||||
|
|
||||||
3. Same as above, and also create symbolic links to foobar-latest.tar.*:
|
|
||||||
gnupload --to ftp.gnu.org:foobar \\
|
|
||||||
--symlink-regex \\
|
|
||||||
foobar-1.0.tar.gz foobar-1.0.tar.xz
|
|
||||||
|
|
||||||
4. Upload foobar-0.9.90.tar.gz to two sites:
|
|
||||||
gnupload --to alpha.gnu.org:foobar \\
|
|
||||||
--to sources.redhat.com:~ftp/pub/foobar \\
|
|
||||||
foobar-0.9.90.tar.gz
|
|
||||||
|
|
||||||
5. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz
|
|
||||||
(the -- terminates the list of files to delete):
|
|
||||||
gnupload --to alpha.gnu.org:foobar \\
|
|
||||||
--to sources.redhat.com:~ftp/pub/foobar \\
|
|
||||||
--delete oopsbar-0.9.91.tar.gz \\
|
|
||||||
-- foobar-0.9.91.tar.gz
|
|
||||||
|
|
||||||
gnupload executes a program ncftpput to do the transfers; if you don't
|
|
||||||
happen to have an ncftp package installed, the ncftpput-ftp script in
|
|
||||||
the build-aux/ directory of the gnulib package
|
|
||||||
(http://savannah.gnu.org/projects/gnulib) may serve as a replacement.
|
|
||||||
|
|
||||||
Send patches and bug reports to <bug-gnulib@gnu.org>."
|
|
||||||
|
|
||||||
# Read local configuration file
|
|
||||||
if test -r "$conffile"; then
|
|
||||||
echo "$0: Reading configuration file $conffile"
|
|
||||||
conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '`
|
|
||||||
eval set x "$conf \"\$@\""
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
while test -n "$1"; do
|
|
||||||
case $1 in
|
|
||||||
-*)
|
|
||||||
collect_var=
|
|
||||||
case $1 in
|
|
||||||
--help)
|
|
||||||
echo "$usage"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
--to)
|
|
||||||
if test -z "$2"; then
|
|
||||||
echo "$0: Missing argument for --to" 1>&2
|
|
||||||
exit 1
|
|
||||||
elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then
|
|
||||||
echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2
|
|
||||||
echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2
|
|
||||||
echo "$0: is used for direct ftp uploads, not with gnupload)." >&2
|
|
||||||
echo "$0: See --help and its examples if need be." >&2
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
to="$to $2"
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
--user)
|
|
||||||
if test -z "$2"; then
|
|
||||||
echo "$0: Missing argument for --user" 1>&2
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
GPG="$GPG --local-user $2"
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
--delete)
|
|
||||||
collect_var=delete_files
|
|
||||||
;;
|
|
||||||
--replace)
|
|
||||||
replace="replace: true"
|
|
||||||
;;
|
|
||||||
--rmsymlink)
|
|
||||||
collect_var=delete_symlinks
|
|
||||||
;;
|
|
||||||
--symlink-regex=*)
|
|
||||||
symlink_expr=`expr "$1" : '[^=]*=\(.*\)'`
|
|
||||||
;;
|
|
||||||
--symlink-regex)
|
|
||||||
symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|'
|
|
||||||
;;
|
|
||||||
--symlink)
|
|
||||||
collect_var=symlink_files
|
|
||||||
;;
|
|
||||||
--dry-run|-n)
|
|
||||||
dry_run=:
|
|
||||||
;;
|
|
||||||
--version)
|
|
||||||
echo "gnupload $scriptversion"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
shift
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
echo "$0: Unknown option '$1', try '$0 --help'" 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if test -z "$collect_var"; then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
eval "$collect_var=\"\$$collect_var $1\""
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
dprint()
|
|
||||||
{
|
|
||||||
echo "Running $* ..."
|
|
||||||
}
|
|
||||||
|
|
||||||
if $dry_run; then
|
|
||||||
dbg=dprint
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$to"; then
|
|
||||||
echo "$0: Missing destination sites" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$symlink_files"; then
|
|
||||||
x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'`
|
|
||||||
if test -n "$x"; then
|
|
||||||
echo "$0: Odd number of symlink arguments" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $# = 0; then
|
|
||||||
if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then
|
|
||||||
echo "$0: No file to upload" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Make sure all files exist. We don't want to ask
|
|
||||||
# for the passphrase if the script will fail.
|
|
||||||
for file
|
|
||||||
do
|
|
||||||
if test ! -f $file; then
|
|
||||||
echo "$0: Cannot find '$file'" 1>&2
|
|
||||||
exit 1
|
|
||||||
elif test -n "$symlink_expr"; then
|
|
||||||
linkname=`echo $file | sed "$symlink_expr"`
|
|
||||||
if test -z "$linkname"; then
|
|
||||||
echo "$0: symlink expression produces empty results" >&2
|
|
||||||
exit 1
|
|
||||||
elif test "$linkname" = $file; then
|
|
||||||
echo "$0: symlink expression does not alter file name" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make sure passphrase is not exported in the environment.
|
|
||||||
unset passphrase
|
|
||||||
unset passphrase_fd_0
|
|
||||||
GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg}
|
|
||||||
|
|
||||||
# Reset PATH to be sure that echo is a built-in. We will later use
|
|
||||||
# 'echo $passphrase' to output the passphrase, so it is important that
|
|
||||||
# it is a built-in (third-party programs tend to appear in 'ps'
|
|
||||||
# listings with their arguments...).
|
|
||||||
# Remember this script runs with 'set -e', so if echo is not built-in
|
|
||||||
# it will exit now.
|
|
||||||
if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else
|
|
||||||
PATH=/empty echo -n "Enter GPG passphrase: "
|
|
||||||
stty -echo
|
|
||||||
read -r passphrase
|
|
||||||
stty echo
|
|
||||||
echo
|
|
||||||
passphrase_fd_0="--passphrase-fd 0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $# -ne 0; then
|
|
||||||
for file
|
|
||||||
do
|
|
||||||
echo "Signing $file ..."
|
|
||||||
rm -f $file.sig
|
|
||||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# mkdirective DESTDIR BASE FILE STMT
|
|
||||||
# Arguments: See upload, below
|
|
||||||
mkdirective ()
|
|
||||||
{
|
|
||||||
stmt="$4"
|
|
||||||
if test -n "$3"; then
|
|
||||||
stmt="
|
|
||||||
filename: $3$stmt"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >${2}.directive<<EOF
|
|
||||||
version: 1.2
|
|
||||||
directory: $1
|
|
||||||
comment: gnupload v. $scriptversion$stmt
|
|
||||||
EOF
|
|
||||||
if $dry_run; then
|
|
||||||
echo "File ${2}.directive:"
|
|
||||||
cat ${2}.directive
|
|
||||||
echo "File ${2}.directive:" | sed 's/./-/g'
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
mksymlink ()
|
|
||||||
{
|
|
||||||
while test $# -ne 0
|
|
||||||
do
|
|
||||||
echo "symlink: $1 $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# upload DEST DESTDIR BASE FILE STMT FILES
|
|
||||||
# Arguments:
|
|
||||||
# DEST Destination site;
|
|
||||||
# DESTDIR Destination directory;
|
|
||||||
# BASE Base name for the directive file;
|
|
||||||
# FILE Name of the file to distribute (may be empty);
|
|
||||||
# STMT Additional statements for the directive file;
|
|
||||||
# FILES List of files to upload.
|
|
||||||
upload ()
|
|
||||||
{
|
|
||||||
dest=$1
|
|
||||||
destdir=$2
|
|
||||||
base=$3
|
|
||||||
file=$4
|
|
||||||
stmt=$5
|
|
||||||
files=$6
|
|
||||||
|
|
||||||
rm -f $base.directive $base.directive.asc
|
|
||||||
case $dest in
|
|
||||||
alpha.gnu.org:*)
|
|
||||||
mkdirective "$destdir" "$base" "$file" "$stmt"
|
|
||||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
|
||||||
$dbg ncftpput ftp-upload.gnu.org /incoming/alpha $files $base.directive.asc
|
|
||||||
;;
|
|
||||||
ftp.gnu.org:*)
|
|
||||||
mkdirective "$destdir" "$base" "$file" "$stmt"
|
|
||||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
|
||||||
$dbg ncftpput ftp-upload.gnu.org /incoming/ftp $files $base.directive.asc
|
|
||||||
;;
|
|
||||||
savannah.gnu.org:*)
|
|
||||||
if test -z "$files"; then
|
|
||||||
echo "$0: warning: standalone directives not applicable for $dest" >&2
|
|
||||||
fi
|
|
||||||
$dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files
|
|
||||||
;;
|
|
||||||
savannah.nongnu.org:*)
|
|
||||||
if test -z "$files"; then
|
|
||||||
echo "$0: warning: standalone directives not applicable for $dest" >&2
|
|
||||||
fi
|
|
||||||
$dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files
|
|
||||||
;;
|
|
||||||
download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*)
|
|
||||||
destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'`
|
|
||||||
destdir_topdir=`echo "$destdir" | sed 's,/.*,,'`
|
|
||||||
mkdirective "$destdir_p1" "$base" "$file" "$stmt"
|
|
||||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
|
||||||
for f in $files $base.directive.asc
|
|
||||||
do
|
|
||||||
echo put $f
|
|
||||||
done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir
|
|
||||||
;;
|
|
||||||
/*)
|
|
||||||
dest_host=`echo "$dest" | sed 's,:.*,,'`
|
|
||||||
mkdirective "$destdir" "$base" "$file" "$stmt"
|
|
||||||
echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
|
|
||||||
$dbg cp $files $base.directive.asc $dest_host
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if test -z "$files"; then
|
|
||||||
echo "$0: warning: standalone directives not applicable for $dest" >&2
|
|
||||||
fi
|
|
||||||
$dbg scp $files $dest
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
rm -f $base.directive $base.directive.asc
|
|
||||||
}
|
|
||||||
|
|
||||||
#####
|
|
||||||
# Process any standalone directives
|
|
||||||
stmt=
|
|
||||||
if test -n "$symlink_files"; then
|
|
||||||
stmt="$stmt
|
|
||||||
`mksymlink $symlink_files`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for file in $delete_files
|
|
||||||
do
|
|
||||||
stmt="$stmt
|
|
||||||
archive: $file"
|
|
||||||
done
|
|
||||||
|
|
||||||
for file in $delete_symlinks
|
|
||||||
do
|
|
||||||
stmt="$stmt
|
|
||||||
rmsymlink: $file"
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -n "$stmt"; then
|
|
||||||
for dest in $to
|
|
||||||
do
|
|
||||||
destdir=`echo $dest | sed 's/[^:]*://'`
|
|
||||||
upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Process actual uploads
|
|
||||||
for dest in $to
|
|
||||||
do
|
|
||||||
for file
|
|
||||||
do
|
|
||||||
echo "Uploading $file to $dest ..."
|
|
||||||
stmt=
|
|
||||||
#
|
|
||||||
# allowing file replacement is all or nothing.
|
|
||||||
if test -n "$replace"; then stmt="$stmt
|
|
||||||
$replace"
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
files="$file $file.sig"
|
|
||||||
destdir=`echo $dest | sed 's/[^:]*://'`
|
|
||||||
if test -n "$symlink_expr"; then
|
|
||||||
linkname=`echo $file | sed "$symlink_expr"`
|
|
||||||
stmt="$stmt
|
|
||||||
symlink: $file $linkname
|
|
||||||
symlink: $file.sig $linkname.sig"
|
|
||||||
fi
|
|
||||||
upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/usr/share/automake-1.12/install-sh
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/usr/share/automake-1.12/missing
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
## -*- indent-tabs-mode:nil; coding: utf-8 -*-
|
|
||||||
## Copyright (C) 2015
|
|
||||||
## "Mu Lei" known as "NalaGinrut" <NalaGinrut@gmail.com>
|
|
||||||
## Artanis is free software: you can redistribute it and/or modify
|
|
||||||
## it under the terms of the GNU General Public License and GNU
|
|
||||||
## Lesser General Public License published by the Free Software
|
|
||||||
## Foundation, either version 3 of the License, or (at your option)
|
|
||||||
## any later version.
|
|
||||||
|
|
||||||
## Artanis is distributed in the hope that it will be useful,
|
|
||||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
## GNU General Public License and GNU Lesser General Public License
|
|
||||||
## for more details.
|
|
||||||
|
|
||||||
## You should have received a copy of the GNU General Public License
|
|
||||||
## and GNU Lesser General Public License along with this program.
|
|
||||||
## If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# install in /etc/bash_completion.d/ or your personal directory
|
|
||||||
|
|
||||||
_art()
|
|
||||||
{
|
|
||||||
local cur=`_get_cword`
|
|
||||||
local cmds=`art list-all-cmds`
|
|
||||||
# TODO: support cmd subcmd & options complete
|
|
||||||
#local cmd="${COMP_WORDS[1]}"
|
|
||||||
|
|
||||||
if [ "$COMP_CWORD" == 1 ]; then
|
|
||||||
for opt in $cmds; do
|
|
||||||
if [[ "$opt" == "$cmd" ]]; then
|
|
||||||
COMPREPLY=("$opt")
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
elif [ "$COMP_CWORD" == 2 ]; then
|
|
||||||
# TODO: support cmd options complete
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
complete $filenames -F _art art
|
|
||||||
|
|
||||||
# vim:ts=2 sw=2 et syn=sh
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
/* A C macro for declaring that specific function parameters are not used.
|
|
||||||
Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published
|
|
||||||
by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter
|
|
||||||
declarations for parameters that are not used. This helps to reduce
|
|
||||||
warnings, such as from GCC -Wunused-parameter. The syntax is as follows:
|
|
||||||
type param _GL_UNUSED_PARAMETER
|
|
||||||
or more generally
|
|
||||||
param_decl _GL_UNUSED_PARAMETER
|
|
||||||
For example:
|
|
||||||
int param _GL_UNUSED_PARAMETER
|
|
||||||
int *(*param)(void) _GL_UNUSED_PARAMETER
|
|
||||||
Other possible, but obscure and discouraged syntaxes:
|
|
||||||
int _GL_UNUSED_PARAMETER *(*param)(void)
|
|
||||||
_GL_UNUSED_PARAMETER int *(*param)(void)
|
|
||||||
*/
|
|
||||||
#ifndef _GL_UNUSED_PARAMETER
|
|
||||||
# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
|
|
||||||
# define _GL_UNUSED_PARAMETER __attribute__ ((__unused__))
|
|
||||||
# else
|
|
||||||
# define _GL_UNUSED_PARAMETER
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
@ -1,207 +0,0 @@
|
|||||||
eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}'
|
|
||||||
& eval 'exec perl -wST "$0" $argv:q'
|
|
||||||
if 0;
|
|
||||||
# Detect instances of "if (p) free (p);".
|
|
||||||
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
|
|
||||||
|
|
||||||
my $VERSION = '2011-04-20 13:43'; # UTC
|
|
||||||
# The definition above must lie within the first 8 lines in order
|
|
||||||
# for the Emacs time-stamp write hook (at end) to update it.
|
|
||||||
# If you change this file with Emacs, please let the write hook
|
|
||||||
# do its job. Otherwise, update this string manually.
|
|
||||||
|
|
||||||
# Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# Written by Jim Meyering
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
use Getopt::Long;
|
|
||||||
|
|
||||||
(my $ME = $0) =~ s|.*/||;
|
|
||||||
|
|
||||||
# use File::Coda; # http://meyering.net/code/Coda/
|
|
||||||
END {
|
|
||||||
defined fileno STDOUT or return;
|
|
||||||
close STDOUT and return;
|
|
||||||
warn "$ME: failed to close standard output: $!\n";
|
|
||||||
$? ||= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub usage ($)
|
|
||||||
{
|
|
||||||
my ($exit_code) = @_;
|
|
||||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
|
||||||
if ($exit_code != 0)
|
|
||||||
{
|
|
||||||
print $STREAM "Try `$ME --help' for more information.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $STREAM <<EOF;
|
|
||||||
Usage: $ME [OPTIONS] FILE...
|
|
||||||
|
|
||||||
Detect any instance in FILE of a useless "if" test before a free call, e.g.,
|
|
||||||
"if (p) free (p);". Any such test may be safely removed without affecting
|
|
||||||
the semantics of the C code in FILE. Use --name=FOO --name=BAR to also
|
|
||||||
detect free-like functions named FOO and BAR.
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
|
|
||||||
--list print only the name of each matching FILE (\\0-terminated)
|
|
||||||
--name=N add name N to the list of \`free\'-like functions to detect;
|
|
||||||
may be repeated
|
|
||||||
|
|
||||||
--help display this help and exit
|
|
||||||
--version output version information and exit
|
|
||||||
|
|
||||||
Exit status:
|
|
||||||
|
|
||||||
0 one or more matches
|
|
||||||
1 no match
|
|
||||||
2 an error
|
|
||||||
|
|
||||||
EXAMPLE:
|
|
||||||
|
|
||||||
For example, this command prints all removable "if" tests before "free"
|
|
||||||
and "kfree" calls in the linux kernel sources:
|
|
||||||
|
|
||||||
git ls-files -z |xargs -0 $ME --name=kfree
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
exit $exit_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub is_NULL ($)
|
|
||||||
{
|
|
||||||
my ($expr) = @_;
|
|
||||||
return ($expr eq 'NULL' || $expr eq '0');
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
sub EXIT_MATCH {0}
|
|
||||||
sub EXIT_NO_MATCH {1}
|
|
||||||
sub EXIT_ERROR {2}
|
|
||||||
my $err = EXIT_NO_MATCH;
|
|
||||||
|
|
||||||
my $list;
|
|
||||||
my @name = qw(free);
|
|
||||||
GetOptions
|
|
||||||
(
|
|
||||||
help => sub { usage 0 },
|
|
||||||
version => sub { print "$ME version $VERSION\n"; exit },
|
|
||||||
list => \$list,
|
|
||||||
'name=s@' => \@name,
|
|
||||||
) or usage 1;
|
|
||||||
|
|
||||||
# Make sure we have the right number of non-option arguments.
|
|
||||||
# Always tell the user why we fail.
|
|
||||||
@ARGV < 1
|
|
||||||
and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR;
|
|
||||||
|
|
||||||
my $or = join '|', @name;
|
|
||||||
my $regexp = qr/(?:$or)/;
|
|
||||||
|
|
||||||
# Set the input record separator.
|
|
||||||
# Note: this makes it impractical to print line numbers.
|
|
||||||
$/ = '"';
|
|
||||||
|
|
||||||
my $found_match = 0;
|
|
||||||
FILE:
|
|
||||||
foreach my $file (@ARGV)
|
|
||||||
{
|
|
||||||
open FH, '<', $file
|
|
||||||
or (warn "$ME: can't open `$file' for reading: $!\n"),
|
|
||||||
$err = EXIT_ERROR, next;
|
|
||||||
while (defined (my $line = <FH>))
|
|
||||||
{
|
|
||||||
while ($line =~
|
|
||||||
/\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\)
|
|
||||||
# 1 2 3
|
|
||||||
(?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;|
|
|
||||||
\s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg)
|
|
||||||
{
|
|
||||||
my $all = $1;
|
|
||||||
my ($lhs, $rhs) = ($2, $3);
|
|
||||||
my ($free_opnd, $braced_free_opnd) = ($4, $5);
|
|
||||||
my $non_NULL;
|
|
||||||
if (!defined $rhs) { $non_NULL = $lhs }
|
|
||||||
elsif (is_NULL $rhs) { $non_NULL = $lhs }
|
|
||||||
elsif (is_NULL $lhs) { $non_NULL = $rhs }
|
|
||||||
else { next }
|
|
||||||
|
|
||||||
# Compare the non-NULL part of the "if" expression and the
|
|
||||||
# free'd expression, without regard to white space.
|
|
||||||
$non_NULL =~ tr/ \t//d;
|
|
||||||
my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd;
|
|
||||||
$e2 =~ tr/ \t//d;
|
|
||||||
if ($non_NULL eq $e2)
|
|
||||||
{
|
|
||||||
$found_match = 1;
|
|
||||||
$list
|
|
||||||
and (print "$file\0"), next FILE;
|
|
||||||
print "$file: $all\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
{
|
|
||||||
close FH;
|
|
||||||
}
|
|
||||||
|
|
||||||
$found_match && $err == EXIT_NO_MATCH
|
|
||||||
and $err = EXIT_MATCH;
|
|
||||||
|
|
||||||
exit $err;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $foo = <<'EOF';
|
|
||||||
# The above is to *find* them.
|
|
||||||
# This adjusts them, removing the unnecessary "if (p)" part.
|
|
||||||
|
|
||||||
# FIXME: do something like this as an option (doesn't do braces):
|
|
||||||
free=xfree
|
|
||||||
git grep -l -z "$free *(" \
|
|
||||||
| xargs -0 useless-if-before-free -l --name="$free" \
|
|
||||||
| xargs -0 perl -0x3b -pi -e \
|
|
||||||
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s'
|
|
||||||
|
|
||||||
# Use the following to remove redundant uses of kfree inside braces.
|
|
||||||
# Note that -0777 puts perl in slurp-whole-file mode;
|
|
||||||
# but we have plenty of memory, these days...
|
|
||||||
free=kfree
|
|
||||||
git grep -l -z "$free *(" \
|
|
||||||
| xargs -0 useless-if-before-free -l --name="$free" \
|
|
||||||
| xargs -0 perl -0777 -pi -e \
|
|
||||||
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms'
|
|
||||||
|
|
||||||
Be careful that the result of the above transformation is valid.
|
|
||||||
If the matched string is followed by "else", then obviously, it won't be.
|
|
||||||
|
|
||||||
When modifying files, refuse to process anything other than a regular file.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
## Local Variables:
|
|
||||||
## mode: perl
|
|
||||||
## indent-tabs-mode: nil
|
|
||||||
## eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
## time-stamp-start: "my $VERSION = '"
|
|
||||||
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
|
||||||
## time-stamp-time-zone: "UTC"
|
|
||||||
## time-stamp-end: "'; # UTC"
|
|
||||||
## End:
|
|
||||||
@ -1,113 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# List version-controlled file names.
|
|
||||||
|
|
||||||
# Print a version string.
|
|
||||||
scriptversion=2011-05-16.22; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 2006-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
|
|
||||||
# List the specified version-controlled files.
|
|
||||||
# With no argument, list them all. With a single DIRECTORY argument,
|
|
||||||
# list the version-controlled files in that directory.
|
|
||||||
|
|
||||||
# If there's an argument, it must be a single, "."-relative directory name.
|
|
||||||
# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
|
|
||||||
|
|
||||||
postprocess=
|
|
||||||
case $1 in
|
|
||||||
--help) cat <<EOF
|
|
||||||
Usage: $0 [-C SRCDIR] [DIR...]
|
|
||||||
|
|
||||||
Output a list of version-controlled files in DIR (default .), relative to
|
|
||||||
SRCDIR (default .). SRCDIR must be the top directory of a checkout.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--help print this help, then exit
|
|
||||||
--version print version number, then exit
|
|
||||||
-C SRCDIR change directory to SRCDIR before generating list
|
|
||||||
|
|
||||||
Report bugs and patches to <bug-gnulib@gnu.org>.
|
|
||||||
EOF
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
--version)
|
|
||||||
year=`echo "$scriptversion" | sed 's/[^0-9].*//'`
|
|
||||||
cat <<EOF
|
|
||||||
vc-list-files $scriptversion
|
|
||||||
Copyright (C) $year Free Software Foundation, Inc,
|
|
||||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
|
||||||
This is free software: you are free to change and redistribute it.
|
|
||||||
There is NO WARRANTY, to the extent permitted by law.
|
|
||||||
EOF
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
-C)
|
|
||||||
test "$2" = . || postprocess="| sed 's|^|$2/|'"
|
|
||||||
cd "$2" || exit 1
|
|
||||||
shift; shift ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
test $# = 0 && set .
|
|
||||||
|
|
||||||
for dir
|
|
||||||
do
|
|
||||||
if test -d .git; then
|
|
||||||
test "x$dir" = x. \
|
|
||||||
&& dir= sed_esc= \
|
|
||||||
|| { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
|
|
||||||
# Ignore git symlinks - either they point into the tree, in which case
|
|
||||||
# we don't need to visit the target twice, or they point somewhere
|
|
||||||
# else (often into a submodule), in which case the content does not
|
|
||||||
# belong to this package.
|
|
||||||
eval exec git ls-tree -r 'HEAD:"$dir"' \
|
|
||||||
\| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess
|
|
||||||
elif test -d .hg; then
|
|
||||||
eval exec hg locate '"$dir/*"' $postprocess
|
|
||||||
elif test -d .bzr; then
|
|
||||||
test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
|
|
||||||
eval exec bzr ls -R --versioned '"$dir"' $postprocess
|
|
||||||
elif test -d CVS; then
|
|
||||||
test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
|
|
||||||
if test -x build-aux/cvsu; then
|
|
||||||
eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess
|
|
||||||
elif (cvsu --help) >/dev/null 2>&1; then
|
|
||||||
eval cvsu --find --types=AFGM '"$dir"' $postprocess
|
|
||||||
else
|
|
||||||
eval awk -F/ \''{ \
|
|
||||||
if (!$1 && $3 !~ /^-/) { \
|
|
||||||
f=FILENAME; \
|
|
||||||
if (f ~ /CVS\/Entries$/) \
|
|
||||||
f = substr(f, 1, length(f)-11); \
|
|
||||||
print f $2; \
|
|
||||||
}}'\'' \
|
|
||||||
`find "$dir" -name Entries -print` /dev/null' $postprocess
|
|
||||||
fi
|
|
||||||
elif test -d .svn; then
|
|
||||||
eval exec svn list -R '"$dir"' $postprocess
|
|
||||||
else
|
|
||||||
echo "$0: Failed to determine type of version control used in `pwd`" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@ -1,109 +0,0 @@
|
|||||||
/* A C macro for emitting warnings if a function is used.
|
|
||||||
Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published
|
|
||||||
by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
|
|
||||||
for FUNCTION which will then trigger a compiler warning containing
|
|
||||||
the text of "literal string" anywhere that function is called, if
|
|
||||||
supported by the compiler. If the compiler does not support this
|
|
||||||
feature, the macro expands to an unused extern declaration.
|
|
||||||
|
|
||||||
This macro is useful for marking a function as a potential
|
|
||||||
portability trap, with the intent that "literal string" include
|
|
||||||
instructions on the replacement function that should be used
|
|
||||||
instead. However, one of the reasons that a function is a
|
|
||||||
portability trap is if it has the wrong signature. Declaring
|
|
||||||
FUNCTION with a different signature in C is a compilation error, so
|
|
||||||
this macro must use the same type as any existing declaration so
|
|
||||||
that programs that avoid the problematic FUNCTION do not fail to
|
|
||||||
compile merely because they included a header that poisoned the
|
|
||||||
function. But this implies that _GL_WARN_ON_USE is only safe to
|
|
||||||
use if FUNCTION is known to already have a declaration. Use of
|
|
||||||
this macro implies that there must not be any other macro hiding
|
|
||||||
the declaration of FUNCTION; but undefining FUNCTION first is part
|
|
||||||
of the poisoning process anyway (although for symbols that are
|
|
||||||
provided only via a macro, the result is a compilation error rather
|
|
||||||
than a warning containing "literal string"). Also note that in
|
|
||||||
C++, it is only safe to use if FUNCTION has no overloads.
|
|
||||||
|
|
||||||
For an example, it is possible to poison 'getline' by:
|
|
||||||
- adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
|
|
||||||
[getline]) in configure.ac, which potentially defines
|
|
||||||
HAVE_RAW_DECL_GETLINE
|
|
||||||
- adding this code to a header that wraps the system <stdio.h>:
|
|
||||||
#undef getline
|
|
||||||
#if HAVE_RAW_DECL_GETLINE
|
|
||||||
_GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
|
|
||||||
"not universally present; use the gnulib module getline");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
It is not possible to directly poison global variables. But it is
|
|
||||||
possible to write a wrapper accessor function, and poison that
|
|
||||||
(less common usage, like &environ, will cause a compilation error
|
|
||||||
rather than issue the nice warning, but the end result of informing
|
|
||||||
the developer about their portability problem is still achieved):
|
|
||||||
#if HAVE_RAW_DECL_ENVIRON
|
|
||||||
static inline char ***rpl_environ (void) { return &environ; }
|
|
||||||
_GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
|
|
||||||
# undef environ
|
|
||||||
# define environ (*rpl_environ ())
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
#ifndef _GL_WARN_ON_USE
|
|
||||||
|
|
||||||
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
|
|
||||||
/* A compiler attribute is available in gcc versions 4.3.0 and later. */
|
|
||||||
# define _GL_WARN_ON_USE(function, message) \
|
|
||||||
extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
|
|
||||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
|
|
||||||
/* Verify the existence of the function. */
|
|
||||||
# define _GL_WARN_ON_USE(function, message) \
|
|
||||||
extern __typeof__ (function) function
|
|
||||||
# else /* Unsupported. */
|
|
||||||
# define _GL_WARN_ON_USE(function, message) \
|
|
||||||
_GL_WARN_EXTERN_C int _gl_warn_on_use
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
|
|
||||||
is like _GL_WARN_ON_USE (function, "string"), except that the function is
|
|
||||||
declared with the given prototype, consisting of return type, parameters,
|
|
||||||
and attributes.
|
|
||||||
This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
|
|
||||||
not work in this case. */
|
|
||||||
#ifndef _GL_WARN_ON_USE_CXX
|
|
||||||
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
|
|
||||||
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
|
|
||||||
extern rettype function parameters_and_attributes \
|
|
||||||
__attribute__ ((__warning__ (msg)))
|
|
||||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
|
|
||||||
/* Verify the existence of the function. */
|
|
||||||
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
|
|
||||||
extern rettype function parameters_and_attributes
|
|
||||||
# else /* Unsupported. */
|
|
||||||
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
|
|
||||||
_GL_WARN_EXTERN_C int _gl_warn_on_use
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* _GL_WARN_EXTERN_C declaration;
|
|
||||||
performs the declaration with C linkage. */
|
|
||||||
#ifndef _GL_WARN_EXTERN_C
|
|
||||||
# if defined __cplusplus
|
|
||||||
# define _GL_WARN_EXTERN_C extern "C"
|
|
||||||
# else
|
|
||||||
# define _GL_WARN_EXTERN_C extern
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
# configure.ac
|
|
||||||
#
|
|
||||||
# Copyright (C) 2013-2015 Nala Ginrut <nalaginrut@gmail.com>
|
|
||||||
#
|
|
||||||
# This file is part of guile-csv.
|
|
||||||
#
|
|
||||||
# guile-csv is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License as
|
|
||||||
# published by the Free Software Foundation; either version 3, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# guile-csv is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with guile-json; see the file COPYING. If not,
|
|
||||||
# write to the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
AC_PREREQ([2.65])
|
|
||||||
AC_INIT([guile-csv], [0.0.3], [nalaginrut@gmail.com])
|
|
||||||
AC_CONFIG_SRCDIR(csv)
|
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
|
||||||
AC_CONFIG_MACRO_DIR([build-aux])
|
|
||||||
AM_INIT_AUTOMAKE([color-tests -Wall -Wno-portability])
|
|
||||||
AM_SILENT_RULES([yes])
|
|
||||||
|
|
||||||
|
|
||||||
GUILE_PKG([2.0 2.1 2.2])
|
|
||||||
PKG_CHECK_MODULES([GUILE], [guile-$GUILE_EFFECTIVE_VERSION >= 2.0.5])
|
|
||||||
AC_PATH_PROG([GUILECONFIG], [guile-config], :)
|
|
||||||
|
|
||||||
GUILE_PROGS
|
|
||||||
GUILE_FLAGS
|
|
||||||
GUILE_SITE_DIR
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile csv/Makefile])
|
|
||||||
AC_CONFIG_FILES([env], [chmod +x env])
|
|
||||||
|
|
||||||
AC_OUTPUT
|
|
||||||
|
|
||||||
# configure.ac ends here
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test -z "$GUILE_LOAD_PATH"; then
|
|
||||||
export GUILE_LOAD_PATH="@abs_top_srcdir@"
|
|
||||||
else
|
|
||||||
export GUILE_LOAD_PATH="@abs_top_srcdir@":$GUILE_LOAD_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$GUILE_LOAD_COMPILED_PATH"; then
|
|
||||||
export GUILE_LOAD_COMPILED_PATH="@abs_top_builddir@"
|
|
||||||
else
|
|
||||||
export GUILE_LOAD_COMPILED_PATH="@abs_top_builddir@":$GUILE_LOAD_COMPILED_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$@"
|
|
||||||
|
|
||||||
Loading…
Reference in new issue