v1.5
This commit is contained in:
parent
446ba5e515
commit
ed23b3c747
15
ChangeLog
15
ChangeLog
@ -1,6 +1,21 @@
|
||||
E-MailRelay Change Log
|
||||
======================
|
||||
|
||||
1.4 -> 1.5
|
||||
----------
|
||||
* New installation and configuration GUI using TrollTech Qt 4.x ("./configure --enable-gui")
|
||||
* Default address verifier accepts all addresses as valid and never treats them as local mailboxes.
|
||||
* Fix for server exit bug when failing to send data down a newly accepted connection.
|
||||
* Spooled content files can be left in the parent directory to save diskspace when using "--pop-by-name".
|
||||
* Client protocol improved for the case where there are no valid recipients.
|
||||
* New "--syslog" switch to override "--no-syslog".
|
||||
* New "--filter-timeout" switch added.
|
||||
* Support for "--foo=bar" switch syntax (ie. with "=").
|
||||
* Multiple listening interfaces allowed with a comma-separated "--interface" list.
|
||||
* New "--filter" utility called "emailrelay-filter-copy" to support "--pop-by-name".
|
||||
* Documentation also created in docbook format (requires xmlto).
|
||||
* Windows installation document revised.
|
||||
|
||||
1.3.3 -> 1.4
|
||||
------------
|
||||
* POP3 server (enable with "--pop", disable at build-time with "./configure --disable-pop").
|
||||
|
23
INSTALL
23
INSTALL
@ -1,17 +1,17 @@
|
||||
Introduction
|
||||
============
|
||||
|
||||
What follows are generic installation instructions for doing a
|
||||
GNU-style "./configure; make; make install-strip" installation from
|
||||
source under Linux, FreeBSD etc. The Windows installation instructions
|
||||
are in a separate document.
|
||||
With the exception of this introduction this document contains generic
|
||||
installation instructions for doing a GNU-style
|
||||
"./configure; make; sudo make install" installation from source under Linux,
|
||||
FreeBSD etc. The Windows installation instructions are in a separate document,
|
||||
"doc/windows.txt".
|
||||
|
||||
The E-MailRelay "configure" script provides a few extra switches,
|
||||
which are shown in the output of "./configure --help". The most
|
||||
important of these is "--enable-fhs", which overrides all other
|
||||
The E-MailRelay "configure" script provides a few extra confiruation
|
||||
switches, which are shown in the output of "./configure --help". The
|
||||
most important of these is "--enable-fhs", which overrides all other
|
||||
directory modifiers, forcing compliance with the File Hierarchy
|
||||
Standard. This switch is used in building the RPMs, and may become the
|
||||
default in future releases.
|
||||
Standard.
|
||||
|
||||
There are also a set of variables which can be defined on the
|
||||
"configure" command line for controlling all the installation
|
||||
@ -23,8 +23,9 @@ refer to the E-MailRelay reference document under "Files and directories".
|
||||
compiler-specific help in the relevant lib/<compiler> directory.
|
||||
|
||||
The E-MailRelay user guide describes what needs to be done after the
|
||||
"make install" in order to get the emailrelay daemon to start up at
|
||||
boot-time, automatically forward e-mail and bounce failed mail.
|
||||
"make install" in order to get the emailrelay daemon to start up at boot-time,
|
||||
automatically forward e-mail and bounce failed mail. You could also try running
|
||||
the configuration GUI program, "emailrelay-gui", if available.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
@ -18,7 +18,7 @@
|
||||
##
|
||||
#
|
||||
EXTRA_DIST = emailrelay.spec ChangeLog
|
||||
SUBDIRS = src bin lib doc etc
|
||||
SUBDIRS = src bin lib etc doc
|
||||
e_doc_DATA = NEWS README changelog.gz
|
||||
CLEANFILES = changelog.gz
|
||||
changelog.gz: ChangeLog
|
||||
|
218
Makefile.in
218
Makefile.in
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -14,15 +14,11 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -45,21 +41,30 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno configure.status.lineno
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-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__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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(e_docdir)"
|
||||
e_docDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(e_doc_DATA)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
@ -75,8 +80,6 @@ GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -100,9 +103,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -113,10 +118,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -125,52 +130,67 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#
|
||||
#
|
||||
EXTRA_DIST = emailrelay.spec ChangeLog
|
||||
SUBDIRS = src bin lib doc etc
|
||||
SUBDIRS = src bin lib etc doc
|
||||
e_doc_DATA = NEWS README changelog.gz
|
||||
CLEANFILES = changelog.gz
|
||||
all: config.h
|
||||
@ -214,7 +234,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@ -227,13 +247,12 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
uninstall-info-am:
|
||||
install-e_docDATA: $(e_doc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(e_docdir)" || $(mkdir_p) "$(DESTDIR)$(e_docdir)"
|
||||
test -z "$(e_docdir)" || $(MKDIR_P) "$(DESTDIR)$(e_docdir)"
|
||||
@list='$(e_doc_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(e_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||
$(e_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||
done
|
||||
@ -241,7 +260,7 @@ install-e_docDATA: $(e_doc_DATA)
|
||||
uninstall-e_docDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(e_doc_DATA)'; for p in $$list; do \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||
done
|
||||
@ -253,7 +272,13 @@ uninstall-e_docDATA:
|
||||
# (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):
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@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 \
|
||||
@ -265,15 +290,20 @@ $(RECURSIVE_TARGETS):
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@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)' ;; \
|
||||
@ -294,7 +324,7 @@ maintainer-clean-recursive:
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -319,14 +349,16 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if (etags --etags-include --version) >/dev/null 2>&1; then \
|
||||
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 && \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
@ -336,9 +368,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -364,23 +398,22 @@ distclean-tags:
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -391,15 +424,19 @@ distdir: $(DISTFILES)
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| mkdir "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="../$(top_distdir)" \
|
||||
distdir="../$(distdir)/$$subdir" \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -407,18 +444,18 @@ distdir: $(DISTFILES)
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
$(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
@ -431,7 +468,7 @@ dist-zip: distdir
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
@ -440,13 +477,13 @@ dist dist-all: distdir
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | unshar ;;\
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
@ -482,7 +519,7 @@ distcheck: dist
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
@ -507,7 +544,7 @@ all-am: Makefile $(DATA) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(e_docdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
@ -529,7 +566,7 @@ clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -555,12 +592,20 @@ info-am:
|
||||
|
||||
install-data-am: install-e_docDATA
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -581,25 +626,26 @@ ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-e_docDATA uninstall-info-am uninstall-local
|
||||
uninstall-am: uninstall-e_docDATA uninstall-local
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||
check-am clean clean-generic clean-recursive ctags \
|
||||
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
|
||||
dist-tarZ dist-zip distcheck distclean distclean-generic \
|
||||
distclean-hdr distclean-recursive distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-e_docDATA install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-e_docDATA uninstall-info-am \
|
||||
uninstall-local
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-hdr 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-e_docDATA install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man 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-e_docDATA uninstall-local
|
||||
|
||||
changelog.gz: ChangeLog
|
||||
if test -n "$(GZIP)" ; then $(GZIP) -c $(top_srcdir)/ChangeLog > changelog.tmp && mv changelog.tmp changelog.gz ; fi
|
||||
|
67
README
67
README
@ -14,48 +14,55 @@ Because of its functional simplicity E-MailRelay is easy to configure, typically
|
||||
only requiring the address of the target SMTP server to be put on the command
|
||||
line.
|
||||
|
||||
E-MailRelay can also run as a POP3 server.
|
||||
E-MailRelay can also run as a POP3 server. Messages received over SMTP can be
|
||||
automatically dropped into several independent POP3 mailboxes.
|
||||
|
||||
C++ source code is available for Linux, FreeBSD, MacOS X etc, and Windows.
|
||||
Distribution is under the GNU General Public License.
|
||||
|
||||
Quick start
|
||||
-----------
|
||||
To run the program as a proxy use the "--as-proxy" command-line switch followed
|
||||
by the address of the target SMTP server. If you want to edit or filter e-mail
|
||||
as it passes through the proxy then specify your pre-processor program with the
|
||||
"--filter" switch. You can optionally change the listening port number using
|
||||
"--port" and the spool directory using "--spool-dir".
|
||||
To use E-MailRelay in store-and-forward mode use the "--as-server" switch to
|
||||
start the storage daemon in the background, and then trigger delivery of spooled
|
||||
messages by running with the "--as-client" switch and the address of the target
|
||||
host.
|
||||
|
||||
For example, to start up a local proxy that passes messages to some "addsig"
|
||||
script and then forwards them to an MTA running on "smarthost", use a command
|
||||
like this:
|
||||
For example, to start a storage daemon listening on port 10025 use a command like
|
||||
this:
|
||||
|
||||
emailrelay --as-proxy smarthost:smtp --filter $HOME/bin/addsig --spool-dir $HOME/tmp
|
||||
emailrelay --as-server --port 10025 --spool-dir /tmp
|
||||
|
||||
To use E-MailRelay as a store-and-forward MTA use the "--as-server" switch
|
||||
to start the storage daemon in the background. And then trigger delivery of
|
||||
spooled messages by running emailrelay with the "--as-client" switch followed
|
||||
by the address of the target SMTP server.
|
||||
And then to forward the spooled mail to "smarthost" run something like this:
|
||||
|
||||
For example, to start a storage daemon listening on port 10025 use a command
|
||||
like this:
|
||||
emailrelay --as-client smarthost:smtp --spool-dir /tmp
|
||||
|
||||
emailrelay --as-server --port 10025 --spool-dir $HOME/tmp
|
||||
To get behaviour more like a proxy you can add the "--poll" switch so that
|
||||
messages are forwarded continuously rather than on-demand. This example starts a
|
||||
store-and-forward server that forwards spooled-up e-mail every hour:
|
||||
|
||||
And then to forward the spooled mail to "smarthost" run somthing like this:
|
||||
emailrelay --as-server --poll 3600 --forward-to smarthost:smtp
|
||||
|
||||
emailrelay --as-client smarthost:smtp --spool-dir $HOME/tmp
|
||||
For a proxy server that forwards each message as it is being received, without
|
||||
any delay, you can use the "--as-proxy" mode:
|
||||
|
||||
To run E-MailRelay as a POP server without SMTP you can use a command like this:
|
||||
emailrelay --as-proxy smarthost:smtp
|
||||
|
||||
If you want to edit or filter e-mail as it passes through the proxy then specify
|
||||
your pre-processor program with the "--filter" switch, something like this:
|
||||
|
||||
emailrelay --as-proxy smarthost:smtp --filter /usr/local/bin/addsig
|
||||
|
||||
To run E-MailRelay as a POP server without SMTP use "--pop" and "--no-smtp":
|
||||
|
||||
emailrelay --pop --no-smtp --log --close-stderr
|
||||
|
||||
The "emailrelay-submit" utility can be used to put messages straight into the
|
||||
spool directory.
|
||||
spool directory so that the POP clients can fetch them.
|
||||
|
||||
By default E-MailRelay will always reject connections from remote machines. To
|
||||
allow connections from anywhere use the "--remote-clients" switch.
|
||||
Note that by default E-MailRelay will always reject connections from remote
|
||||
machines. To allow connections from anywhere use the "--remote-clients" switch,
|
||||
but please consider the implications if your machine is connected to the
|
||||
internet.
|
||||
|
||||
For more information on the command-line options refer to the reference guide
|
||||
or run:
|
||||
@ -79,10 +86,10 @@ Source code documentation will be generated when building from source if
|
||||
|
||||
Configurations
|
||||
--------------
|
||||
Recent releases were developed on SuSE Linux 9.0 using:
|
||||
* linux 2.6.11
|
||||
* gcc 3.3.3
|
||||
* autoconf 2.59
|
||||
Recent releases were developed on Ubuntu Linux 7.04 using:
|
||||
* linux 2.6.20
|
||||
* gcc 4.1.2
|
||||
* autoconf 2.61
|
||||
|
||||
and on Windows NT4 SP6 using:
|
||||
* MSVC 6.0 SP3
|
||||
@ -93,7 +100,7 @@ The code was originally developed on SuSE Linux 7.1 using:
|
||||
* glibc 2.2.4 (libc.so.6)
|
||||
* autoconf 2.52
|
||||
|
||||
and to Windows 98 using:
|
||||
and on Windows 98 using:
|
||||
* MSVC 6.0
|
||||
|
||||
Versions of the code have also been built successfully on:
|
||||
@ -108,10 +115,12 @@ Versions of the code have also been built successfully on:
|
||||
* Windows NT 4.0 using MSVC 6.0
|
||||
* Windows NT 4.0 using Cygwin (DLL 1.3.22) and gcc 3.2
|
||||
* Windows NT 4.0 using MinGW 2.0.0 and gcc 3.2
|
||||
* Windows XP using MinGW 3.1.0 gcc 3.4.2
|
||||
|
||||
|
||||
Feedback
|
||||
--------
|
||||
Please feel free to e-mail the author at
|
||||
"mailto:graeme_walker@users.sourceforge.net".
|
||||
"mailto:graeme_walker@users.sourceforge.net" or the SourceForge mailing list
|
||||
"mailto:emailrelay-help@lists.sourceforge.net".
|
||||
|
||||
|
41
acinclude.m4
41
acinclude.m4
@ -1,4 +1,4 @@
|
||||
dnl Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
dnl Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
dnl
|
||||
dnl This program is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU General Public License
|
||||
@ -202,17 +202,42 @@ then
|
||||
fi
|
||||
])
|
||||
|
||||
dnl enable-fastbuild
|
||||
dnl enable-gui
|
||||
dnl
|
||||
AC_DEFUN([ENABLE_FASTBUILD],
|
||||
AC_DEFUN([ENABLE_GUI],
|
||||
[
|
||||
if test "$enable_fastbuild" = "yes"
|
||||
qt4="no"
|
||||
qt4moc="no"
|
||||
if test "$enable_gui" = "no"
|
||||
then
|
||||
CXX="`pwd`/bin/fastbuild.sh"
|
||||
chmod +x "$CXX"
|
||||
AR="`pwd`/bin/fastbuild.sh"
|
||||
RANLIB="true"
|
||||
AC_DEFINE(HAVE_GUI,0,[Define to enable gui code])
|
||||
else
|
||||
PKG_CHECK_MODULES(QT,QtGui >= 4.0.1,[qt4=yes],[AC_MSG_RESULT([no])])
|
||||
if test "$qt4" = "yes"
|
||||
then
|
||||
MOC="${e_qtmoc}"
|
||||
AC_PATH_PROG(MOC,moc)
|
||||
AC_MSG_CHECKING([moc is for qt 4])
|
||||
if test x$GREP = x ; then GREP=grep ; fi
|
||||
if test -x "$MOC" -a "`$MOC -v 2>&1 | $GREP 'Qt 4'`" != "" ; then
|
||||
AC_MSG_RESULT([yes])
|
||||
qt4moc="yes"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
else
|
||||
QT_LIBS=""
|
||||
AC_SUBST(QT_LIBS)
|
||||
fi
|
||||
fi
|
||||
if test "$qt4moc" = "yes"
|
||||
then
|
||||
AC_DEFINE(HAVE_GUI,1,[Define to enable gui code])
|
||||
else
|
||||
AC_DEFINE(HAVE_GUI,0,[Define to enable gui code])
|
||||
fi
|
||||
AC_SUBST(MOC)
|
||||
AM_CONDITIONAL(GUI,test x$enable_gui != xno -a x$qt4moc = xyes )
|
||||
])
|
||||
|
||||
dnl enable-pop
|
||||
|
832
aclocal.m4
vendored
832
aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
@ -18,12 +18,12 @@
|
||||
##
|
||||
#
|
||||
|
||||
EXTRA_DIST = emailrelay-doxygen-filter.sh_ emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js emailrelay-resubmit.js fastbuild.sh emailrelay-submit.sh_
|
||||
noinst_cleanup = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
|
||||
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
|
||||
EXTRA_DIST = emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ mu2docbook.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js emailrelay-resubmit.js emailrelay-submit.sh_
|
||||
noinst_cleanup = emailrelay-test.sh emailrelay-soak.sh
|
||||
noinst_SCRIPTS = emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
|
||||
e_init_SCRIPTS = emailrelay
|
||||
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh emailrelay-submit.sh
|
||||
work_scripts = txt2mu.sh mu2html.sh expand.sh txt2html.sh emailrelay.sh
|
||||
work_scripts = txt2mu.sh mu2html.sh mu2docbook.sh expand.sh txt2html.sh emailrelay.sh
|
||||
|
||||
CLEANFILES = $(noinst_cleanup) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
|
||||
|
||||
|
138
bin/Makefile.in
138
bin/Makefile.in
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -18,15 +18,11 @@
|
||||
#
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -45,20 +41,25 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(e_initdir)" "$(DESTDIR)$(e_examplesdir)"
|
||||
am__installdirs = "$(DESTDIR)$(e_initdir)" \
|
||||
"$(DESTDIR)$(e_examplesdir)"
|
||||
e_initSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
SCRIPTS = $(e_init_SCRIPTS) $(noinst_SCRIPTS)
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
e_examplesDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(e_examples_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -82,9 +83,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -95,10 +98,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -107,53 +110,68 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
EXTRA_DIST = emailrelay-doxygen-filter.sh_ emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js emailrelay-resubmit.js fastbuild.sh emailrelay-submit.sh_
|
||||
noinst_cleanup = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
|
||||
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = emailrelay-test.sh_ emailrelay-soak.sh_ emailrelay.sh_ txt2html.sh_ txt2mu.sh_ mu2html.sh_ mu2docbook.sh_ expand.sh_ emailrelay-notify.sh_ emailrelay-resubmit.sh_ emailrelay-deliver.sh_ emailrelay-process.sh_ emailrelay-runperl.js emailrelay-resubmit.js emailrelay-submit.sh_
|
||||
noinst_cleanup = emailrelay-test.sh emailrelay-soak.sh
|
||||
noinst_SCRIPTS = emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
|
||||
e_init_SCRIPTS = emailrelay
|
||||
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh emailrelay-submit.sh
|
||||
work_scripts = txt2mu.sh mu2html.sh expand.sh txt2html.sh emailrelay.sh
|
||||
work_scripts = txt2mu.sh mu2html.sh mu2docbook.sh expand.sh txt2html.sh emailrelay.sh
|
||||
CLEANFILES = $(noinst_cleanup) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
|
||||
TESTS = emailrelay-test.sh
|
||||
SUFFIXES = .sh_ .sh
|
||||
@ -192,7 +210,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
install-e_initSCRIPTS: $(e_init_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(e_initdir)" || $(mkdir_p) "$(DESTDIR)$(e_initdir)"
|
||||
test -z "$(e_initdir)" || $(MKDIR_P) "$(DESTDIR)$(e_initdir)"
|
||||
@list='$(e_init_SCRIPTS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f $$d$$p; then \
|
||||
@ -209,13 +227,12 @@ uninstall-e_initSCRIPTS:
|
||||
echo " rm -f '$(DESTDIR)$(e_initdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(e_initdir)/$$f"; \
|
||||
done
|
||||
uninstall-info-am:
|
||||
install-e_examplesDATA: $(e_examples_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(e_examplesdir)" || $(mkdir_p) "$(DESTDIR)$(e_examplesdir)"
|
||||
test -z "$(e_examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(e_examplesdir)"
|
||||
@list='$(e_examples_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(e_examplesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(e_examplesdir)/$$f'"; \
|
||||
$(e_examplesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_examplesdir)/$$f"; \
|
||||
done
|
||||
@ -223,7 +240,7 @@ install-e_examplesDATA: $(e_examples_DATA)
|
||||
uninstall-e_examplesDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(e_examples_DATA)'; for p in $$list; do \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(e_examplesdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(e_examplesdir)/$$f"; \
|
||||
done
|
||||
@ -235,7 +252,7 @@ CTAGS:
|
||||
|
||||
|
||||
check-TESTS: $(TESTS)
|
||||
@failed=0; all=0; xfail=0; xpass=0; skip=0; \
|
||||
@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \
|
||||
srcdir=$(srcdir); export srcdir; \
|
||||
list=' $(TESTS) '; \
|
||||
if test -n "$$list"; then \
|
||||
@ -246,7 +263,7 @@ check-TESTS: $(TESTS)
|
||||
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
|
||||
all=`expr $$all + 1`; \
|
||||
case " $(XFAIL_TESTS) " in \
|
||||
*" $$tst "*) \
|
||||
*$$ws$$tst$$ws*) \
|
||||
xpass=`expr $$xpass + 1`; \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "XPASS: $$tst"; \
|
||||
@ -258,7 +275,7 @@ check-TESTS: $(TESTS)
|
||||
elif test $$? -ne 77; then \
|
||||
all=`expr $$all + 1`; \
|
||||
case " $(XFAIL_TESTS) " in \
|
||||
*" $$tst "*) \
|
||||
*$$ws$$tst$$ws*) \
|
||||
xfail=`expr $$xfail + 1`; \
|
||||
echo "XFAIL: $$tst"; \
|
||||
;; \
|
||||
@ -289,41 +306,40 @@ check-TESTS: $(TESTS)
|
||||
skipped=""; \
|
||||
if test "$$skip" -ne 0; then \
|
||||
skipped="($$skip tests were not run)"; \
|
||||
test `echo "$$skipped" | wc -c` -gt `echo "$$banner" | wc -c` && \
|
||||
test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||
dashes="$$skipped"; \
|
||||
fi; \
|
||||
report=""; \
|
||||
if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
|
||||
report="Please report to $(PACKAGE_BUGREPORT)"; \
|
||||
test `echo "$$report" | wc -c` -gt `echo "$$banner" | wc -c` && \
|
||||
test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||
dashes="$$report"; \
|
||||
fi; \
|
||||
dashes=`echo "$$dashes" | sed s/./=/g`; \
|
||||
echo "$$dashes"; \
|
||||
echo "$$banner"; \
|
||||
test -n "$$skipped" && echo "$$skipped"; \
|
||||
test -n "$$report" && echo "$$report"; \
|
||||
test -z "$$skipped" || echo "$$skipped"; \
|
||||
test -z "$$report" || echo "$$report"; \
|
||||
echo "$$dashes"; \
|
||||
test "$$failed" -eq 0; \
|
||||
else :; fi
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -340,7 +356,7 @@ check: check-am
|
||||
all-am: Makefile $(SCRIPTS) $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(e_initdir)" "$(DESTDIR)$(e_examplesdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
@ -362,7 +378,7 @@ clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -388,12 +404,20 @@ info-am:
|
||||
install-data-am: install-data-local install-e_examplesDATA \
|
||||
install-e_initSCRIPTS
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -413,19 +437,23 @@ ps: ps-am
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-e_examplesDATA uninstall-e_initSCRIPTS \
|
||||
uninstall-info-am uninstall-local
|
||||
uninstall-local
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-TESTS check-am clean clean-generic \
|
||||
distclean distclean-generic distdir dvi dvi-am html html-am \
|
||||
info info-am install install-am install-data install-data-am \
|
||||
install-data-local install-e_examplesDATA \
|
||||
install-e_initSCRIPTS install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
install-data-local install-dvi install-dvi-am \
|
||||
install-e_examplesDATA install-e_initSCRIPTS install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-e_examplesDATA uninstall-e_initSCRIPTS \
|
||||
uninstall-info-am uninstall-local
|
||||
uninstall-local
|
||||
|
||||
|
||||
.sh_.sh:
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@ -22,9 +22,7 @@
|
||||
# emailrelay-deliver.sh
|
||||
#
|
||||
# Looks for local mail in the E-MailRelay spool directory, and delivers
|
||||
# it using 'procmail'. Note that the only local mail should be for the local
|
||||
# postmaster, since E-MailRelay will not accept mail for any other
|
||||
# local recipient.
|
||||
# it using 'procmail'.
|
||||
#
|
||||
# usage: emailrelay-deliver.sh [<spool-dir>]
|
||||
#
|
||||
|
@ -1,203 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# 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 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, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# ===
|
||||
#
|
||||
# A doxygen filter.
|
||||
#
|
||||
|
||||
awk="gawk"
|
||||
if test "`echo a | ${awk} '{print}'`" != "a"
|
||||
then
|
||||
awk="nawk"
|
||||
fi 2>/dev/null
|
||||
|
||||
# PreFilter()
|
||||
# Removes banner comments (including legalese) from the top of the file.
|
||||
#
|
||||
PreFilter()
|
||||
{
|
||||
${awk} ' BEGIN {
|
||||
in_start = 1
|
||||
}
|
||||
{
|
||||
if( in_start && !match( $0 , "^//" ) )
|
||||
in_start = 0
|
||||
if( !in_start )
|
||||
print
|
||||
} '
|
||||
}
|
||||
|
||||
# SourceFilter()
|
||||
# Adds doxygen annotation for implementation class comments.
|
||||
#
|
||||
SourceFilter()
|
||||
{
|
||||
${awk} ' BEGIN { in_class_comment = 0 }
|
||||
{
|
||||
start = match( $0 , "// Class:" ) == 1
|
||||
end = match( $0 , "class" ) == 1
|
||||
|
||||
if( !in_class_comment && start )
|
||||
{
|
||||
in_class_comment = 1
|
||||
print "/**"
|
||||
}
|
||||
else if( !in_class_comment )
|
||||
{
|
||||
print
|
||||
}
|
||||
else if( end )
|
||||
{
|
||||
in_class_comment = 0
|
||||
print " */"
|
||||
print
|
||||
}
|
||||
else
|
||||
{
|
||||
sub( "^// Description: " , "" )
|
||||
sub( "^// See also: " , "\\see " )
|
||||
sub( "^//" , "" )
|
||||
printf( " * %s\n" , $0 )
|
||||
}
|
||||
}
|
||||
'
|
||||
}
|
||||
|
||||
# HeaderFilter()
|
||||
# Adds doxygen annotation to header-file comments.
|
||||
#
|
||||
HeaderFilter()
|
||||
{
|
||||
${awk} ' BEGIN {
|
||||
was_comment_line = 0
|
||||
was_code_line = 0
|
||||
re_namespace = "^[[:space:]]*namespace"
|
||||
re_comment = "^[[:space:]]*//"
|
||||
re_code = "^[[:space:]]*///"
|
||||
}
|
||||
{
|
||||
is_namespace_line = match($0,re_namespace)
|
||||
|
||||
is_comment_line = match($0,re_comment)
|
||||
re_comment_length = RLENGTH
|
||||
|
||||
is_code_line = match($0,re_code)
|
||||
re_code_length = RLENGTH
|
||||
|
||||
if( is_namespace_line )
|
||||
{
|
||||
printf( "/*! \\namespace %s */\n" , $2 )
|
||||
}
|
||||
|
||||
if( is_code_line )
|
||||
{
|
||||
sub( "///" , "//" )
|
||||
}
|
||||
|
||||
if( is_comment_line )
|
||||
{
|
||||
indent = substr( $0 , 1 , re_comment_length-2 )
|
||||
sub( "Class: " , "\\class " )
|
||||
sub( "Typedef: .*" , "" )
|
||||
sub( "Description: " , "" )
|
||||
sub( "See also: " , "\\see " )
|
||||
if( was_comment_line )
|
||||
sub( re_comment , indent " " )
|
||||
else if( length(indent) )
|
||||
sub( re_comment , indent "/**<" )
|
||||
else
|
||||
sub( re_comment , indent "/** " )
|
||||
}
|
||||
|
||||
if( is_code_line && !was_code_line )
|
||||
{
|
||||
print indent "\\code"
|
||||
}
|
||||
|
||||
if( was_code_line && !is_code_line )
|
||||
{
|
||||
print indent "\\endcode"
|
||||
}
|
||||
|
||||
if( was_comment_line && !is_comment_line )
|
||||
{
|
||||
print indent "*/"
|
||||
}
|
||||
|
||||
print
|
||||
|
||||
was_comment_line = is_comment_line
|
||||
was_code_line = is_code_line
|
||||
} '
|
||||
}
|
||||
|
||||
# PostFilter()
|
||||
# Deals with nested-class descriptions with a format like "class Foo // comment".
|
||||
#
|
||||
PostFilter()
|
||||
{
|
||||
${awk} '
|
||||
{
|
||||
if( match( $0 , "^[[:space:]]*class[[:space:]][^/]*//" ) ||
|
||||
match( $0 , "^[[:space:]]*union[[:space:]][^/]*//" ) ||
|
||||
match( $0 , "^[[:space:]]*struct[[:space:]][^/]*//" ) )
|
||||
{
|
||||
class = substr( $0 , 1 , RLENGTH-2 )
|
||||
description = substr( $0 , RLENGTH+1 )
|
||||
printf( " /** %s */\n" , description )
|
||||
printf( "%s\n" , class )
|
||||
}
|
||||
else
|
||||
{
|
||||
print
|
||||
}
|
||||
} '
|
||||
}
|
||||
|
||||
BasicFilter()
|
||||
{
|
||||
cat
|
||||
echo '/* \\file */'
|
||||
}
|
||||
|
||||
name="`basename \"${1}\"`"
|
||||
type="`echo \"${name}\" | ${awk} -F . '{print $NF}'`"
|
||||
classes="`fgrep '// Class:' \"${1}\" | wc -l`"
|
||||
|
||||
if test "${name}" = "md5.h" -o "${name}" = "md5.cpp"
|
||||
then
|
||||
cat "${1}"
|
||||
|
||||
elif test "${name}" = "gdef.h" -o "${name}" = "gnet.h"
|
||||
then
|
||||
cat "${1}" | BasicFilter
|
||||
|
||||
elif test "${type}" = "cpp" -a "${classes}" -eq 0
|
||||
then
|
||||
cat "${1}" | BasicFilter
|
||||
|
||||
elif test "${type}" = "cpp" -a "${classes}" -gt 0
|
||||
then
|
||||
cat "${1}" | SourceFilter | PostFilter
|
||||
|
||||
else
|
||||
cat "${1}" | PreFilter | HeaderFilter | PostFilter
|
||||
fi
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,32 +17,26 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// emailrelay-resubmit.js
|
||||
//
|
||||
// Looks for all failed e-mails in the E-MailRelay spool directory
|
||||
// and resubmits them. However, if an e-mail has been retried five
|
||||
// times already then it is not resubmitted again.
|
||||
//
|
||||
// usage: cscript //nologo emailrelay-resubmit.js [<spool-dir>]
|
||||
//
|
||||
///
|
||||
/// \file emailrelay-resubmit.js
|
||||
///
|
||||
|
||||
// configuration
|
||||
//
|
||||
/// configuration
|
||||
///
|
||||
var cfg_store = "__SPOOL_DIR__" ;
|
||||
var cfg_retry_limit = 5 ;
|
||||
var cfg_debug = true ;
|
||||
|
||||
// parse the command line
|
||||
//
|
||||
/// parse the command line
|
||||
///
|
||||
var args = WScript.Arguments
|
||||
if( args.length >= 1 )
|
||||
{
|
||||
cfg_store = args(0) ;
|
||||
}
|
||||
|
||||
// debugging
|
||||
//
|
||||
/// debugging
|
||||
///
|
||||
function debug( line )
|
||||
{
|
||||
if( cfg_debug )
|
||||
@ -51,8 +45,8 @@ function debug( line )
|
||||
}
|
||||
}
|
||||
|
||||
// check the spool directory
|
||||
//
|
||||
/// check the spool directory
|
||||
///
|
||||
var fso = WScript.CreateObject( "Scripting.FileSystemObject" ) ;
|
||||
if( ! fso.FolderExists( cfg_store ) )
|
||||
{
|
||||
@ -60,20 +54,20 @@ if( ! fso.FolderExists( cfg_store ) )
|
||||
WScript.Quit( 1 ) ;
|
||||
}
|
||||
|
||||
// for each file...
|
||||
//
|
||||
/// for each file...
|
||||
///
|
||||
var folder = fso.GetFolder( cfg_store ) ;
|
||||
var re_reason = new RegExp( "MailRelay-Reason: " , "" ) ;
|
||||
var re_bad = new RegExp( ".*\.bad" , "i" ) ;
|
||||
var iter = new Enumerator( folder.Files ) ;
|
||||
for( ; ! iter.atEnd() ; iter.moveNext() )
|
||||
{
|
||||
// if a failed envelope file...
|
||||
///< if a failed envelope file...
|
||||
var path = new String(iter.item()) ;
|
||||
debug( "path: " + path ) ;
|
||||
if( path.match(re_bad) )
|
||||
{
|
||||
// count the failure lines
|
||||
///< count the failure lines
|
||||
var stream = fso.OpenTextFile( path , 1 ) ;
|
||||
var failures = 0 ;
|
||||
while( !stream.AtEndOfStream )
|
||||
@ -89,7 +83,7 @@ for( ; ! iter.atEnd() ; iter.moveNext() )
|
||||
debug( "failures: " + failures ) ;
|
||||
if( failures < cfg_retry_limit )
|
||||
{
|
||||
// remove the ".bad" suffix
|
||||
///< remove the ".bad" suffix
|
||||
var new_path = path.substr( 0 , path.length-4 ) ;
|
||||
debug( "rename: " + path + " -> " + new_path ) ;
|
||||
fso.MoveFile( path , new_path ) ;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,47 +17,28 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// emailrelay-runperl.js
|
||||
//
|
||||
// An example JavaScript wrapper that runs a perl script for E-MailRelay.
|
||||
// The name of the perl script is hard-coded below: edit as necessary.
|
||||
//
|
||||
// This JavaScript can be installed as an E-MailRelay "--filter" program
|
||||
// using an E-MailRelay command-line something like this:
|
||||
//
|
||||
// emailrelay --as-server --filter "c:/winnt/system32/cscript.exe //nologo c:/program\ files/emailrelay/emailrelay-runperl.js"
|
||||
//
|
||||
// Note the use of "cscript.exe" to execute the JavaScript, and the backslash
|
||||
// to escape the space in the path.
|
||||
//
|
||||
// The e-mail's content file is fed to the perl script's standard input.
|
||||
// The perl code is expected to process this to its standard output and then
|
||||
// terminate with a zero exit code.
|
||||
//
|
||||
// The implementation of this JavaScript makes use of "CMD.EXE", which may be
|
||||
// not be available on some versions of Windows.
|
||||
//
|
||||
// Edit the next two lines as necessary, but avoid spaces in paths:
|
||||
///
|
||||
/// \file emailrelay-runperl.js
|
||||
///
|
||||
var cfg_perl="perl -S -T -w"
|
||||
var cfg_perl_script="spamassassin"
|
||||
|
||||
// parse our command line
|
||||
/// parse our command line
|
||||
var args = WScript.Arguments
|
||||
var filename = args(0)
|
||||
|
||||
// prepare a command using CMD.EXE to do file redirection
|
||||
/// prepare a command using CMD.EXE to do file redirection
|
||||
var cmd_in = "\"" + filename + "\""
|
||||
var cmd_out = "\"" + filename + ".tmp\""
|
||||
var cmd_err = "\"" + filename + ".err\""
|
||||
var cmd_perl = "cmd /c " + cfg_perl + " " + cfg_perl_script
|
||||
var cmd = cmd_perl + " < " + cmd_in + " > " + cmd_out + " 2> " + cmd_err
|
||||
|
||||
// run the command
|
||||
/// run the command
|
||||
var sh = WScript.CreateObject("WScript.Shell")
|
||||
var rc = sh.Run( cmd , 0 , true )
|
||||
|
||||
// check the file redirection
|
||||
/// check the file redirection
|
||||
var fs = WScript.CreateObject("Scripting.FileSystemObject")
|
||||
if( !fs.FileExists(filename+".tmp") || !fs.FileExists(filename+".err") )
|
||||
{
|
||||
@ -65,7 +46,7 @@ if( !fs.FileExists(filename+".tmp") || !fs.FileExists(filename+".err") )
|
||||
WScript.Quit( 2 )
|
||||
}
|
||||
|
||||
// success or failure
|
||||
/// success or failure
|
||||
if( rc == 0 )
|
||||
{
|
||||
fs.DeleteFile( filename )
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
108
bin/fastbuild.sh
108
bin/fastbuild.sh
@ -1,108 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# 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 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, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# ===
|
||||
#
|
||||
# fastbuild.sh
|
||||
#
|
||||
# A complier stub for doing fastbuilds, where each executable
|
||||
# is compiled from a single source-file containing a long
|
||||
# list of source-file includes.
|
||||
#
|
||||
# This script will probably not work on weird o/s's. It
|
||||
# was developed on SUSE 9.0.
|
||||
#
|
||||
|
||||
Ar()
|
||||
{
|
||||
echo fastbuild: creating empty library "${2}"
|
||||
touch "${2}"
|
||||
}
|
||||
|
||||
ReallyCompile()
|
||||
{
|
||||
source_="${1}"
|
||||
new_="${2}"
|
||||
shift
|
||||
shift
|
||||
echo fastbuild: compiling "${new_}" instead of "${source_}"
|
||||
g++ `echo $@ | sed "s/${source_}/${new_}/g"`
|
||||
}
|
||||
|
||||
OutputFilter()
|
||||
{
|
||||
tr '\t' ' ' | sed 's/.* -o //' | sed 's/ .*//'
|
||||
}
|
||||
|
||||
Skip()
|
||||
{
|
||||
source_="${1}"
|
||||
shift
|
||||
output_="`echo $@ | OutputFilter`"
|
||||
echo fastbuild: skipping "${source}"
|
||||
touch "${output_}"
|
||||
}
|
||||
|
||||
Compile()
|
||||
{
|
||||
source="`echo $@ | sed 's/.* //'`"
|
||||
case "${source}" in
|
||||
main.cpp) ReallyCompile "${source}" emailrelay-fastbuild.cpp "$@" ;;
|
||||
passwd.cpp) ReallyCompile "${source}" passwd-fastbuild.cpp "$@" ;;
|
||||
submit.cpp) ReallyCompile "${source}" submit-fastbuild.cpp "$@" ;;
|
||||
*) Skip "${source}" "$@" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
ReallyLink()
|
||||
{
|
||||
echo fastbuild: linking $2 into $1
|
||||
g++ -o "${1}" "${2}"
|
||||
}
|
||||
|
||||
Link()
|
||||
{
|
||||
output_="`echo $@ | OutputFilter`"
|
||||
output_name_="`basename \"${output_}\"`"
|
||||
echo fastbuild: linking "${output_name_}"
|
||||
case "${output_name_}" in
|
||||
emailrelay) ReallyLink ${output_} main.o ;;
|
||||
emailrelay-submit) ReallyLink ${output_} submit.o ;;
|
||||
emailrelay-passwd) ReallyLink ${output_} passwd.o ;;
|
||||
*) echo fastbuild: error: unrecognised target binary >&2 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
if test "${1}" = "cru"
|
||||
then
|
||||
Ar "$@"
|
||||
:
|
||||
elif test "`echo $@ | grep '\.cpp *$' | wc -l`" -ne 0
|
||||
then
|
||||
Compile "$@"
|
||||
:
|
||||
elif test "`echo $@ | grep -- '-o *[-a-z][-a-z]* ' | wc -l`" -ne 0
|
||||
then
|
||||
Link "$@"
|
||||
:
|
||||
else
|
||||
echo fastbuild: unrecognised command line
|
||||
g++ "$@"
|
||||
fi
|
||||
|
315
bin/mu2docbook.sh_
Normal file
315
bin/mu2docbook.sh_
Normal file
@ -0,0 +1,315 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# 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 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, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# ===
|
||||
#
|
||||
# mu2docbook.sh
|
||||
#
|
||||
# Mark-up to docbook converter. Converts the output of "txt2mu.sh"
|
||||
# into docbook markup.
|
||||
#
|
||||
# Does some in-line formatting independently of the line-based
|
||||
# mark-up in the input. For example, it converts quoted words into
|
||||
# "<em></em>" tags, and it converts "*foo* [bar]" text into
|
||||
# hypertext links.
|
||||
#
|
||||
# The "-x" flag suppresses the output of the xml header. This is
|
||||
# useful when the output is to be spliced into another document.
|
||||
#
|
||||
# usage: mu2docbook.sh [-a <awk>] [{-x|--head|--tail}] [<title>]
|
||||
#
|
||||
# (If the title is not supplied then the input is copied
|
||||
# to a temporary file in order to extract the H1 header
|
||||
# text for the title.)
|
||||
#
|
||||
|
||||
awk="gawk"
|
||||
if test "${1}" = "-a"
|
||||
then
|
||||
shift
|
||||
if test "${1}" != "" ; then awk="${1}" ; fi
|
||||
shift
|
||||
fi
|
||||
|
||||
full="1"
|
||||
if test "${1}" = "-x"
|
||||
then
|
||||
full="0"
|
||||
shift
|
||||
fi
|
||||
|
||||
op=""
|
||||
if test "${1}" = "--head"
|
||||
then
|
||||
shift
|
||||
op="head"
|
||||
elif test "${1}" = "--tail"
|
||||
then
|
||||
shift
|
||||
op="tail"
|
||||
fi
|
||||
|
||||
title="${1}"
|
||||
|
||||
Head()
|
||||
{
|
||||
echo '' | ${awk} -v prefix="`basename $0`" -v title="${1}" -v full="${2}" '
|
||||
BEGIN {
|
||||
if( full )
|
||||
{
|
||||
dtd_name="-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
dtd_ref="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
|
||||
qq="\""
|
||||
printf( "%s\n" , "<?xml version=\"1.0\"?>" )
|
||||
printf( "<!DOCTYPE article PUBLIC \"%s\" \"%s\">\n" , dtd_name , dtd_ref )
|
||||
|
||||
printf( "<article>\n" )
|
||||
printf( " <articleinfo>\n" ) ;
|
||||
printf( " <title>%s</title>\n" , title )
|
||||
printf( " </articleinfo>\n" )
|
||||
}
|
||||
} '
|
||||
}
|
||||
|
||||
Tail()
|
||||
{
|
||||
echo '' | ${awk} -v prefix="`basename $0`" -v title="${1}" -v full="${2}" '
|
||||
BEGIN {
|
||||
if( full )
|
||||
{
|
||||
printf( "</article>\n" )
|
||||
}
|
||||
} '
|
||||
}
|
||||
|
||||
Body()
|
||||
{
|
||||
${awk} -v prefix="`basename $0`" -v title="${1}" -v full="${2}" '
|
||||
function arg1( type )
|
||||
{
|
||||
sub( "[^,]*," , "" , type )
|
||||
sub( ",.*" , "" , type )
|
||||
return type
|
||||
}
|
||||
function arg2( type )
|
||||
{
|
||||
sub( "[^,]*," , "" , type )
|
||||
sub( "[^,]*," , "" , type )
|
||||
sub( ",.*" , "" , type )
|
||||
return type
|
||||
}
|
||||
function escape( line )
|
||||
{
|
||||
gsub( "&" , "\\&" , line )
|
||||
gsub( "<" , "\\<" , line )
|
||||
gsub( ">" , "\\>" , line )
|
||||
return line
|
||||
}
|
||||
function dequote( line )
|
||||
{
|
||||
quote = "\""
|
||||
not_quote = "[^" quote "]"
|
||||
start_tag="<emphasis>"
|
||||
end_tag="</emphasis>"
|
||||
gsub( quote not_quote "*" quote , start_tag "&" end_tag , line )
|
||||
gsub( start_tag quote , start_tag , line )
|
||||
gsub( quote end_tag , end_tag , line )
|
||||
return line
|
||||
}
|
||||
function fn( line )
|
||||
{
|
||||
gsub( "[^[:space:]][^[:space:]]*\\(\\)" , "<literal>&</literal>" , line )
|
||||
return line
|
||||
}
|
||||
{
|
||||
pos = index( $0 , ":" )
|
||||
type = substr( $0 , 1 , pos )
|
||||
tail = substr( $0 , pos+1 )
|
||||
etail_raw = escape(tail)
|
||||
etail = fn(dequote(escape(tail)))
|
||||
|
||||
# h1
|
||||
if( match(type,"^h1[:,]") )
|
||||
{
|
||||
if( done_h2 )
|
||||
printf( " </section>\n" )
|
||||
if( done_h1 )
|
||||
printf( " </section>\n" )
|
||||
printf( " <section><title>%s</title>\n" , etail )
|
||||
done_h1 = 1
|
||||
done_h2 = 0
|
||||
}
|
||||
|
||||
# h2
|
||||
else if( match(type,"^h2[:,]") )
|
||||
{
|
||||
if( done_h2 )
|
||||
printf( " </section>\n" , etail )
|
||||
printf( " <section><title>%s</title>\n" , etail )
|
||||
done_h2 = 1
|
||||
}
|
||||
|
||||
# item
|
||||
else if( match(type,"^item,1[:,]") )
|
||||
printf( " <itemizedlist>\n <listitem><para>%s</para></listitem>\n" , etail )
|
||||
else if( match(type,"^item[:,]") )
|
||||
printf( " <listitem><para>%s</para></listitem>\n" , etail )
|
||||
else if( match(type,"^item-end[:,]") )
|
||||
printf( " </itemizedlist>\n" , etail )
|
||||
|
||||
# item-numbered
|
||||
else if( match(type,"^item-numbered,1[:,]") )
|
||||
printf( " <orderedlist>\n <listitem><para>%s</para></listitem>\n" , etail )
|
||||
else if( match(type,"^item-numbered[:,]") )
|
||||
printf( " <listitem><para>%s</para></listitem>\n" , etail )
|
||||
else if( match(type,"^item-numbered-end[:,]") )
|
||||
printf( " </orderedlist>\n" , etail )
|
||||
|
||||
# item-outer
|
||||
else if( match(type,"^item-outer,1[:,]") )
|
||||
printf( " <itemizedlist>\n <listitem><para>%s\n" , etail )
|
||||
else if( match(type,"^item-outer[:,]") )
|
||||
printf( " </para></listitem>\n <listitem><para>%s\n" , etail )
|
||||
else if( match(type,"^item-outer-end[:,]") )
|
||||
printf( " </para></listitem>\n </itemizedlist>\n" , etail )
|
||||
|
||||
# item-inner
|
||||
else if( match(type,"^item-inner,1[:,]") )
|
||||
printf( " <itemizedlist>\n <listitem><para>%s</para></listitem>\n" , etail )
|
||||
else if( match(type,"^item-inner[:,]") )
|
||||
printf( " <listitem><para>%s</para></listitem>\n" , etail )
|
||||
else if( match(type,"^item-inner-end[:,]") )
|
||||
printf( " </itemizedlist>\n" , etail )
|
||||
|
||||
# item-name
|
||||
else if( match(type,"^item-name,1[:,]") )
|
||||
printf( " <variablelist>\n <varlistentry><term>%s</term>\n" , etail )
|
||||
else if( match(type,"^item-name[:,]") )
|
||||
printf( " </varlistentry>\n <varlistentry><term>%s</term>\n" , etail )
|
||||
else if( match(type,"^item-name-end[:,]") )
|
||||
printf( " </varlistentry>\n </variablelist>\n" , etail )
|
||||
|
||||
# item-detail
|
||||
else if( match(type,"^item-detail,1[:,]") )
|
||||
printf( " <listitem><para>\n %s\n" , etail )
|
||||
else if( match(type,"^item-detail[:,]") )
|
||||
printf( " %s\n" , etail )
|
||||
else if( match(type,"^item-detail-end[:,]") )
|
||||
printf( " </para></listitem>\n" )
|
||||
else if( match(type,"^item-detail-blank[:,]") )
|
||||
printf( " </para><para>\n" )
|
||||
|
||||
# code
|
||||
else if( match(type,"^code,1[:,]") )
|
||||
printf( " <programlisting>%s" , etail_raw )
|
||||
else if( match(type,"^code[:,]") )
|
||||
printf( "\n%s" , etail_raw )
|
||||
else if( match(type,"^code-end[:,]") )
|
||||
printf( "</programlisting>\n" )
|
||||
|
||||
# text
|
||||
else if( match(type,"^text,1[:,]") )
|
||||
printf( " <para>\n %s\n" , etail )
|
||||
else if( match(type,"^text[:,]") )
|
||||
printf( " %s\n" , etail )
|
||||
else if( match(type,"^text-end[:,]") )
|
||||
printf( " </para>\n" )
|
||||
|
||||
# footer-text
|
||||
else if( match(type,"^footer,1[:,]") )
|
||||
printf( " <para>\n %s\n" , etail )
|
||||
else if( match(type,"^footer[:,]") )
|
||||
printf( " %s\n" , etail )
|
||||
else if( match(type,"^footer-end[:,]") )
|
||||
printf( " </para>\n" )
|
||||
|
||||
# citation-text
|
||||
else if( match(type,"^citation,1[:,]") )
|
||||
printf( " <p class=\"citation\">\n %s\n" , etail )
|
||||
else if( match(type,"^citation[:,]") )
|
||||
printf( " %s\n" , etail )
|
||||
else if( match(type,"^citation-end[:,]") )
|
||||
printf( " </p>\n" )
|
||||
|
||||
# author-text
|
||||
else if( match(type,"^author,1[:,]") )
|
||||
printf( " <para>\n %s\n" , etail )
|
||||
else if( match(type,"^author[:,]") )
|
||||
printf( " %s\n" , etail )
|
||||
else if( match(type,"^author-end[:,]") )
|
||||
printf( " </para>\n" )
|
||||
|
||||
# html
|
||||
else if( match(type,"^html[:,]") )
|
||||
printf( "%s\n" , tail )
|
||||
|
||||
# image
|
||||
else if( match(type,"^image[:,]") )
|
||||
printf( "<graphic fileref=\"%s\"/>\n" , tail )
|
||||
|
||||
# blank
|
||||
else if( match(type,"^blank[:,]") )
|
||||
printf( "\n" )
|
||||
|
||||
# ignore
|
||||
else if( match(type,"^ignore") )
|
||||
printf( "" )
|
||||
|
||||
else if( match(type,"[^[:space:]]") )
|
||||
printf( "%s: unrecognised mark-up tag on line %d: \"%s\"\n" , prefix , NR , type )>"/dev/fd/2"
|
||||
}
|
||||
END {
|
||||
if( done_h2 )
|
||||
printf( " </section>\n" )
|
||||
if( done_h1 )
|
||||
printf( " </section>\n" )
|
||||
} '
|
||||
|
||||
Tail
|
||||
}
|
||||
|
||||
Main()
|
||||
{
|
||||
Head "${title}" "${full}"
|
||||
Body "${title}" "${full}"
|
||||
Tail "${title}" "${full}"
|
||||
}
|
||||
|
||||
Anchorise()
|
||||
{
|
||||
sed 's/\*\([^\*]*\)\* \[\([^]]*\)\]/<ulink url="\2">\1<\/ulink>/g'
|
||||
}
|
||||
|
||||
if test "${op}" = "head"
|
||||
then
|
||||
Head "${title}" "${full}"
|
||||
elif test "${op}" = "tail"
|
||||
then
|
||||
Tail "${title}" "${full}"
|
||||
elif test "${title}" = ""
|
||||
then
|
||||
tmp="`basename $0`.tmp"
|
||||
${awk} '{print}' > ${tmp}
|
||||
title="`${awk} '/^h1/ { sub(\"[^:]*:\",\"\") ; print ; exit }' ${tmp}`"
|
||||
${awk} '{print}' ${tmp} | Main "${title}" "${full}" | Anchorise
|
||||
rm -f ${tmp}
|
||||
else
|
||||
Main "${title}" "${full}" | Anchorise
|
||||
fi
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
@ -16,6 +16,9 @@
|
||||
/* Define if gmtime_r in time.h */
|
||||
#undef HAVE_GMTIME_R
|
||||
|
||||
/* Define to enable gui code */
|
||||
#undef HAVE_GUI
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
@ -72,6 +75,9 @@
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the <zlib.h> header file. */
|
||||
#undef HAVE_ZLIB_H
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
|
28
configure.ac
28
configure.ac
@ -1,4 +1,4 @@
|
||||
dnl Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
dnl Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
dnl
|
||||
dnl This program is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU General Public License
|
||||
@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
|
||||
AC_INIT(src/gsmtp/gsmtp.h)
|
||||
AM_INIT_AUTOMAKE(emailrelay,1.4)
|
||||
AM_INIT_AUTOMAKE(emailrelay,1.5)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
@ -33,6 +33,7 @@ AC_PROG_CXX
|
||||
AC_PROG_RANLIB
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_AWK
|
||||
AC_PROG_GREP
|
||||
AC_CHECK_PROGS(MAKE,make gmake)
|
||||
AC_CHECK_PROGS(AR,ar gar)
|
||||
AC_CHECK_PROGS(GZIP,gzip)
|
||||
@ -46,6 +47,7 @@ dnl
|
||||
AC_LANG_C
|
||||
AC_SEARCH_LIBS(gethostbyname,nsl)
|
||||
AC_SEARCH_LIBS(connect,socket)
|
||||
AC_SEARCH_LIBS(compress2,z)
|
||||
|
||||
dnl ===
|
||||
dnl check for header files, functions and typedefs...
|
||||
@ -55,6 +57,7 @@ AC_HEADER_DIRENT
|
||||
AC_HEADER_TIME
|
||||
AC_CHECK_HEADERS(unistd.h)
|
||||
AC_CHECK_HEADERS(sys/time.h)
|
||||
AC_CHECK_HEADERS(zlib.h)
|
||||
AC_CHECK_FUNCS(glob)
|
||||
AC_LANG_CPLUSPLUS
|
||||
ACLOCAL_TYPE_SOCKLEN_T
|
||||
@ -66,18 +69,17 @@ ACLOCAL_CHECK_GMTIME_R
|
||||
ACLOCAL_CHECK_LOCALTIME_R
|
||||
ACLOCAL_CHECK_SETGROUPS
|
||||
|
||||
dnl ===
|
||||
dnl initialise aclocal/pkg.m4...
|
||||
dnl
|
||||
PKG_PROG_PKG_CONFIG(0.9.0)
|
||||
|
||||
dnl ===
|
||||
dnl "--enable-debug"
|
||||
dnl
|
||||
AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[enable extra debug messages at compile-time (default disabled)]))
|
||||
ENABLE_DEBUG
|
||||
|
||||
dnl ===
|
||||
dnl "--enable-fastbuild"
|
||||
dnl
|
||||
AC_ARG_ENABLE(fastbuild,AC_HELP_STRING([--enable-fastbuild],[enable faster building (default disabled); requires --disable-dependency-tracking]))
|
||||
ENABLE_FASTBUILD
|
||||
|
||||
dnl ===
|
||||
dnl "--enable-pop"
|
||||
dnl
|
||||
@ -90,6 +92,12 @@ dnl
|
||||
AC_ARG_ENABLE(ipv6,AC_HELP_STRING([--enable-ipv6],[enable ipv6 (default disabled)]))
|
||||
ENABLE_IPV6
|
||||
|
||||
dnl ===
|
||||
dnl "--enable-gui"
|
||||
dnl
|
||||
AC_ARG_ENABLE(gui,AC_HELP_STRING([--enable-gui],[enable configuration gui (requires Qt4) (default auto)]))
|
||||
ENABLE_GUI
|
||||
|
||||
dnl ===
|
||||
dnl "--with-workshop"
|
||||
dnl
|
||||
@ -121,6 +129,8 @@ AC_SUBST(e_spooldir)
|
||||
if test "$e_spooldir" = "" ; then e_spooldir="$localstatedir/spool/emailrelay" ; fi
|
||||
AC_SUBST(e_examplesdir)
|
||||
if test "$e_examplesdir" = "" ; then e_examplesdir="$libexecdir" ; fi
|
||||
AC_SUBST(e_qtmoc)
|
||||
if test "$e_qtmoc" = "" ; then e_qtmoc="moc" ; fi
|
||||
ENABLE_FHS
|
||||
|
||||
dnl ===
|
||||
@ -131,5 +141,5 @@ SET_MAKE=""
|
||||
dnl ===
|
||||
dnl generate files...
|
||||
dnl
|
||||
AC_OUTPUT(Makefile src/Makefile src/glib/Makefile src/gnet/Makefile src/gsmtp/Makefile src/gpop/Makefile src/main/Makefile src/win32/Makefile lib/Makefile lib/gcc2.95/Makefile lib/msvc6.0/Makefile lib/sunpro5/Makefile bin/Makefile doc/Makefile etc/Makefile)
|
||||
AC_OUTPUT(Makefile src/Makefile src/glib/Makefile src/gnet/Makefile src/gsmtp/Makefile src/gpop/Makefile src/main/Makefile src/win32/Makefile src/gui/Makefile lib/Makefile lib/gcc2.95/Makefile lib/msvc6.0/Makefile lib/sunpro5/Makefile bin/Makefile doc/Makefile etc/Makefile)
|
||||
|
||||
|
122
depcomp
122
depcomp
@ -1,9 +1,10 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2003-11-08.23
|
||||
scriptversion=2006-10-15.18
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 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
|
||||
@ -17,8 +18,8 @@ scriptversion=2003-11-08.23
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -43,17 +44,18 @@ Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit 0
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit 0
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -61,18 +63,10 @@ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
# `libtool' can also be set to `yes' or `no'.
|
||||
|
||||
if test -z "$depfile"; then
|
||||
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
|
||||
dir=`echo "$object" | sed 's,/.*$,/,'`
|
||||
if test "$dir" = "$object"; then
|
||||
dir=
|
||||
fi
|
||||
# FIXME: should be _deps on DOS.
|
||||
depfile="$dir.deps/$base"
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
@ -98,7 +92,20 @@ gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
@ -283,6 +290,46 @@ icc)
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
@ -294,27 +341,43 @@ tru64)
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1="$dir.libs/$base.lo.d"
|
||||
tmpdepfile2="$dir.libs/$base.d"
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1="$dir$base.o.d"
|
||||
tmpdepfile2="$dir$base.d"
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile1"; then
|
||||
tmpdepfile="$tmpdepfile1"
|
||||
else
|
||||
tmpdepfile="$tmpdepfile2"
|
||||
fi
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
@ -458,7 +521,8 @@ cpp)
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
100
doc/Makefile.am
100
doc/Makefile.am
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
@ -25,64 +25,88 @@ man_files_out=emailrelay.1.gz emailrelay-passwd.1.gz emailrelay-poke.1.gz emailr
|
||||
html_files_in=doxygen_header.html
|
||||
html_files_thru=index.html emailrelay-man.html $(stylesheet)
|
||||
html_files_out=readme.html developer.html reference.html userguide.html windows.html changelog.html
|
||||
docbook_files_out=emailrelay.docbook
|
||||
png_files=gsmtp-classes.png gnet-classes.png sequence-1.png sequence-2.png sequence-3.png sequence-4.png gnet-client.png gsmtp-serverprotocol.png gsmtp-scannerclient.png auth.png
|
||||
|
||||
EXTRA_DIST = $(man_files_in) $(txt_files) $(html_files_in) $(html_files_thru) $(png_files)
|
||||
noinst_SCRIPTS = .dox
|
||||
noinst_SCRIPTS = .dox .docbook
|
||||
man1_MANS = $(man_files_in)
|
||||
#man1_DATA = $(man_files_out)
|
||||
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files)
|
||||
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) doxygen/*
|
||||
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files) $(docbook_files_out)
|
||||
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) $(docbook_files_out) doxygen/* *.db *.mu docbook/*
|
||||
|
||||
SUFFIXES = .txt .html
|
||||
SUFFIXES = .txt .html .db .mu
|
||||
|
||||
filter=$(top_builddir)/bin/emailrelay-doxygen-filter.sh
|
||||
filter_src=$(top_srcdir)/bin/emailrelay-doxygen-filter.sh_
|
||||
converter=$(top_builddir)/bin/txt2html.sh
|
||||
converter_src=$(top_srcdir)/bin/txt2html.sh_
|
||||
converter_helper1=$(top_builddir)/bin/txt2mu.sh
|
||||
converter_helper1_src=$(top_srcdir)/bin/txt2mu.sh_
|
||||
converter_helper2=$(top_builddir)/bin/mu2html.sh
|
||||
converter_helper2_src=$(top_srcdir)/bin/mu2html.sh_
|
||||
converter_helper3=$(top_builddir)/bin/expand.sh
|
||||
converter_helper3_src=$(top_srcdir)/bin/expand.sh_
|
||||
converter_html=$(top_builddir)/bin/txt2html.sh
|
||||
converter_html_src=$(top_srcdir)/bin/txt2html.sh_
|
||||
converter_txt2mu=$(top_builddir)/bin/txt2mu.sh
|
||||
converter_txt2mu_src=$(top_srcdir)/bin/txt2mu.sh_
|
||||
converter_mu2html=$(top_builddir)/bin/mu2html.sh
|
||||
converter_mu2html_src=$(top_srcdir)/bin/mu2html.sh_
|
||||
converter_expand=$(top_builddir)/bin/expand.sh
|
||||
converter_expand_src=$(top_srcdir)/bin/expand.sh_
|
||||
converter_mu2docbook=$(top_builddir)/bin/mu2docbook.sh
|
||||
converter_mu2docbook_src=$(top_srcdir)/bin/mu2docbook.sh_
|
||||
|
||||
.txt.html:
|
||||
$(converter) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
||||
$(converter_html) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
||||
|
||||
$(filter): $(filter_src)
|
||||
cp $(filter_src) $(filter)
|
||||
chmod ugo+x $(filter)
|
||||
.txt.mu:
|
||||
$(converter_txt2mu) -a "$(AWK)" $(top_srcdir)/doc/$*.txt > $*.mu
|
||||
|
||||
$(converter): $(converter_src) $(converter_helper1) $(converter_helper2) $(converter_helper3)
|
||||
cp $(converter_src) $(converter)
|
||||
chmod ugo+x $(converter)
|
||||
.mu.db:
|
||||
$(converter_mu2docbook) -a "$(AWK)" -x < $(top_builddir)/doc/$*.mu > $*.db
|
||||
|
||||
$(converter_helper1): $(converter_helper1_src)
|
||||
cp $(converter_helper1_src) $(converter_helper1)
|
||||
chmod ugo+x $(converter_helper1)
|
||||
$(converter_html): $(converter_html_src) $(converter_txt2mu) $(converter_mu2html) $(converter_expand)
|
||||
cp $(converter_html_src) $(converter_html)
|
||||
chmod ugo+x $(converter_html)
|
||||
|
||||
$(converter_helper2): $(converter_helper2_src)
|
||||
cp $(converter_helper2_src) $(converter_helper2)
|
||||
chmod ugo+x $(converter_helper2)
|
||||
head.db: $(converter_mu2docbook)
|
||||
$(converter_mu2docbook) --head "E-MailRelay" > head.db.tmp && mv -f head.db.tmp head.db
|
||||
|
||||
$(converter_helper3): $(converter_helper3_src)
|
||||
cp $(converter_helper3_src) $(converter_helper3)
|
||||
chmod ugo+x $(converter_helper3)
|
||||
tail.db: $(converter_mu2docbook)
|
||||
$(converter_mu2docbook) --tail > tail.db.tmp && mv -f tail.db.tmp tail.db
|
||||
|
||||
.dox: $(filter)
|
||||
emailrelay.docbook: head.db tail.db userguide.db reference.db developer.db
|
||||
cat head.db userguide.db reference.db developer.db tail.db > emailrelay.docbook
|
||||
|
||||
.docbook: emailrelay.docbook
|
||||
-xmlto -o docbook html emailrelay.docbook && touch .docbook && cp *.png docbook/
|
||||
|
||||
$(converter_docbook): $(converter_docbook_src) $(converter_mu2docbook)
|
||||
cp $(converter_docbook_src) $(converter_db)
|
||||
chmod ugo+x $(converter_docbook)
|
||||
|
||||
$(converter_txt2mu): $(converter_txt2mu_src)
|
||||
cp $(converter_txt2mu_src) $(converter_txt2mu)
|
||||
chmod ugo+x $(converter_txt2mu)
|
||||
|
||||
$(converter_mu2html): $(converter_mu2html_src)
|
||||
cp $(converter_mu2html_src) $(converter_mu2html)
|
||||
chmod ugo+x $(converter_mu2html)
|
||||
|
||||
$(converter_expand): $(converter_expand_src)
|
||||
cp $(converter_expand_src) $(converter_expand)
|
||||
chmod ugo+x $(converter_expand)
|
||||
|
||||
$(converter_mu2docbook): $(converter_mu2docbook_src)
|
||||
cp $(converter_mu2docbook_src) $(converter_mu2docbook)
|
||||
chmod ugo+x $(converter_mu2docbook)
|
||||
|
||||
.dox:
|
||||
if test "$(HAVE_DOXYGEN)" = "yes" ; then cat $(top_srcdir)/src/main/doxygen.cfg | sed "s:__TOP_SRC__:$(top_srcdir):g" | sed "s:__TOP_BUILD__:$(top_builddir):g" | doxygen - && touch .dox ; else echo no doxygen ; fi
|
||||
|
||||
emailrelay-man.html: emailrelay.1
|
||||
if test "$(HAVE_MAN2HTML)" = "yes" ; then man2html emailrelay.1 < /dev/null > emailrelay-man.html.tmp && mv emailrelay-man.html.tmp emailrelay-man.html ; fi
|
||||
|
||||
developer.html reference.html userguide.html: $(converter)
|
||||
developer.html reference.html userguide.html: $(converter_html)
|
||||
|
||||
readme.html: $(top_srcdir)/README $(converter)
|
||||
$(converter) -a "$(AWK)" $(top_srcdir)/README $(stylesheet) > readme.html
|
||||
developer.mu reference.mu userguide.mu: $(converter_txt2mu)
|
||||
|
||||
changelog.html: $(top_srcdir)/ChangeLog $(converter)
|
||||
$(converter) -a "$(AWK)" $(top_srcdir)/ChangeLog $(stylesheet) > changelog.html
|
||||
readme.html: $(top_srcdir)/README $(converter_html)
|
||||
$(converter_html) -a "$(AWK)" $(top_srcdir)/README $(stylesheet) > readme.html
|
||||
|
||||
changelog.html: $(top_srcdir)/ChangeLog $(converter_html)
|
||||
$(converter_html) -a "$(AWK)" $(top_srcdir)/ChangeLog $(stylesheet) > changelog.html
|
||||
|
||||
emailrelay.1.gz : emailrelay.1
|
||||
if test -n "$(GZIP)" ; then $(GZIP) -c $(top_srcdir)/doc/emailrelay.1 > emailrelay.1.gz ; fi
|
||||
|
214
doc/Makefile.in
214
doc/Makefile.in
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -18,15 +18,11 @@
|
||||
#
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -45,7 +41,7 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SCRIPTS = $(noinst_SCRIPTS)
|
||||
@ -55,12 +51,16 @@ man1dir = $(mandir)/man1
|
||||
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(e_docdir)"
|
||||
NROFF = nroff
|
||||
MANS = $(man1_MANS)
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
e_docDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(e_doc_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -84,9 +84,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -97,10 +99,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -109,47 +111,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
stylesheet = emailrelay.css
|
||||
txt_files = developer.txt reference.txt userguide.txt windows.txt
|
||||
man_files_in = emailrelay.1 emailrelay-passwd.1 emailrelay-poke.1 emailrelay-submit.1
|
||||
@ -157,28 +174,28 @@ man_files_out = emailrelay.1.gz emailrelay-passwd.1.gz emailrelay-poke.1.gz emai
|
||||
html_files_in = doxygen_header.html
|
||||
html_files_thru = index.html emailrelay-man.html $(stylesheet)
|
||||
html_files_out = readme.html developer.html reference.html userguide.html windows.html changelog.html
|
||||
docbook_files_out = emailrelay.docbook
|
||||
png_files = gsmtp-classes.png gnet-classes.png sequence-1.png sequence-2.png sequence-3.png sequence-4.png gnet-client.png gsmtp-serverprotocol.png gsmtp-scannerclient.png auth.png
|
||||
EXTRA_DIST = $(man_files_in) $(txt_files) $(html_files_in) $(html_files_thru) $(png_files)
|
||||
noinst_SCRIPTS = .dox
|
||||
noinst_SCRIPTS = .dox .docbook
|
||||
man1_MANS = $(man_files_in)
|
||||
#man1_DATA = $(man_files_out)
|
||||
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files)
|
||||
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) doxygen/*
|
||||
SUFFIXES = .txt .html
|
||||
filter = $(top_builddir)/bin/emailrelay-doxygen-filter.sh
|
||||
filter_src = $(top_srcdir)/bin/emailrelay-doxygen-filter.sh_
|
||||
converter = $(top_builddir)/bin/txt2html.sh
|
||||
converter_src = $(top_srcdir)/bin/txt2html.sh_
|
||||
converter_helper1 = $(top_builddir)/bin/txt2mu.sh
|
||||
converter_helper1_src = $(top_srcdir)/bin/txt2mu.sh_
|
||||
converter_helper2 = $(top_builddir)/bin/mu2html.sh
|
||||
converter_helper2_src = $(top_srcdir)/bin/mu2html.sh_
|
||||
converter_helper3 = $(top_builddir)/bin/expand.sh
|
||||
converter_helper3_src = $(top_srcdir)/bin/expand.sh_
|
||||
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files) $(docbook_files_out)
|
||||
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) $(docbook_files_out) doxygen/* *.db *.mu docbook/*
|
||||
SUFFIXES = .txt .html .db .mu
|
||||
converter_html = $(top_builddir)/bin/txt2html.sh
|
||||
converter_html_src = $(top_srcdir)/bin/txt2html.sh_
|
||||
converter_txt2mu = $(top_builddir)/bin/txt2mu.sh
|
||||
converter_txt2mu_src = $(top_srcdir)/bin/txt2mu.sh_
|
||||
converter_mu2html = $(top_builddir)/bin/mu2html.sh
|
||||
converter_mu2html_src = $(top_srcdir)/bin/mu2html.sh_
|
||||
converter_expand = $(top_builddir)/bin/expand.sh
|
||||
converter_expand_src = $(top_srcdir)/bin/expand.sh_
|
||||
converter_mu2docbook = $(top_builddir)/bin/mu2docbook.sh
|
||||
converter_mu2docbook_src = $(top_srcdir)/bin/mu2docbook.sh_
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .txt .html
|
||||
.SUFFIXES: .txt .html .db .mu
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
@ -208,10 +225,9 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
install-man1: $(man1_MANS) $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
|
||||
test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
@ -256,10 +272,10 @@ uninstall-man1:
|
||||
done
|
||||
install-e_docDATA: $(e_doc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(e_docdir)" || $(mkdir_p) "$(DESTDIR)$(e_docdir)"
|
||||
test -z "$(e_docdir)" || $(MKDIR_P) "$(DESTDIR)$(e_docdir)"
|
||||
@list='$(e_doc_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(e_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||
$(e_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||
done
|
||||
@ -267,7 +283,7 @@ install-e_docDATA: $(e_doc_DATA)
|
||||
uninstall-e_docDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(e_doc_DATA)'; for p in $$list; do \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||
done
|
||||
@ -279,22 +295,21 @@ CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -310,7 +325,7 @@ check: check-am
|
||||
all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(e_docdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
@ -332,7 +347,7 @@ clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -357,12 +372,20 @@ info-am:
|
||||
|
||||
install-data-am: install-data-local install-e_docDATA install-man
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man: install-man1
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -381,59 +404,86 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-e_docDATA uninstall-info-am uninstall-local \
|
||||
uninstall-man
|
||||
uninstall-am: uninstall-e_docDATA uninstall-local uninstall-man
|
||||
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am \
|
||||
install-data-local install-e_docDATA install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-man1 install-strip installcheck installcheck-am \
|
||||
install-data-local install-dvi install-dvi-am \
|
||||
install-e_docDATA install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-man1 install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||
uninstall-am uninstall-e_docDATA uninstall-info-am \
|
||||
uninstall-local uninstall-man uninstall-man1
|
||||
uninstall-am uninstall-e_docDATA uninstall-local uninstall-man \
|
||||
uninstall-man1
|
||||
|
||||
|
||||
.txt.html:
|
||||
$(converter) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
||||
$(converter_html) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
||||
|
||||
$(filter): $(filter_src)
|
||||
cp $(filter_src) $(filter)
|
||||
chmod ugo+x $(filter)
|
||||
.txt.mu:
|
||||
$(converter_txt2mu) -a "$(AWK)" $(top_srcdir)/doc/$*.txt > $*.mu
|
||||
|
||||
$(converter): $(converter_src) $(converter_helper1) $(converter_helper2) $(converter_helper3)
|
||||
cp $(converter_src) $(converter)
|
||||
chmod ugo+x $(converter)
|
||||
.mu.db:
|
||||
$(converter_mu2docbook) -a "$(AWK)" -x < $(top_builddir)/doc/$*.mu > $*.db
|
||||
|
||||
$(converter_helper1): $(converter_helper1_src)
|
||||
cp $(converter_helper1_src) $(converter_helper1)
|
||||
chmod ugo+x $(converter_helper1)
|
||||
$(converter_html): $(converter_html_src) $(converter_txt2mu) $(converter_mu2html) $(converter_expand)
|
||||
cp $(converter_html_src) $(converter_html)
|
||||
chmod ugo+x $(converter_html)
|
||||
|
||||
$(converter_helper2): $(converter_helper2_src)
|
||||
cp $(converter_helper2_src) $(converter_helper2)
|
||||
chmod ugo+x $(converter_helper2)
|
||||
head.db: $(converter_mu2docbook)
|
||||
$(converter_mu2docbook) --head "E-MailRelay" > head.db.tmp && mv -f head.db.tmp head.db
|
||||
|
||||
$(converter_helper3): $(converter_helper3_src)
|
||||
cp $(converter_helper3_src) $(converter_helper3)
|
||||
chmod ugo+x $(converter_helper3)
|
||||
tail.db: $(converter_mu2docbook)
|
||||
$(converter_mu2docbook) --tail > tail.db.tmp && mv -f tail.db.tmp tail.db
|
||||
|
||||
.dox: $(filter)
|
||||
emailrelay.docbook: head.db tail.db userguide.db reference.db developer.db
|
||||
cat head.db userguide.db reference.db developer.db tail.db > emailrelay.docbook
|
||||
|
||||
.docbook: emailrelay.docbook
|
||||
-xmlto -o docbook html emailrelay.docbook && touch .docbook && cp *.png docbook/
|
||||
|
||||
$(converter_docbook): $(converter_docbook_src) $(converter_mu2docbook)
|
||||
cp $(converter_docbook_src) $(converter_db)
|
||||
chmod ugo+x $(converter_docbook)
|
||||
|
||||
$(converter_txt2mu): $(converter_txt2mu_src)
|
||||
cp $(converter_txt2mu_src) $(converter_txt2mu)
|
||||
chmod ugo+x $(converter_txt2mu)
|
||||
|
||||
$(converter_mu2html): $(converter_mu2html_src)
|
||||
cp $(converter_mu2html_src) $(converter_mu2html)
|
||||
chmod ugo+x $(converter_mu2html)
|
||||
|
||||
$(converter_expand): $(converter_expand_src)
|
||||
cp $(converter_expand_src) $(converter_expand)
|
||||
chmod ugo+x $(converter_expand)
|
||||
|
||||
$(converter_mu2docbook): $(converter_mu2docbook_src)
|
||||
cp $(converter_mu2docbook_src) $(converter_mu2docbook)
|
||||
chmod ugo+x $(converter_mu2docbook)
|
||||
|
||||
.dox:
|
||||
if test "$(HAVE_DOXYGEN)" = "yes" ; then cat $(top_srcdir)/src/main/doxygen.cfg | sed "s:__TOP_SRC__:$(top_srcdir):g" | sed "s:__TOP_BUILD__:$(top_builddir):g" | doxygen - && touch .dox ; else echo no doxygen ; fi
|
||||
|
||||
emailrelay-man.html: emailrelay.1
|
||||
if test "$(HAVE_MAN2HTML)" = "yes" ; then man2html emailrelay.1 < /dev/null > emailrelay-man.html.tmp && mv emailrelay-man.html.tmp emailrelay-man.html ; fi
|
||||
|
||||
developer.html reference.html userguide.html: $(converter)
|
||||
developer.html reference.html userguide.html: $(converter_html)
|
||||
|
||||
readme.html: $(top_srcdir)/README $(converter)
|
||||
$(converter) -a "$(AWK)" $(top_srcdir)/README $(stylesheet) > readme.html
|
||||
developer.mu reference.mu userguide.mu: $(converter_txt2mu)
|
||||
|
||||
changelog.html: $(top_srcdir)/ChangeLog $(converter)
|
||||
$(converter) -a "$(AWK)" $(top_srcdir)/ChangeLog $(stylesheet) > changelog.html
|
||||
readme.html: $(top_srcdir)/README $(converter_html)
|
||||
$(converter_html) -a "$(AWK)" $(top_srcdir)/README $(stylesheet) > readme.html
|
||||
|
||||
changelog.html: $(top_srcdir)/ChangeLog $(converter_html)
|
||||
$(converter_html) -a "$(AWK)" $(top_srcdir)/ChangeLog $(stylesheet) > changelog.html
|
||||
|
||||
emailrelay.1.gz : emailrelay.1
|
||||
if test -n "$(GZIP)" ; then $(GZIP) -c $(top_srcdir)/doc/emailrelay.1 > emailrelay.1.gz ; fi
|
||||
|
@ -72,8 +72,8 @@ State transition diagrams:
|
||||
Sequence diagrams:
|
||||
* *Proxy mode forwarding* [sequence-3.png]
|
||||
* *Scanning* [sequence-4.png]
|
||||
* *ProtocolMessage::prepare() returns false* [sequence-1.png]
|
||||
* *ProtocolMessage::prepare() returns true* [sequence-2.png]
|
||||
* ProtocolMessage::prepare() *returns false* [sequence-1.png]
|
||||
* ProtocolMessage::prepare() *returns true* [sequence-2.png]
|
||||
|
||||
Directory structure
|
||||
-------------------
|
||||
@ -154,27 +154,14 @@ these cases there are three source files per header. For example, "gsocket.cpp",
|
||||
|
||||
Compile-time features
|
||||
---------------------
|
||||
The following compile-time features can be enabled with some effort:
|
||||
Compile-time features can normally be selected with switches passed to the
|
||||
"configure" script. These include the following:
|
||||
|
||||
# IPv6
|
||||
* Debug-level logging ("--enable-debug")
|
||||
* IPv6 (Linux only) ("--enable-ipv6")
|
||||
* Configuration GUI ("--enable-gui")
|
||||
|
||||
IPv6 is supported at compile-time by selecting source files in the "src/gnet"
|
||||
directory ending "_ipv6.cpp" rather than "_ipv4.cpp". The code has been tested
|
||||
to a limited extent on Linux.
|
||||
|
||||
# Verbose logging
|
||||
|
||||
Verbose logging is enabled by defining the pre-processor symbol "_DEBUG".
|
||||
The configure script's "--enable-debug" switch can be used to do this.
|
||||
(See "src/glib/glog.h".)
|
||||
|
||||
# Multiple listening ports
|
||||
|
||||
The server can be made to listen on several different addresses. Look at the
|
||||
"Server" constructor in "src/main/gsmtpserver.cpp", set the boolean variable
|
||||
"normal" to false and then edit the hard-coded address strings as needed. If
|
||||
the addresses need different port numbers then pass them to bind() in the third
|
||||
parameter.
|
||||
Use "./configure --help" to see a complete list.
|
||||
|
||||
Windows build
|
||||
-------------
|
||||
@ -183,15 +170,9 @@ the "emailrelay.dws" workspace.
|
||||
|
||||
Makefiles for the *MinGW* [http://www.mingw.org/] system (gcc on Windows) are
|
||||
also provided. If building from cygwin start by creating a "/mingw" mount to
|
||||
your MinGW installation directory (eg. "mount -u c:/sw/mingw /mingw"), and then
|
||||
your MinGW installation directory (eg. "mount -u c:/opt/mingw /mingw"), and then
|
||||
run "make -f mingw.mak" from the E-MailRelay "src" directory.
|
||||
|
||||
Style
|
||||
-----
|
||||
The commenting style used in header files is compatible with doxygen if passed
|
||||
through the simple awk-based pre-processor "emailrelay-doxygen-filter.sh". A
|
||||
"make" in the "doc" directory will run doxygen if it is found on your path.
|
||||
|
||||
Patterns
|
||||
--------
|
||||
Gang-of-four Design Patterns (ISBN 0-201-63361-2):
|
||||
@ -276,4 +257,4 @@ to reassign a std::auto_ptr<>.
|
||||
|
||||
|
||||
|
||||
Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
|
@ -68,7 +68,7 @@ have been successfully delivered to the next-hop server.
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-a,--admin </B><I>admin-port</I>
|
||||
<DT><B>-a, --admin </B><I><admin-port></I>
|
||||
|
||||
<DD>
|
||||
Enables the administration interface and specifies its listening port number.
|
||||
@ -80,23 +80,23 @@ Enables the terminate command on the admin interface.
|
||||
|
||||
<DD>
|
||||
Disables the smtp vrfy command and sends less verbose smtp responses.
|
||||
<DT><B>-q,--as-client </B><I>host:port</I>
|
||||
<DT><B>-q, --as-client </B><I><host:port></I>
|
||||
|
||||
<DD>
|
||||
Runs as a client, forwarding spooled mail to <host>: equivalent to <I>--log</I> <I>--no-syslog</I> <I>--no-daemon</I> <I>--dont-serve</I> <I>--forward</I> <I>--forward-to</I>.
|
||||
<DT><B>-y,--as-proxy </B><I>host:port</I>
|
||||
<DT><B>-y, --as-proxy </B><I><host:port></I>
|
||||
|
||||
<DD>
|
||||
Runs as a proxy: equivalent to <I>--log</I> <I>--close-stderr</I> <I>--immediate</I> <I>--forward-to</I>.
|
||||
<DT><B>-d, --as-server </B>
|
||||
|
||||
<DD>
|
||||
Runs as a server: equivalent to <I>--log</I> <I>--close-stderr</I> <I>--postmaster</I>.
|
||||
<DT><B>-C,--client-auth </B><I>file</I>
|
||||
Runs as a server: equivalent to <I>--log</I> <I>--close-stderr</I>.
|
||||
<DT><B>-C, --client-auth </B><I><file></I>
|
||||
|
||||
<DD>
|
||||
Enables smtp authentication with remote server, using the given secrets file.
|
||||
<DT><B>-Y,--client-filter </B><I>program</I>
|
||||
<DT><B>-Y, --client-filter </B><I><program></I>
|
||||
|
||||
<DD>
|
||||
Specifies an external program to process messages when they are forwarded.
|
||||
@ -104,7 +104,7 @@ Specifies an external program to process messages when they are forwarded.
|
||||
|
||||
<DD>
|
||||
Closes the standard error stream after start-up.
|
||||
<DT><B>-U,--connection-timeout </B><I>time</I>
|
||||
<DT><B>-U, --connection-timeout </B><I><time></I>
|
||||
|
||||
<DD>
|
||||
Sets the timeout (in seconds) when connecting to a remote server (default is 40).
|
||||
@ -112,7 +112,7 @@ Sets the timeout (in seconds) when connecting to a remote server (default is 40)
|
||||
|
||||
<DD>
|
||||
Generates debug-level logging if compiled-in.
|
||||
<DT><B>-D,--domain </B><I>fqdn</I>
|
||||
<DT><B>-D, --domain </B><I><fqdn></I>
|
||||
|
||||
<DD>
|
||||
Sets an override for the host's fully qualified domain name.
|
||||
@ -120,15 +120,19 @@ Sets an override for the host's fully qualified domain name.
|
||||
|
||||
<DD>
|
||||
Disables acting as a server on any port (part of <I>--as-client</I> and usually used with <I>--forward</I>).
|
||||
<DT><B>-z,--filter </B><I>program</I>
|
||||
<DT><B>-z, --filter </B><I><program></I>
|
||||
|
||||
<DD>
|
||||
Specifies an external program to process messages as they are stored.
|
||||
<DT><B>-W, --filter-timeout </B><I><time></I>
|
||||
|
||||
<DD>
|
||||
Sets the timeout (in seconds) for running the <I>--filter</I> processor.
|
||||
<DT><B>-f, --forward </B>
|
||||
|
||||
<DD>
|
||||
Forwards stored mail on startup (requires <I>--forward-to</I>).
|
||||
<DT><B>-o,--forward-to </B><I>host:port</I>
|
||||
<DT><B>-o, --forward-to </B><I><host:port></I>
|
||||
|
||||
<DD>
|
||||
Specifies the remote smtp server (required by <I>--forward</I>, <I>--poll</I>, <I>--immediate</I> and <I>--admin</I>).
|
||||
@ -140,7 +144,7 @@ Displays help text and exits.
|
||||
|
||||
<DD>
|
||||
Enables immediating forwarding of messages as soon as they are received (requires <I>--forward-to</I>).
|
||||
<DT><B>-I,--interface </B><I>ip-address</I>
|
||||
<DT><B>-I, --interface </B><I><ip-address></I>
|
||||
|
||||
<DD>
|
||||
Defines the listening interface for new connections.
|
||||
@ -163,20 +167,20 @@ Disables listening for smtp connections (usually used with <I>--admin</I> or <I>
|
||||
<DT><B>-n, --no-syslog </B>
|
||||
|
||||
<DD>
|
||||
Disables syslog output.
|
||||
<DT><B>-i,--pid-file </B><I>pid-file</I>
|
||||
Disables syslog output (always overridden by <I>--syslog</I>).
|
||||
<DT><B>-i, --pid-file </B><I><pid-file></I>
|
||||
|
||||
<DD>
|
||||
Defines a file for storing the daemon process-id.
|
||||
<DT><B>-O,--poll </B><I>period</I>
|
||||
<DT><B>-O, --poll </B><I><period></I>
|
||||
|
||||
<DD>
|
||||
Enables polling with the specified period (requires <I>--forward-to</I>).
|
||||
Enables polling of the spool directory for messages to be forwarded with the specified period (requires <I>--forward-to</I>).
|
||||
<DT><B>-B, --pop </B>
|
||||
|
||||
<DD>
|
||||
Enables the pop server if compiled-in.
|
||||
<DT><B>-F,--pop-auth </B><I>file</I>
|
||||
<DT><B>-F, --pop-auth </B><I><file></I>
|
||||
|
||||
<DD>
|
||||
Defines the pop server secrets file (default is <I>/etc/emailrelay.auth</I>).
|
||||
@ -188,47 +192,47 @@ Modifies the pop spool directory according to the user name (requires <I>--pop</
|
||||
|
||||
<DD>
|
||||
Disables message deletion via pop (requires <I>--pop</I>).
|
||||
<DT><B>-E,--pop-port </B><I>port</I>
|
||||
<DT><B>-E, --pop-port </B><I><port></I>
|
||||
|
||||
<DD>
|
||||
Specifies the pop listening port number (requires <I>--pop</I>).
|
||||
<DT><B>-p,--port </B><I>port</I>
|
||||
<DT><B>-p, --port </B><I><port></I>
|
||||
|
||||
<DD>
|
||||
Specifies the smtp listening port number.
|
||||
<DT><B>-P,--postmaster </B>
|
||||
|
||||
<DD>
|
||||
Allows delivery to the postmaster but rejects all other local mailbox addresses.
|
||||
<DT><B>-r, --remote-clients </B>
|
||||
|
||||
<DD>
|
||||
Allows remote clients to connect.
|
||||
<DT><B>-T,--response-timeout </B><I>time</I>
|
||||
<DT><B>-T, --response-timeout </B><I><time></I>
|
||||
|
||||
<DD>
|
||||
Sets the response timeout (in seconds) when talking to a remote server (default is 1800).
|
||||
<DT><B>-R,--scanner </B><I>host:port</I>
|
||||
<DT><B>-R, --scanner </B><I><host:port></I>
|
||||
|
||||
<DD>
|
||||
Specifies an external network server to process messages when they are stored.
|
||||
<DT><B>-S,--server-auth </B><I>file</I>
|
||||
<DT><B>-S, --server-auth </B><I><file></I>
|
||||
|
||||
<DD>
|
||||
Enables authentication of remote clients, using the given secrets file.
|
||||
<DT><B>-s,--spool-dir </B><I>dir</I>
|
||||
<DT><B>-s, --spool-dir </B><I><dir></I>
|
||||
|
||||
<DD>
|
||||
Specifies the spool directory (default is <I>/var/spool/emailrelay</I>).
|
||||
<DT><B>-u,--user </B><I>username</I>
|
||||
<DT><B>-k, --syslog </B>
|
||||
|
||||
<DD>
|
||||
Names the effective user to switch to when started as root (default is <I>daemon</I>).
|
||||
Force syslog output if logging is enabled (overrides <I>--no-syslog</I>).
|
||||
<DT><B>-u, --user </B><I><username></I>
|
||||
|
||||
<DD>
|
||||
Names the effective user to switch to if started as root (default is <I>daemon</I>).
|
||||
<DT><B>-v, --verbose </B>
|
||||
|
||||
<DD>
|
||||
Generates more verbose output (works with <I>--help</I> and <I>--log</I>).
|
||||
<DT><B>-Z,--verifier </B><I>program</I>
|
||||
<DT><B>-Z, --verifier </B><I><program></I>
|
||||
|
||||
<DD>
|
||||
Specifies an external program for address verification.
|
||||
@ -252,40 +256,13 @@ GNU style...
|
||||
/usr/local/libexec/emailrelay
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-deliver.sh
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-notify.sh
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-poke
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-process.sh
|
||||
/usr/local/libexec/emailrelay-*.sh
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-resubmit.js
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-resubmit.sh
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-runperl.js
|
||||
<BR>
|
||||
|
||||
/usr/local/libexec/emailrelay-submit.sh
|
||||
<BR>
|
||||
|
||||
/usr/local/man/man1/emailrelay.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/local/man/man1/emailrelay-passwd.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/local/man/man1/emailrelay-poke.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/local/man/man1/emailrelay-submit.1.gz
|
||||
/usr/local/man/man1/emailrelay*.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/local/sbin/emailrelay
|
||||
@ -297,57 +274,15 @@ GNU style...
|
||||
/usr/local/sbin/emailrelay-submit
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/changelog.gz
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/changelog.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/developer.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/developer.txt
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/emailrelay.css
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/emailrelay-man.html
|
||||
/usr/local/share/emailrelay/doc/*
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/index.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/NEWS
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/*.png
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/README
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/readme.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/reference.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/reference.txt
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/userguide.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/userguide.txt
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/windows.html
|
||||
<BR>
|
||||
|
||||
/usr/local/share/emailrelay/doc/windows.txt
|
||||
<BR>
|
||||
|
||||
/usr/local/var/spool/emailrelay/emailrelay.*.content
|
||||
<BR>
|
||||
|
||||
@ -378,82 +313,19 @@ FHS style...
|
||||
/usr/sbin/emailrelay-submit
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/changelog.gz
|
||||
/usr/share/doc/emailrelay/*
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/changelog.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/developer.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/developer.txt
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/emailrelay.css
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/emailrelay-man.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-notify.sh
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-process.sh
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-resubmit.sh
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-submit.sh
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/index.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/NEWS
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/*.png
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/README
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/readme.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/reference.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/reference.txt
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/userguide.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/userguide.txt
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/windows.html
|
||||
<BR>
|
||||
|
||||
/usr/share/doc/emailrelay/windows.txt
|
||||
<BR>
|
||||
|
||||
/usr/share/man/man1/emailrelay.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/share/man/man1/emailrelay-passwd.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/share/man/man1/emailrelay-poke.1.gz
|
||||
<BR>
|
||||
|
||||
/usr/share/man/man1/emailrelay-submit.1.gz
|
||||
/usr/share/man/man1/emailrelay*.1.gz
|
||||
<BR>
|
||||
|
||||
/var/spool/emailrelay/emailrelay.*.content
|
||||
@ -502,7 +374,7 @@ Graeme Walker, mailto:<A HREF="mailto:graeme_walker@users.sourceforge.net">graem
|
||||
This document was created by
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
|
||||
using the manual pages.<BR>
|
||||
Time: 23:24:49 GMT, January 08, 2006
|
||||
Time: 18:17:41 GMT, April 09, 2007
|
||||
</BODY>
|
||||
</HTML>
|
||||
<!-- Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->
|
||||
<!-- Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\" Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU General Public License
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\" Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU General Public License
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\" Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU General Public License
|
||||
|
161
doc/emailrelay.1
161
doc/emailrelay.1
@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\" Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU General Public License
|
||||
@ -55,7 +55,7 @@ server. Messages are only fully accepted from the sender once they
|
||||
have been successfully delivered to the next-hop server.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-a,--admin \fIadmin-port\fR
|
||||
.B \-a, --admin \fI<admin-port>\fR
|
||||
Enables the administration interface and specifies its listening port number.
|
||||
.TP
|
||||
.B \-Q, --admin-terminate
|
||||
@ -64,43 +64,46 @@ Enables the terminate command on the admin interface.
|
||||
.B \-A, --anonymous
|
||||
Disables the smtp vrfy command and sends less verbose smtp responses.
|
||||
.TP
|
||||
.B \-q,--as-client \fIhost:port\fR
|
||||
.B \-q, --as-client \fI<host:port>\fR
|
||||
Runs as a client, forwarding spooled mail to <host>: equivalent to \fI--log\fR \fI--no-syslog\fR \fI--no-daemon\fR \fI--dont-serve\fR \fI--forward\fR \fI--forward-to\fR.
|
||||
.TP
|
||||
.B \-y,--as-proxy \fIhost:port\fR
|
||||
.B \-y, --as-proxy \fI<host:port>\fR
|
||||
Runs as a proxy: equivalent to \fI--log\fR \fI--close-stderr\fR \fI--immediate\fR \fI--forward-to\fR.
|
||||
.TP
|
||||
.B \-d, --as-server
|
||||
Runs as a server: equivalent to \fI--log\fR \fI--close-stderr\fR \fI--postmaster\fR.
|
||||
Runs as a server: equivalent to \fI--log\fR \fI--close-stderr\fR.
|
||||
.TP
|
||||
.B \-C,--client-auth \fIfile\fR
|
||||
.B \-C, --client-auth \fI<file>\fR
|
||||
Enables smtp authentication with remote server, using the given secrets file.
|
||||
.TP
|
||||
.B \-Y,--client-filter \fIprogram\fR
|
||||
.B \-Y, --client-filter \fI<program>\fR
|
||||
Specifies an external program to process messages when they are forwarded.
|
||||
.TP
|
||||
.B \-e, --close-stderr
|
||||
Closes the standard error stream after start-up.
|
||||
.TP
|
||||
.B \-U,--connection-timeout \fItime\fR
|
||||
.B \-U, --connection-timeout \fI<time>\fR
|
||||
Sets the timeout (in seconds) when connecting to a remote server (default is 40).
|
||||
.TP
|
||||
.B \-g, --debug
|
||||
Generates debug-level logging if compiled-in.
|
||||
.TP
|
||||
.B \-D,--domain \fIfqdn\fR
|
||||
.B \-D, --domain \fI<fqdn>\fR
|
||||
Sets an override for the host's fully qualified domain name.
|
||||
.TP
|
||||
.B \-x, --dont-serve
|
||||
Disables acting as a server on any port (part of \fI--as-client\fR and usually used with \fI--forward\fR).
|
||||
.TP
|
||||
.B \-z,--filter \fIprogram\fR
|
||||
.B \-z, --filter \fI<program>\fR
|
||||
Specifies an external program to process messages as they are stored.
|
||||
.TP
|
||||
.B \-W, --filter-timeout \fI<time>\fR
|
||||
Sets the timeout (in seconds) for running the \fI--filter\fR processor.
|
||||
.TP
|
||||
.B \-f, --forward
|
||||
Forwards stored mail on startup (requires \fI--forward-to\fR).
|
||||
.TP
|
||||
.B \-o,--forward-to \fIhost:port\fR
|
||||
.B \-o, --forward-to \fI<host:port>\fR
|
||||
Specifies the remote smtp server (required by \fI--forward\fR, \fI--poll\fR, \fI--immediate\fR and \fI--admin\fR).
|
||||
.TP
|
||||
.B \-h, --help
|
||||
@ -109,7 +112,7 @@ Displays help text and exits.
|
||||
.B \-m, --immediate
|
||||
Enables immediating forwarding of messages as soon as they are received (requires \fI--forward-to\fR).
|
||||
.TP
|
||||
.B \-I,--interface \fIip-address\fR
|
||||
.B \-I, --interface \fI<ip-address>\fR
|
||||
Defines the listening interface for new connections.
|
||||
.TP
|
||||
.B \-l, --log
|
||||
@ -125,18 +128,18 @@ Does not detach from the terminal.
|
||||
Disables listening for smtp connections (usually used with \fI--admin\fR or \fI--pop\fR).
|
||||
.TP
|
||||
.B \-n, --no-syslog
|
||||
Disables syslog output.
|
||||
Disables syslog output (always overridden by \fI--syslog\fR).
|
||||
.TP
|
||||
.B \-i,--pid-file \fIpid-file\fR
|
||||
.B \-i, --pid-file \fI<pid-file>\fR
|
||||
Defines a file for storing the daemon process-id.
|
||||
.TP
|
||||
.B \-O,--poll \fIperiod\fR
|
||||
Enables polling with the specified period (requires \fI--forward-to\fR).
|
||||
.B \-O, --poll \fI<period>\fR
|
||||
Enables polling of the spool directory for messages to be forwarded with the specified period (requires \fI--forward-to\fR).
|
||||
.TP
|
||||
.B \-B, --pop
|
||||
Enables the pop server if compiled-in.
|
||||
.TP
|
||||
.B \-F,--pop-auth \fIfile\fR
|
||||
.B \-F, --pop-auth \fI<file>\fR
|
||||
Defines the pop server secrets file (default is \fI/etc/emailrelay.auth\fR).
|
||||
.TP
|
||||
.B \-J, --pop-by-name
|
||||
@ -145,37 +148,37 @@ Modifies the pop spool directory according to the user name (requires \fI--pop\f
|
||||
.B \-G, --pop-no-delete
|
||||
Disables message deletion via pop (requires \fI--pop\fR).
|
||||
.TP
|
||||
.B \-E,--pop-port \fIport\fR
|
||||
.B \-E, --pop-port \fI<port>\fR
|
||||
Specifies the pop listening port number (requires \fI--pop\fR).
|
||||
.TP
|
||||
.B \-p,--port \fIport\fR
|
||||
.B \-p, --port \fI<port>\fR
|
||||
Specifies the smtp listening port number.
|
||||
.TP
|
||||
.B \-P,--postmaster
|
||||
Allows delivery to the postmaster but rejects all other local mailbox addresses.
|
||||
.TP
|
||||
.B \-r, --remote-clients
|
||||
Allows remote clients to connect.
|
||||
.TP
|
||||
.B \-T,--response-timeout \fItime\fR
|
||||
.B \-T, --response-timeout \fI<time>\fR
|
||||
Sets the response timeout (in seconds) when talking to a remote server (default is 1800).
|
||||
.TP
|
||||
.B \-R,--scanner \fIhost:port\fR
|
||||
.B \-R, --scanner \fI<host:port>\fR
|
||||
Specifies an external network server to process messages when they are stored.
|
||||
.TP
|
||||
.B \-S,--server-auth \fIfile\fR
|
||||
.B \-S, --server-auth \fI<file>\fR
|
||||
Enables authentication of remote clients, using the given secrets file.
|
||||
.TP
|
||||
.B \-s,--spool-dir \fIdir\fR
|
||||
.B \-s, --spool-dir \fI<dir>\fR
|
||||
Specifies the spool directory (default is \fI/var/spool/emailrelay\fR).
|
||||
.TP
|
||||
.B \-u,--user \fIusername\fR
|
||||
Names the effective user to switch to when started as root (default is \fIdaemon\fR).
|
||||
.B \-k, --syslog
|
||||
Force syslog output if logging is enabled (overrides \fI--no-syslog\fR).
|
||||
.TP
|
||||
.B \-u, --user \fI<username>\fR
|
||||
Names the effective user to switch to if started as root (default is \fIdaemon\fR).
|
||||
.TP
|
||||
.B \-v, --verbose
|
||||
Generates more verbose output (works with \fI--help\fR and \fI--log\fR).
|
||||
.TP
|
||||
.B \-Z,--verifier \fIprogram\fR
|
||||
.B \-Z, --verifier \fI<program>\fR
|
||||
Specifies an external program for address verification.
|
||||
.TP
|
||||
.B \-V, --version
|
||||
@ -189,29 +192,11 @@ GNU style...
|
||||
.br
|
||||
/usr/local/libexec/emailrelay
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-deliver.sh
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-notify.sh
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-poke
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-process.sh
|
||||
/usr/local/libexec/emailrelay-*.sh
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-resubmit.js
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-resubmit.sh
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-runperl.js
|
||||
.br
|
||||
/usr/local/libexec/emailrelay-submit.sh
|
||||
.br
|
||||
/usr/local/man/man1/emailrelay.1.gz
|
||||
.br
|
||||
/usr/local/man/man1/emailrelay-passwd.1.gz
|
||||
.br
|
||||
/usr/local/man/man1/emailrelay-poke.1.gz
|
||||
.br
|
||||
/usr/local/man/man1/emailrelay-submit.1.gz
|
||||
/usr/local/man/man1/emailrelay*.1.gz
|
||||
.br
|
||||
/usr/local/sbin/emailrelay
|
||||
.br
|
||||
@ -219,40 +204,12 @@ GNU style...
|
||||
.br
|
||||
/usr/local/sbin/emailrelay-submit
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/changelog.gz
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/changelog.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/developer.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/developer.txt
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/emailrelay.css
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/emailrelay-man.html
|
||||
/usr/local/share/emailrelay/doc/*
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/index.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/NEWS
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/*.png
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/README
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/readme.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/reference.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/reference.txt
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/userguide.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/userguide.txt
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/windows.html
|
||||
.br
|
||||
/usr/local/share/emailrelay/doc/windows.txt
|
||||
.br
|
||||
/usr/local/var/spool/emailrelay/emailrelay.*.content
|
||||
.br
|
||||
/usr/local/var/spool/emailrelay/emailrelay.*.envelope
|
||||
@ -273,57 +230,15 @@ FHS style...
|
||||
.br
|
||||
/usr/sbin/emailrelay-submit
|
||||
.br
|
||||
/usr/share/doc/emailrelay/changelog.gz
|
||||
/usr/share/doc/emailrelay/*
|
||||
.br
|
||||
/usr/share/doc/emailrelay/changelog.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/developer.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/developer.txt
|
||||
.br
|
||||
/usr/share/doc/emailrelay/emailrelay.css
|
||||
.br
|
||||
/usr/share/doc/emailrelay/emailrelay-man.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
|
||||
.br
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-notify.sh
|
||||
.br
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-process.sh
|
||||
.br
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-resubmit.sh
|
||||
.br
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-submit.sh
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||
.br
|
||||
/usr/share/doc/emailrelay/index.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/NEWS
|
||||
.br
|
||||
/usr/share/doc/emailrelay/*.png
|
||||
.br
|
||||
/usr/share/doc/emailrelay/README
|
||||
.br
|
||||
/usr/share/doc/emailrelay/readme.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/reference.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/reference.txt
|
||||
.br
|
||||
/usr/share/doc/emailrelay/userguide.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/userguide.txt
|
||||
.br
|
||||
/usr/share/doc/emailrelay/windows.html
|
||||
.br
|
||||
/usr/share/doc/emailrelay/windows.txt
|
||||
.br
|
||||
/usr/share/man/man1/emailrelay.1.gz
|
||||
.br
|
||||
/usr/share/man/man1/emailrelay-passwd.1.gz
|
||||
.br
|
||||
/usr/share/man/man1/emailrelay-poke.1.gz
|
||||
.br
|
||||
/usr/share/man/man1/emailrelay-submit.1.gz
|
||||
/usr/share/man/man1/emailrelay*.1.gz
|
||||
.br
|
||||
/var/spool/emailrelay/emailrelay.*.content
|
||||
.br
|
||||
|
@ -87,6 +87,8 @@ h1
|
||||
|
||||
img
|
||||
{
|
||||
border-width: 0px ;
|
||||
border-style: none ; /* check */
|
||||
margin-left: 8% ;
|
||||
}
|
||||
|
||||
@ -210,7 +212,5 @@ span.span-mailto
|
||||
|
||||
#img-sourceforge
|
||||
{
|
||||
border-width: 0px ;
|
||||
border-style: none ; /* check */
|
||||
}
|
||||
|
||||
|
@ -21,4 +21,4 @@
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<!-- Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->
|
||||
<!-- Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved. -->
|
||||
|
@ -29,7 +29,7 @@ where <switch> is:
|
||||
Runs as a proxy: equivalent to "--log --close-stderr --immediate --forward-to".
|
||||
|
||||
# --as-server (-d)
|
||||
Runs as a server: equivalent to "--log --close-stderr --postmaster".
|
||||
Runs as a server: equivalent to "--log --close-stderr".
|
||||
|
||||
# --client-auth (-C)
|
||||
Enables smtp authentication with remote server, using the given secrets file.
|
||||
@ -55,6 +55,9 @@ where <switch> is:
|
||||
# --filter (-z)
|
||||
Specifies an external program to process messages as they are stored.
|
||||
|
||||
# --filter-timeout (-W)
|
||||
Sets the timeout (in seconds) for running the --filter processor.
|
||||
|
||||
# --forward (-f)
|
||||
Forwards stored mail on startup (requires --forward-to).
|
||||
|
||||
@ -83,13 +86,13 @@ where <switch> is:
|
||||
Disables listening for smtp connections (usually used with --admin or --pop).
|
||||
|
||||
# --no-syslog (-n)
|
||||
Disables syslog output.
|
||||
Disables syslog output (always overridden by --syslog).
|
||||
|
||||
# --pid-file (-i)
|
||||
Defines a file for storing the daemon process-id.
|
||||
|
||||
# --poll (-O)
|
||||
Enables polling with the specified period (requires --forward-to).
|
||||
Enables polling of the spool directory for messages to be forwarded with the specified period (requires --forward-to).
|
||||
|
||||
# --pop (-B)
|
||||
Enables the pop server if compiled-in.
|
||||
@ -109,9 +112,6 @@ where <switch> is:
|
||||
# --port (-p)
|
||||
Specifies the smtp listening port number.
|
||||
|
||||
# --postmaster (-P)
|
||||
Allows delivery to the postmaster but rejects all other local mailbox addresses.
|
||||
|
||||
# --remote-clients (-r)
|
||||
Allows remote clients to connect.
|
||||
|
||||
@ -127,8 +127,11 @@ where <switch> is:
|
||||
# --spool-dir (-s)
|
||||
Specifies the spool directory (default is "/var/spool/emailrelay").
|
||||
|
||||
# --syslog (-k)
|
||||
Force syslog output if logging is enabled (overrides --no-syslog).
|
||||
|
||||
# --user (-u)
|
||||
Names the effective user to switch to when started as root (default is "daemon").
|
||||
Names the effective user to switch to if started as root (default is "daemon").
|
||||
|
||||
# --verbose (-v)
|
||||
Generates more verbose output (works with --help and --log).
|
||||
@ -142,26 +145,6 @@ where <switch> is:
|
||||
Under Windows there are a few differences. Use "--help --verbose"
|
||||
to see the complete list.
|
||||
|
||||
If no command-line switches are supplied at all then the default
|
||||
behaviour is:
|
||||
* to run as a daemon, detached from the terminal
|
||||
* listen on the standard SMTP port (25)
|
||||
* store e-mail messages in "/usr/local/var/spool/emailrelay" or "/var/spool/emailrelay"
|
||||
* reject connections from remote clients
|
||||
* disable the administration interface
|
||||
* generate no logging or diagnostic messages
|
||||
|
||||
Adding the "--as-server" switch makes sure that logging is enabled and that the
|
||||
standard error stream is closed.
|
||||
|
||||
To forward spooled messages the "--as-client" switch is provided to run the
|
||||
program
|
||||
* in foreground, exiting when all spooled mail has been processed
|
||||
* taking spooled mail from "/usr/local/var/spool/emailrelay" or "/var/spool/emailrelay"
|
||||
* without listening on any port
|
||||
* with error, warning and information messages sent to stderr
|
||||
* without using syslog
|
||||
|
||||
Message store
|
||||
-------------
|
||||
Mail messages are stored as text files in the configured spool directory. Each
|
||||
@ -187,76 +170,6 @@ a "local" suffix.
|
||||
If a message cannot be forwarded the envelope file is given a "bad" suffix,
|
||||
and the failure reason is written into the file.
|
||||
|
||||
SMTP issues
|
||||
-----------
|
||||
# Authentication:
|
||||
|
||||
The AUTH extension is supported, providing the CRAM-MD5 and LOGIN mechanisms.
|
||||
|
||||
# Local delivery:
|
||||
|
||||
In server mode (ie. with "--postmaster") recipient addresses like
|
||||
"postmaster", "postmaster@localhost" and "postmaster@fqdn" (where "fqdn" is
|
||||
the host's fully qualified domain name) are treated as the local postmaster,
|
||||
resulting in local delivery rather than mail forwarding. Recipient addresses
|
||||
other than "postmaster" addresses with no "at" sign (@) or ending in
|
||||
"@localhost" will be rejected at the time the message is submitted by the
|
||||
client.
|
||||
|
||||
Delivery of mail to a local "postmaster" is a feature of E-MailRelay which is
|
||||
provided for completeness and for comformance to the SMTP specification. But
|
||||
note that the E-MailRelay daemon does not actually deliver mail to the
|
||||
postmaster mailbox. All it does is create an envelope and content file in
|
||||
the spool directory with a ".local" suffix. Some external system, such as a
|
||||
shell script run from cron calling "procmail", should be used to process the
|
||||
".local" files. An example script is provided.
|
||||
|
||||
# Timeouts:
|
||||
|
||||
A simple client-side timeout is implemented which will abort the transaction
|
||||
if the server fails to respond to any of the client's SMTP commands within
|
||||
the given time period.
|
||||
|
||||
# Message loops:
|
||||
|
||||
Message loops are not detected.
|
||||
|
||||
# Eight bit messages:
|
||||
|
||||
The 8BITMIME SMTP extension is supported, however no attempt is made to
|
||||
re-encode 8-bit messages into 7-bit messages if the next-hop server
|
||||
does not.
|
||||
|
||||
Administration interface
|
||||
------------------------
|
||||
If enabled with the "--admin" command line switch, the E-MailRelay server will
|
||||
provide a network interface for performing administration tasks. This is a
|
||||
simple command-line interface which is compatible with "telnet":
|
||||
|
||||
$ emailrelay --as-server --port 125 --forward-to localhost:25 --admin 10026
|
||||
$ telnet localhost 10026
|
||||
E-MailRelay> help
|
||||
E-MailRelay> quit
|
||||
|
||||
The "flush" command is used to get the E-MailRelay server to forward spooled
|
||||
mail to the next SMTP server, as an alternative to running
|
||||
"emailrelay --as-client" as a separate process. In proxy mode it is a way of
|
||||
getting the proxy server to scan the spool-directory for new messages.
|
||||
|
||||
The utility program "emailrelay-poke" can be used to issue the "flush"
|
||||
command to an E-MailRelay server. For example:
|
||||
|
||||
$ emailrelay --as-server --port 125 --forward-to localhost:25 --admin 10026
|
||||
$ emailrelay-poke 10026
|
||||
$ echo $?
|
||||
|
||||
To use the "flush" command the next SMTP server address must have been defined
|
||||
on the "emailrelay" command line at start-up using the "--forward-to" switch.
|
||||
|
||||
Also, the "list" command lists the messages in the spool directory, "info"
|
||||
provides network status information and activity statistics, and "notify"
|
||||
enables asynchronous event notification.
|
||||
|
||||
Mail processing
|
||||
---------------
|
||||
The "--filter" command-line switch allows you to specify a mail pre-processor
|
||||
@ -344,7 +257,7 @@ For Windows this example can be rewritten in JavaScript:
|
||||
Windows pre-processor programs written in JavaScript can be run using
|
||||
"cscript", with an E-MailRelay "--filter" switch something like this:
|
||||
|
||||
--filter "c:/winnt/system32/cscript.exe //nologo c:/program\ files/emailrelay/filter.js"
|
||||
--filter "c:/windows/system32/cscript.exe //nologo c:/program\ files/emailrelay/filter.js"
|
||||
|
||||
Note how the space character in the path is escaped with a backslash.
|
||||
|
||||
@ -355,7 +268,7 @@ message appears as an attachment within a plaintext bearer message.
|
||||
|
||||
E-MailRelay also has a "--client-filter" switch that enables pre-processing of
|
||||
messages just before they are forwarded, rather then after they are stored. The
|
||||
problem is that by then it is too late to notify the SMTP client of any
|
||||
disadvantage is that by then it is too late to notify the SMTP client of any
|
||||
processing failures, so in many applications using "--filter" is more useful.
|
||||
|
||||
Bear in mind the following points when writing "--filter" programs:
|
||||
@ -374,40 +287,33 @@ used to specify the IP address and port that the scanner server is listening
|
||||
on. E-MailRelay connects to this address and then uses a simple line-based
|
||||
dialog as each e-mail message is received. E-MailRelay sends the full path of
|
||||
the message content file, and the scanner is expected to respond with "ok" if
|
||||
the message is to be accepted, or an error message. No source code is provided
|
||||
for a scanner process in this release, but *Python's* [http://python.org]
|
||||
support for threads and sockets would make it a good choice of language.
|
||||
the message is to be accepted, or an error message.
|
||||
|
||||
Address verification
|
||||
--------------------
|
||||
In server mode (or more accurately when "--postmater" is in effect) addresses
|
||||
for incoming e-mails received in "RCPT" or "VRFY" commands are accepted as valid
|
||||
if they contain an at sign ("@") or if they are some sort of local "postmaster"
|
||||
address: "postmaster", "postmaster@localhost" or "postmaster@<fqdn>". Other
|
||||
addresses without an at sign are rejected.
|
||||
|
||||
In proxy mode (more accurately without "--postmaster") all addresses are
|
||||
accepted as valid, whatever they look like.
|
||||
|
||||
This is normally what you want for a proxy or store-and-forward MTA because the
|
||||
delivery address can only be fully verified once the message gets to the last
|
||||
machine in the chain and the message is finally delivered into a mailbox.
|
||||
|
||||
However, the default behaviour can be modified by using an external verifier
|
||||
program, specified with the "--verifier" command-line switch, so that you get
|
||||
to choose which addresses are accepted as valid and which are rejected.
|
||||
By default the E-MailRelay server will accept all addresses for incoming e-mails
|
||||
as valid. However, this default behaviour can be modified by using an external
|
||||
verifier program, specified with the "--verifier" command-line switch, so that
|
||||
you get to choose which addresses are accepted as valid and which are rejected.
|
||||
|
||||
The external verifier program is passed a command-line containing: (1) the full
|
||||
address, (2) the user-name part of the address in upper-case, (3) the host-name
|
||||
part in upper-case, (4) the local host's fully qualified domain name in
|
||||
upper-case, (5) the current "MAIL" command's "FROM:" address or the empty string
|
||||
for the "VRFY" command, (6) the IP address of the client connection, (7) the
|
||||
e-mail address as supplied by the remote client, (2) the user-name part of the
|
||||
address in upper-case, (3) the host-name part in upper-case, (4) the local
|
||||
host's fully qualified domain name in upper-case, (5) the "MAIL" command's
|
||||
"FROM:" address as supplied by the client or the empty string in the case of the
|
||||
"VRFY" command, (6) the IP address of the client connection, (7) the
|
||||
authentication mechanism used by the client ("NONE" if trusted), and (8) either
|
||||
the authentication name or the fourth field from authentication secrets file if
|
||||
a trusted IP address:
|
||||
a trusted IP address.
|
||||
|
||||
So, for example, a verifier script called "myverifier" might be run with the
|
||||
following command-line:
|
||||
|
||||
myverifier me@myhost.mydomain ME MYHOST.MYDOMAIN MYHOST.MYDOMAIN bob@other.net 192.168.0.1 LOGIN bob
|
||||
|
||||
The verifier program is expected to generate two lines of output on the standard
|
||||
output stream and then terminate with a specific exit code.
|
||||
|
||||
For valid non-local addresses the first line of output is ignored, the second
|
||||
line should be copied from the first command-line argument, and the exit
|
||||
value should be one.
|
||||
@ -429,6 +335,9 @@ then exit with a value of zero.
|
||||
echo postmaster
|
||||
exit 0
|
||||
|
||||
(In practice local delivery just means that the message files in the spool
|
||||
directory are copied and given a ".local" filename suffix.)
|
||||
|
||||
For invalid addresses the exit value should be greater than one, and anything
|
||||
written to the standard output is taken as the failure reason. (Only the few
|
||||
few thousand characters are read from the verifier's standard output stream; any
|
||||
@ -453,7 +362,7 @@ If the exit code is 100 then the connection is aborted immediately.
|
||||
exit 100
|
||||
|
||||
In this more complete example all addresses are accepted as long as they contain
|
||||
an at sign:
|
||||
an "at" character:
|
||||
|
||||
#!/bin/sh
|
||||
# address verifier -- accept only if containing an at sign
|
||||
@ -502,6 +411,167 @@ or in JavaScript:
|
||||
If this verifier script is used with a suitable "--server-auth" file then it can
|
||||
be used to prevent open relay without restricting authenticated clients.
|
||||
|
||||
Authentication
|
||||
--------------
|
||||
E-MailRelay supports the SMTP "AUTH" extension, as defined in RFC2554, on both
|
||||
the server-side and client-side.
|
||||
|
||||
The authentication mechanisms currently supported are:
|
||||
# "LOGIN"
|
||||
|
||||
Passwords are stored in clear-text, sent over the network in clear-text, and
|
||||
are replayable. This is a widely used mechanism, but officially obsolete.
|
||||
|
||||
# "CRAM-MD5" mechanism
|
||||
|
||||
Passwords are not stored in clear-text, not sent over the network, and are
|
||||
not replayable. Defined in RFC2195.
|
||||
|
||||
Authentication is enabled with the "--client-auth" and "--server-auth"
|
||||
command-line switches. The switch parameter is the name of a "secrets" file,
|
||||
containing usernames and passwords:
|
||||
|
||||
emailrelay --as-server --server-auth /etc/emailrelay-clients.auth
|
||||
emailrelay --as-client myisp.net:smtp --client-auth /etc/emailrelay-myisp.auth
|
||||
|
||||
The secrets file has a line-based format: blank lines are ignored and the hash
|
||||
character (#) is used for comments.
|
||||
|
||||
Lines have four white-space delimited fields:
|
||||
* "mechanism"
|
||||
* "client-or-server"
|
||||
* "userid"
|
||||
* "secret"
|
||||
|
||||
The "mechanism" field must be "LOGIN", "APOP" or "CRAM-MD5" (case-insensitive);
|
||||
the "client-or-server" field must be "client" or "server"; the "userid" field is
|
||||
xtext-encoded user identifier; and the "secret" field is the xtext-encoded
|
||||
"LOGIN" password, or the "CRAM-MD5" key.
|
||||
|
||||
The "xtext" encoding scheme is defined properly in RFC1891, but basically it
|
||||
says that non alphanumeric characters should be represented in hexadecimal as
|
||||
"+XX".
|
||||
|
||||
The client-side secrets file specified with "--client-auth" is used when
|
||||
E-MailRelay acts as a client to talk to a remove server. The file should contain
|
||||
at least one "LOGIN client" or "CRAM-MD5 client" entry.
|
||||
|
||||
A server-side secrets file specified with "--server-auth" is used when a remote
|
||||
client tries to authenticate with the E-MailRelay server. The file should
|
||||
normally contain several "LOGIN server" or "CRAM-MD5 server" entries.
|
||||
|
||||
The same secrets file may be specified for both "--client-auth" and
|
||||
"--server-auth" switches.
|
||||
|
||||
The "CRAM-MD5" keys can be generated using the "emailrelay-passwd" utility.
|
||||
|
||||
As an example, the following secrets file defines "jsmith" as the username to be
|
||||
used when E-MailRelay authenticates with a remote SMTP server, and defines two
|
||||
usernames ("user1" and "user2") which can be used by clients when they
|
||||
authenticate with the E-MailRelay server:
|
||||
|
||||
#
|
||||
# emailrelay secrets file
|
||||
#
|
||||
LOGIN client jsmith my+20password
|
||||
LOGIN server user1 secret
|
||||
LOGIN server user2 e+3Dmc2
|
||||
|
||||
A "CRAM-MD5" version would look like this:
|
||||
|
||||
#
|
||||
# emailrelay secrets file
|
||||
#
|
||||
CRAM-MD5 client jsmith 688498119.2977922305.1278051807.3015243256.2216875978.2833592318.2902375592.3156808220
|
||||
CRAM-MD5 server user1 4059553961.2316091643.3282746241.1444639637.3735501773.3404060330.2760590371.1201092398
|
||||
CRAM-MD5 server user2 2798539199.3144534242.3784876256.2879973305.2327113479.216533878.2436460291.2361831919
|
||||
|
||||
When using the "LOGIN" mechanism you have to store plaintext passwords in a
|
||||
file. This is a bad thing. You should at least make sure that the secrets file
|
||||
has tight permissions, and that the passwords in it are not also used for
|
||||
anything important.
|
||||
|
||||
On the server side authentication is advertised by E-MailRealy in the response
|
||||
to the SMTP "EHLO" command if the "--server-auth" command-line switch is used.
|
||||
Authentication by the client is then mandatory unless the client's IP address is
|
||||
configured as a trusted address.
|
||||
|
||||
Trusted IP addresses are configured with lines in the secrets file having "NONE"
|
||||
in the first field, "server" in the second field, a wildcarded IP address in
|
||||
the third field, and an arbitrary keyword in the fourth field. The keyword field
|
||||
is passed to any external address verifier program specified by the "--verifier"
|
||||
command-line switch; it is not used for any other purpose.
|
||||
|
||||
For example this secrets file allows any client connecting from the
|
||||
192.168.0.0/24 domain to connect without authentication desipte the
|
||||
"--server-auth" switch:
|
||||
|
||||
#
|
||||
# emailrelay secrets file
|
||||
#
|
||||
NONE server 192.168.0.* localdomain
|
||||
LOGIN server user1 secret
|
||||
LOGIN server user2 e+3Dmc2
|
||||
|
||||
On the client side authentication is performed when E-MailRelay has connected to
|
||||
a server which implements the AUTH extension with one of the supported
|
||||
mechanisms. If client authentication is enabled (with the "--client-auth"
|
||||
switch) but the remote server does not support the AUTH extension, or does not
|
||||
support the LOGIN or CRAM-MD5 mechanism, then E-MailRelay will fail the first
|
||||
message and terminate with an error message.
|
||||
|
||||
Note that some ISPs require separate POP/IMAP authentication before SMTP access
|
||||
from a particular IP address is allowed. This type of POP-before-SMTP
|
||||
authentication can be done outside the E-MailRelay system by POP/IMAP utilities
|
||||
such as "fetchmail".
|
||||
|
||||
Pop server
|
||||
----------
|
||||
If E-MailRelay has been built with POP3 support then the "--help --verbose"
|
||||
output will show several additional command-line switches:
|
||||
# --pop
|
||||
|
||||
Enables the POP3 server.
|
||||
|
||||
# --pop-port <port>
|
||||
|
||||
Changes the POP3 listening port from its default of 110.
|
||||
|
||||
# --pop-auth <path>
|
||||
|
||||
Changes the authentication secrets file. The default is typically
|
||||
"/etc/emailrelay.auth".
|
||||
|
||||
The format of the authentication secrets file is the same as for
|
||||
"--server-auth" and the same file can be used for both SMTP and POP3
|
||||
authentication.
|
||||
|
||||
"APOP server" entries are used for "APOP" authentication, "LOGIN server"
|
||||
entries are used for "USER/PASS" authentication, and "CRAM-MD5" entries are
|
||||
used for "AUTH" authentication.
|
||||
|
||||
Note that the basic POP3 protocol defines only "APOP" and "USER/PASS"
|
||||
authentication, so some POP client programs may not be able to cope with
|
||||
CRAM-MD5 authentication using the POP3 "AUTH" extension.
|
||||
|
||||
# --pop-by-name
|
||||
|
||||
Modifies the POP spool directory according to the name used by the client
|
||||
to authenticate with the E-MailRelay server. The client name is used as a
|
||||
sub-directory off the standard spool directory. So, for example, if a client
|
||||
authenticates as "bob" then the POP3 server will serve messages from the "bob"
|
||||
sub-directory, "/var/spool/emailrelay/bob".
|
||||
|
||||
If E-MailRelay finds only the envelope file in the sub-directory and not the
|
||||
content file then it will look for the content file in the main spool
|
||||
directory, eg. "/var/spool/emailrelay". This feature can be used to save
|
||||
diskspace if serving the same message to multiple POP clients.
|
||||
|
||||
# --pop-no-delete
|
||||
|
||||
Disables message deletion: the POP3 DELE command will appear to succeed, but
|
||||
no files will be deleted from the spool directory.
|
||||
|
||||
Security issues
|
||||
---------------
|
||||
A significant security concern is the use of external mail pre-processors and
|
||||
@ -545,8 +615,7 @@ Some other points are:
|
||||
|
||||
# remote clients
|
||||
|
||||
By default connections to the SMTP and administrative ports will be rejected
|
||||
if they come from remote machines.
|
||||
By default connections will be rejected if they come from remote machines.
|
||||
|
||||
# remote configuration
|
||||
|
||||
@ -561,7 +630,7 @@ Some other points are:
|
||||
# file permissions
|
||||
|
||||
After a normal installation the spool directory is has ownership of
|
||||
"root.daemon" with permissions of "-rwxrwxr-x". Messages files are created
|
||||
"root.daemon" with permissions of "-rwxrwxr-x" and messages files are created
|
||||
with permissions of "-rw-rw----". This allows normal users to list messages
|
||||
files but not read them.
|
||||
|
||||
@ -579,162 +648,35 @@ from somewhere else. [..] Real [..] security lies [..] in end-to-end methods
|
||||
|
||||
The "Authentication" section below also relates to security.
|
||||
|
||||
Authentication
|
||||
--------------
|
||||
E-MailRelay supports the ESMTP "AUTH" extension, as defined in RFC2554, on both
|
||||
the server-side and client-side.
|
||||
Administration interface
|
||||
------------------------
|
||||
If enabled with the "--admin" command line switch, the E-MailRelay server will
|
||||
provide a network interface for performing administration tasks. This is a
|
||||
simple command-line interface which is compatible with "telnet":
|
||||
|
||||
The authentication mechanisms currently supported are:
|
||||
# "LOGIN"
|
||||
$ emailrelay --as-server --port 125 --forward-to localhost:25 --admin 10026
|
||||
$ telnet localhost 10026
|
||||
E-MailRelay> help
|
||||
E-MailRelay> quit
|
||||
|
||||
Passwords are stored in clear-text, sent over the network in clear-text, and
|
||||
are replayable. This is a widely used mechanism, but officially obsolete.
|
||||
The "flush" command is used to get the E-MailRelay server to forward spooled
|
||||
mail to the next SMTP server, as an alternative to running
|
||||
"emailrelay --as-client" as a separate process. In proxy mode it is a way of
|
||||
getting the proxy server to scan the spool-directory for new messages.
|
||||
|
||||
# "CRAM-MD5" mechanism
|
||||
The utility program "emailrelay-poke" can be used to issue the "flush"
|
||||
command to an E-MailRelay server. For example:
|
||||
|
||||
Passwords are not stored in clear-text, not sent over the network, and are
|
||||
not replayable. Defined in RFC2195.
|
||||
$ emailrelay --as-server --port 125 --forward-to localhost:25 --admin 10026
|
||||
$ emailrelay-poke 10026
|
||||
$ echo $?
|
||||
|
||||
Authentication is enabled with the "--client-auth" and "--server-auth"
|
||||
command-line switches. The switch parameter is the name of a "secrets" file,
|
||||
containing usernames and passwords:
|
||||
To use the "flush" command the next SMTP server address must have been defined
|
||||
on the "emailrelay" command line at start-up using the "--forward-to" switch.
|
||||
|
||||
emailrelay --as-server --server-auth /etc/client-secrets.txt
|
||||
emailrelay --as-client myisp.net:smtp --client-auth /etc/myisp-secret.txt
|
||||
|
||||
The secrets file has a line-based format: blank lines are ignored and the hash
|
||||
character (#) is used for comments.
|
||||
|
||||
Lines have four white-space delimited fields:
|
||||
* "mechanism"
|
||||
* "client-or-server"
|
||||
* "userid"
|
||||
* "secret"
|
||||
|
||||
The "mechanism" field must be "LOGIN", "APOP" or "CRAM-MD5" (case-insensitive);
|
||||
the "client-or-server" field must be "client" or "server"; the "userid" field is
|
||||
xtext-encoded user identifier; and the "secret" field is the xtext-encoded
|
||||
"LOGIN" password, or the "CRAM-MD5" key.
|
||||
|
||||
The "xtext" encoding scheme is defined properly in RFC1891, but basically it
|
||||
says that non alphanumeric characters should be represented in hexadecimal as
|
||||
"+XX".
|
||||
|
||||
The client-side secrets file specified with "--client-auth" is used when
|
||||
E-MailRelay talks to a remove server. The file should contain at least one
|
||||
"LOGIN client" or "CRAM-MD5 client" entry.
|
||||
|
||||
A server-side secrets file specified with "--server-auth" is used when a remote
|
||||
client tries to authenticate with E-MailRelay. The file should normally contain
|
||||
several "LOGIN server" or "CRAM-MD5 server" entries.
|
||||
|
||||
The same secrets file may be specified for both "--client-auth" and
|
||||
"--server-auth" switches.
|
||||
|
||||
The "CRAM-MD5" keys can be generated using the "emailrelay-passwd" utility.
|
||||
|
||||
As an example, the following secrets file defines "jsmith" as the username to be
|
||||
used when E-MailRelay authenticates with a remote SMTP server, and defines two
|
||||
usernames ("user1" and "user2") which can be used by clients when they
|
||||
authenticate with the E-MailRelay server:
|
||||
|
||||
#
|
||||
# emailrelay secrets file
|
||||
#
|
||||
LOGIN client jsmith my+20password
|
||||
LOGIN server user1 secret
|
||||
LOGIN server user2 e+3Dmc2
|
||||
|
||||
A "CRAM-MD5" version would look like this:
|
||||
|
||||
#
|
||||
# emailrelay secrets file
|
||||
#
|
||||
CRAM-MD5 client jsmith 688498119.2977922305.1278051807.3015243256.2216875978.2833592318.2902375592.3156808220
|
||||
CRAM-MD5 server user1 4059553961.2316091643.3282746241.1444639637.3735501773.3404060330.2760590371.1201092398
|
||||
CRAM-MD5 server user2 2798539199.3144534242.3784876256.2879973305.2327113479.216533878.2436460291.2361831919
|
||||
|
||||
When using the "LOGIN" you have to store plaintext passwords in a file. This is
|
||||
a bad thing. You should at least make sure that the secrets file has tight
|
||||
permissions, and that the passwords in it are not also used for anything
|
||||
important.
|
||||
|
||||
On the server side authentication is advertised by E-MailRealy in the response
|
||||
to the SMTP "EHLO" command if the "--server-auth" command-line switch is used.
|
||||
Authentication by the client is mandatory unless the client's IP address is
|
||||
configured as a trusted address. If the client does authenticate then the
|
||||
authenticated user-id is stored with the message and then passed on to the next
|
||||
SMTP server using an "AUTH=userid" parameter on the SMTP "MAIL FROM" command.
|
||||
|
||||
Trusted IP addresses are configured with lines in the secrets file having "NONE"
|
||||
in the first field, "server" in the second field, a wildcarded IP address in
|
||||
the third field, and an arbitrary keyword in the fourth field. The keyword
|
||||
is passed to any external address verifier program specified by the "--verifier"
|
||||
command-line switch.
|
||||
|
||||
For example this secrets file allows any client connecting from the
|
||||
192.168.0.0/24 domain to connect without authentication desipte the
|
||||
"--server-auth" switch:
|
||||
|
||||
#
|
||||
# emailrelay secrets file
|
||||
#
|
||||
NONE server 192.168.0.* localdomain
|
||||
LOGIN server user1 secret
|
||||
LOGIN server user2 e+3Dmc2
|
||||
|
||||
On the client side authentication is performed when E-MailRelay has connected to
|
||||
a server which implements the AUTH extension with one of the supported
|
||||
mechanisms. If client authentication is enabled (with the "--client-auth"
|
||||
switch) but the server does not support the AUTH extension, or does not support
|
||||
the LOGIN or CRAM-MD5 mechanism, then E-MailRelay will fail the first message
|
||||
and terminate with an error message.
|
||||
|
||||
Note that some ISPs require separate POP/IMAP authentication before SMTP access
|
||||
from a particular IP address is allowed. This type of POP-before-SMTP
|
||||
authentication can be done outside the E-MailRelay system by POP/IMAP utilities
|
||||
such as "fetchmail".
|
||||
|
||||
Pop server
|
||||
----------
|
||||
If E-MailRelay has been built with POP3 support then the "--help --verbose"
|
||||
output will show several new command-line switches:
|
||||
# --pop
|
||||
|
||||
Enables the POP3 server.
|
||||
|
||||
# --pop-port <port>
|
||||
|
||||
Changes the POP3 listening port from its default of 110.
|
||||
|
||||
# --pop-auth <path>
|
||||
|
||||
Changes the authentication secrets file. The default is typically
|
||||
"/etc/emailrelay.auth".
|
||||
|
||||
The format of the authentication secrets file is the same as for
|
||||
"--server-auth" and the same file can be used for both SMTP and POP3
|
||||
authentication.
|
||||
|
||||
"APOP server" entries are used for "APOP" authentication, "LOGIN server"
|
||||
entries are used for "USER/PASS" authentication, and "CRAM-MD5" entries are
|
||||
used for "AUTH" authentication.
|
||||
|
||||
Note that the basic POP3 protocol defines only "APOP" and "USER/PASS"
|
||||
authentication, so some POP3 client programs may not be able to cope with
|
||||
CRAM-MD5 authentication using the POP3 "AUTH" extension.
|
||||
|
||||
# --pop-by-name
|
||||
|
||||
Modifies the spool directory according to the client authentication name.
|
||||
The client name is used as a sub-directory off the standard spool directory.
|
||||
So, for example, if a client authenticates as "bob" then the POP3 server
|
||||
will serve messages from the "/var/spool/emailrelay/bob" directory.
|
||||
|
||||
# --pop-no-delete
|
||||
|
||||
Disables message deletion. The POP3 DELE command will appear to succeed, but
|
||||
no files will be deleted from the spool directory.
|
||||
Also, the "list" command lists the messages in the spool directory, "info"
|
||||
provides network status information and activity statistics, and "notify"
|
||||
enables asynchronous event notification.
|
||||
|
||||
Files and directories
|
||||
---------------------
|
||||
@ -743,38 +685,15 @@ following locations:
|
||||
* /usr/local/etc/emailrelay.conf
|
||||
* /usr/local/etc/emailrelay.conf.template
|
||||
* /usr/local/libexec/emailrelay
|
||||
* /usr/local/libexec/emailrelay-deliver.sh
|
||||
* /usr/local/libexec/emailrelay-notify.sh
|
||||
* /usr/local/libexec/emailrelay-poke
|
||||
* /usr/local/libexec/emailrelay-process.sh
|
||||
* /usr/local/libexec/emailrelay-resubmit.js
|
||||
* /usr/local/libexec/emailrelay-resubmit.sh
|
||||
* /usr/local/libexec/emailrelay-runperl.js
|
||||
* /usr/local/libexec/emailrelay-submit.sh
|
||||
* /usr/local/man/man1/emailrelay.1.gz
|
||||
* /usr/local/man/man1/emailrelay-passwd.1.gz
|
||||
* /usr/local/man/man1/emailrelay-poke.1.gz
|
||||
* /usr/local/man/man1/emailrelay-submit.1.gz
|
||||
* /usr/local/libexec/emailrelay-*.sh
|
||||
* /usr/local/man/man1/emailrelay*.1.gz
|
||||
* /usr/local/sbin/emailrelay
|
||||
* /usr/local/sbin/emailrelay-passwd
|
||||
* /usr/local/sbin/emailrelay-submit
|
||||
* /usr/local/share/emailrelay/doc/changelog.gz
|
||||
* /usr/local/share/emailrelay/doc/changelog.html
|
||||
* /usr/local/share/emailrelay/doc/developer.html
|
||||
* /usr/local/share/emailrelay/doc/developer.txt
|
||||
* /usr/local/share/emailrelay/doc/emailrelay.css
|
||||
* /usr/local/share/emailrelay/doc/emailrelay-man.html
|
||||
* /usr/local/share/emailrelay/doc/*
|
||||
* /usr/local/share/emailrelay/doc/index.html
|
||||
* /usr/local/share/emailrelay/doc/NEWS
|
||||
* /usr/local/share/emailrelay/doc/*.png
|
||||
* /usr/local/share/emailrelay/doc/README
|
||||
* /usr/local/share/emailrelay/doc/readme.html
|
||||
* /usr/local/share/emailrelay/doc/reference.html
|
||||
* /usr/local/share/emailrelay/doc/reference.txt
|
||||
* /usr/local/share/emailrelay/doc/userguide.html
|
||||
* /usr/local/share/emailrelay/doc/userguide.txt
|
||||
* /usr/local/share/emailrelay/doc/windows.html
|
||||
* /usr/local/share/emailrelay/doc/windows.txt
|
||||
* /usr/local/var/spool/emailrelay/emailrelay.*.content
|
||||
* /usr/local/var/spool/emailrelay/emailrelay.*.envelope
|
||||
|
||||
@ -791,32 +710,11 @@ locations:
|
||||
* /usr/sbin/emailrelay
|
||||
* /usr/sbin/emailrelay-passwd
|
||||
* /usr/sbin/emailrelay-submit
|
||||
* /usr/share/doc/emailrelay/changelog.gz
|
||||
* /usr/share/doc/emailrelay/changelog.html
|
||||
* /usr/share/doc/emailrelay/developer.html
|
||||
* /usr/share/doc/emailrelay/developer.txt
|
||||
* /usr/share/doc/emailrelay/emailrelay.css
|
||||
* /usr/share/doc/emailrelay/emailrelay-man.html
|
||||
* /usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
|
||||
* /usr/share/doc/emailrelay/examples/emailrelay-notify.sh
|
||||
* /usr/share/doc/emailrelay/examples/emailrelay-process.sh
|
||||
* /usr/share/doc/emailrelay/examples/emailrelay-resubmit.sh
|
||||
* /usr/share/doc/emailrelay/examples/emailrelay-submit.sh
|
||||
* /usr/share/doc/emailrelay/*
|
||||
* /usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||
* /usr/share/doc/emailrelay/index.html
|
||||
* /usr/share/doc/emailrelay/NEWS
|
||||
* /usr/share/doc/emailrelay/*.png
|
||||
* /usr/share/doc/emailrelay/README
|
||||
* /usr/share/doc/emailrelay/readme.html
|
||||
* /usr/share/doc/emailrelay/reference.html
|
||||
* /usr/share/doc/emailrelay/reference.txt
|
||||
* /usr/share/doc/emailrelay/userguide.html
|
||||
* /usr/share/doc/emailrelay/userguide.txt
|
||||
* /usr/share/doc/emailrelay/windows.html
|
||||
* /usr/share/doc/emailrelay/windows.txt
|
||||
* /usr/share/man/man1/emailrelay.1.gz
|
||||
* /usr/share/man/man1/emailrelay-passwd.1.gz
|
||||
* /usr/share/man/man1/emailrelay-poke.1.gz
|
||||
* /usr/share/man/man1/emailrelay-submit.1.gz
|
||||
* /usr/share/man/man1/emailrelay*.1.gz
|
||||
* /var/spool/emailrelay/emailrelay.*.content
|
||||
* /var/spool/emailrelay/emailrelay.*.envelope
|
||||
|
||||
@ -838,19 +736,25 @@ and create the E-MailRelay spool directory as "/tmp/spool" rather than
|
||||
"/usr/local/var/spool/emailrelay".
|
||||
|
||||
The default spool directory path which is built into the executables and scripts
|
||||
comes from "configure", via the makefiles. So after running "configure" with a
|
||||
different spool directory do a "make clean" in at least "src/main" and "bin".
|
||||
comes from "configure" via the makefiles.
|
||||
|
||||
Even though the "--enable-fhs" switch overrides all other directory specifiers
|
||||
during the build process, it is still possible to change the installation root
|
||||
directory using "make install DESTDIR=<root>" or "DESTDIR=<root> make -e install".
|
||||
However, this will not affect the default directory paths built into the scripts
|
||||
and executables, so they will have to be explicitly defined at run-time.
|
||||
But note that this will not affect the default spool directory path built into
|
||||
the scripts and executables so the correct spool directory will have to be
|
||||
specified at run-time with the "--spool-dir" switch.
|
||||
|
||||
The "emailrelay" start/stop script in "init.d" creates a pid file in "/var/run"
|
||||
if the directory exists, or in "/tmp" otherwise.
|
||||
If building the configuration GUI then you may need to set the "PKG_CONFIG_PATH"
|
||||
environment variable to point to the ".pc" files in the Qt "lib" directory and
|
||||
set the "e_qtmoc" configure variable to point to the Qt "moc" utility. You
|
||||
may also need to set the correct library directory for Qt if it is wrong in
|
||||
the ".pc" file by setting "LDFLAGS":
|
||||
|
||||
export QT=/usr/local/qt4
|
||||
LDFLAGS=-L$QT/lib PKG_CONFIG_PATH=$QT/lib ./configure --enable-gui e_qtmoc="$QT/bin/moc"
|
||||
|
||||
|
||||
|
||||
|
||||
Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
|
@ -8,11 +8,11 @@ server. It runs on Unix-like operating systems (including Linux), and on
|
||||
Windows.
|
||||
|
||||
When used as proxy server the E-MailRelay program ("emailrelay") runs in the
|
||||
background and accepts e-mail from front-ends (KMail, Outlook etc.) or from
|
||||
the outside world, using the SMTP protocol. As soon as an e-mail message is
|
||||
received it is forwarded on to the next SMTP server for onward delivery. This
|
||||
becomes more useful when you add in your own message processing: as each
|
||||
message is received it can be passed one of your programs for editing,
|
||||
background and accepts e-mail from local e-mail client programs (KMail, Outlook
|
||||
etc.) or from the outside world, using the SMTP protocol. As soon as an e-mail
|
||||
message is received it is forwarded on to the next SMTP server for onward
|
||||
delivery. This becomes more useful when you add in your own message processing:
|
||||
as each message is received it can be passed one of your programs for editing,
|
||||
filtering, encrypting etc.
|
||||
|
||||
When used as a store-and-forward transfer agent E-MailRelay runs in two modes:
|
||||
@ -31,7 +31,7 @@ server, regardless of any message addressing or DNS redirects.
|
||||
|
||||
E-MailRelay is not a delivery agent. Some programs like "fetchmail" send
|
||||
locally-addressed e-mail to the local SMTP server in order to deliver them to
|
||||
local mailboxes. E-MailRelay will not normally do this.
|
||||
local system mailboxes. E-MailRelay will not normally do this.
|
||||
|
||||
Why use it?
|
||||
-----------
|
||||
@ -56,41 +56,47 @@ Typical applications of E-MailRelay include:
|
||||
|
||||
Running E-MailRelay
|
||||
-------------------
|
||||
To run the program as a proxy use the "--as-proxy" command-line switch followed
|
||||
by the address of the target SMTP server. If you want to edit or filter e-mail
|
||||
as it passes through the proxy then specify your pre-processor program with the
|
||||
"--filter" switch. You can optionally change the listening port number using
|
||||
"--port" and the spool directory using "--spool-dir".
|
||||
To use E-MailRelay in store-and-forward mode use the "--as-server" switch to
|
||||
start the storage daemon in the background, and then trigger delivery of spooled
|
||||
messages by running with the "--as-client" switch and the address of the target
|
||||
host.
|
||||
|
||||
For example, to start up a local proxy that passes messages to some "addsig"
|
||||
script and then forwards them to an MTA running on "smarthost", use a command
|
||||
like this:
|
||||
For example, to start a storage daemon listening on port 10025 use a command like
|
||||
this:
|
||||
|
||||
emailrelay --as-proxy smarthost:smtp --filter $HOME/bin/addsig --spool-dir $HOME/tmp
|
||||
emailrelay --as-server --port 10025 --spool-dir /tmp
|
||||
|
||||
To use E-MailRelay as a store-and-forward MTA use the "--as-server" switch
|
||||
to start the storage daemon in the background. And then trigger delivery of
|
||||
spooled messages by running emailrelay with the "--as-client" switch followed
|
||||
by the address of the target SMTP server.
|
||||
And then to forward the spooled mail to "smarthost" run something like this:
|
||||
|
||||
For example, to start a storage daemon listening on port 10025 use a command
|
||||
like this:
|
||||
emailrelay --as-client smarthost:smtp --spool-dir /tmp
|
||||
|
||||
emailrelay --as-server --port 10025 --spool-dir $HOME/tmp
|
||||
To get behaviour more like a proxy you can add the "--poll" switch so that
|
||||
messages are forwarded continuously rather than on-demand. This example starts a
|
||||
store-and-forward server that forwards spooled-up e-mail every hour:
|
||||
|
||||
And then to forward the spooled mail to "smarthost" run somthing like this:
|
||||
emailrelay --as-server --poll 3600 --forward-to smarthost:smtp
|
||||
|
||||
emailrelay --as-client smarthost:smtp --spool-dir $HOME/tmp
|
||||
For a proxy server that forwards each message as it is being received, without
|
||||
any delay, you can use the "--as-proxy" mode:
|
||||
|
||||
To run E-MailRelay as a POP server without SMTP you can use a command like this:
|
||||
emailrelay --as-proxy smarthost:smtp
|
||||
|
||||
If you want to edit or filter e-mail as it passes through the proxy then specify
|
||||
your pre-processor program with the "--filter" switch, something like this:
|
||||
|
||||
emailrelay --as-proxy smarthost:smtp --filter /usr/local/bin/addsig
|
||||
|
||||
To run E-MailRelay as a POP server without SMTP use "--pop" and "--no-smtp":
|
||||
|
||||
emailrelay --pop --no-smtp --log --close-stderr
|
||||
|
||||
The "emailrelay-submit" utility can be used to put messages straight into the
|
||||
spool directory.
|
||||
spool directory so that the POP clients can fetch them.
|
||||
|
||||
By default E-MailRelay will always reject connections from remote machines. To
|
||||
allow connections from anywhere use the "--remote-clients" switch.
|
||||
Note that by default E-MailRelay will always reject connections from remote
|
||||
machines. To allow connections from anywhere use the "--remote-clients" switch,
|
||||
but please consider the implications if your machine is connected to the
|
||||
internet.
|
||||
|
||||
For more information on the command-line options refer to the reference guide
|
||||
or run:
|
||||
@ -188,9 +194,10 @@ If you create "ip-up.local" yourself remember to make it executable.
|
||||
|
||||
Notification of failed e-mails
|
||||
------------------------------
|
||||
If e-mail messages become corrupted or inaccessible within the spool directory
|
||||
then they will get failed within the E-MailRelay system, with the envelope files
|
||||
in the spool directory ending up with a ".bad" suffix.
|
||||
If e-mail messages corrupted or inaccessible within the spool directory
|
||||
(typically becuase the disk is full) then they will get failed within the
|
||||
E-MailRelay system, with the envelope files in the spool directory ending up
|
||||
with a ".bad" suffix.
|
||||
|
||||
If you are not too worried about getting failed mail to bounce, or if you do not
|
||||
have a suitable delivery agent, then a simple check in your ".profile" script
|
||||
@ -312,17 +319,24 @@ stream ("stderr"). To get the server to log onto stderr, replace the
|
||||
"--as-server" command-line switch with "--log --no-syslog". Refer to the
|
||||
reference guide for more information.
|
||||
|
||||
Reporting problems
|
||||
------------------
|
||||
Please report any problems you have, but please always say what operating system
|
||||
and version of E-MailRelay are using, and include as much logging information
|
||||
as possible.
|
||||
|
||||
Preventing open mail relay
|
||||
--------------------------
|
||||
If you are running E-MailRelay as a server with a permanent connection to the
|
||||
Internet it is important to prevent open mail relay. By default open mail
|
||||
relaying is not possible because E-MailRelay does not accept IP connections from
|
||||
remote clients. However, if the "--remote-clients" switch is used then you need
|
||||
to be more careful. One option is to require all clients to authenticate, by
|
||||
using the "--server-auth" switch. But if you need local clients, such as your
|
||||
own e-mail front-end, to connect without authentication then you will need to
|
||||
put those trusted IP addresses in the secrets file with an authentication
|
||||
mechanism of "NONE". Refer to the reference guide for more information.
|
||||
Internet it is important to prevent open mail relay because this can be
|
||||
exploited by spammers. By default open mail relaying is not possible because
|
||||
E-MailRelay does not accept IP connections from remote clients. However, if the
|
||||
"--remote-clients" switch is used then you need to be more careful. One option
|
||||
is to require all clients to authenticate, by using the "--server-auth" switch.
|
||||
But if you need local clients, such as your own e-mail front-end, to connect
|
||||
without authentication then you will need to put those trusted IP addresses in
|
||||
the secrets file with an authentication mechanism of "NONE". Refer to the
|
||||
reference guide for more information.
|
||||
|
||||
Taking it one stage further, you may want to allow clients to connect from any
|
||||
IP address without authentication, but only allow them to send mail to local
|
||||
@ -487,4 +501,4 @@ maximise throughput.
|
||||
|
||||
|
||||
|
||||
Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
|
130
doc/windows.txt
130
doc/windows.txt
@ -1,105 +1,51 @@
|
||||
E-MailRelay Windows installation
|
||||
================================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
E-MailRelay has been developed on Linux and the documentation relates to
|
||||
Unix-like operating systems rather than Microsoft Windows. This document
|
||||
was written from the perspective of setting up E-MailRelay as a
|
||||
store-and-forward MTA on Windows 98 and it may or may not be relevant to more
|
||||
up-to-date versions of Windows.
|
||||
Setup program
|
||||
-------------
|
||||
Installing E-MailRelay on Windows should be straightfowrard if you have
|
||||
self-extracting archive program "emailrelay-setup.exe". Make sure that the setup
|
||||
program is in a writeable directory with plenty of space on the disk because
|
||||
when you run it is will extract an installation GUI program plus dependent DLLs
|
||||
in into the same directory.
|
||||
|
||||
Quick start
|
||||
------------
|
||||
In summary, the Windows installation process is as follows:
|
||||
* Unpack the zip file to "Program Files\emailrelay".
|
||||
* Create a spool directory under "<windir>\spool", eg. "c:\win98\spool\emailrelay".
|
||||
* Create a shortcut to the E-MailRelay executable in "Start->Programs->StartUp".
|
||||
* Add "storage-daemon" configuration options such as "--as-server" to the "StartUp" shortcut's command line.
|
||||
* Create a shortcut to the executable on the taskbar and/or desktop.
|
||||
* Add "forwarding-client" configuration options such as "--as-client smtp.myisp.com:smtp" to the taskbar/desktop shortcut's command line.
|
||||
* Configure your e-mail client (eg. Outlook) to use SMTP on the local machine for outgoing e-mail.
|
||||
* Run the forwarding client from the taskbar/desktop shortcut once connected to the Internet.
|
||||
The installation GUI program will take you through the installation options and
|
||||
then install the run-time files into your chosen directory.
|
||||
|
||||
These steps are described in more detail below.
|
||||
Manual installation
|
||||
-------------------
|
||||
In summary, the manual installation process for Windows for when you do not have
|
||||
the self-extracting setup program, is as follows:
|
||||
* Create a new program directory "Program Files\emailrelay"
|
||||
* Unzip into "Program Files\emailrelay"
|
||||
* Create a new spool directory "<windir>\spool\emailrelay"
|
||||
* Create a new text file, eg. "c:\emailrelay.auth", to contain account details
|
||||
* Add your ISP account details to "emailrelay.auth" with a line like "login client myaccount mypassword"
|
||||
* Drag "emailrelay.exe" onto the desktop to create a shortcut for the server.
|
||||
* Drag again to create a shortcut for the forwarding client.
|
||||
* Add "--as-server --verbose" to the server shortcut properties.
|
||||
* Add "--as-client myisp.net:smtp --hidden --client-auth c:/emailrelay.auth" to the client shortcut.
|
||||
|
||||
On versions of Windows that support services you could also try using Microsoft's
|
||||
"srvany.exe" utility to run emailrelay as a service; you will need to add the
|
||||
"--hidden" and "--no-daemon" switches to the E-MailRelay command-line for this.
|
||||
Move shortcuts to "Startup" folders as necessary. Or try using Microsoft's
|
||||
"srvany.exe" utility to run emailrelay as a service; you will need to use the
|
||||
"--hidden" and "--no-daemon" switches on the E-MailRelay command-line for this.
|
||||
|
||||
Unpacking
|
||||
---------
|
||||
To start the installation process you will need to extract the files from
|
||||
the "zip" archive. If you have "WinZip" installed then double-clicking on
|
||||
the E-MailRelay "zip" file should start WinZip and open the archive.
|
||||
|
||||
From WinZip you can press the "Extract" button, or use the "Actions->Extract"
|
||||
menu option. In the "Extract to" box you can type the full path of a new
|
||||
sub-directory under "Program Files" which will hold the extracted files, eg.
|
||||
"C:\Program Files\emailrelay". WinZip will create the sub-directory
|
||||
("emailrelay") if necessary.
|
||||
|
||||
Server configuration
|
||||
--------------------
|
||||
Once the files are unpacked you need to create a shortcut to the E-MailRelay
|
||||
executable in the Start menu's "StartUp" folder. This will make sure that the
|
||||
E-MailRelay server is started automatically when you next boot the machine and
|
||||
log in.
|
||||
|
||||
One way to do this is to open up the "Program Files\emailrelay" folder using
|
||||
Windows Explorer or "My Computer", and open a second folder window for the
|
||||
Start menu. To open thes second "Start menu" window: (1) right-click on a
|
||||
blank part of the taskbar, (2) select "Properties" from the popup menu, (3)
|
||||
select the "Start Menu Programs" tab, and (4) press the "Advanced..."
|
||||
button. In the Start menu window go down into the "Programs" folder and then
|
||||
into "StartUp". Then simply drag the "emailrelay.exe" file from one window
|
||||
to the other using the right mouse button. When you drop the file, select
|
||||
the "Create Shortcut Here" option on the pop-up menu.
|
||||
|
||||
You can then configure the E-MailRelay server by adding configuration options
|
||||
to the shortcut's command line. The server should work okay without this step,
|
||||
but there may be options you want to add. Refer to the userguide and reference
|
||||
manual for more information on what configuration options are available.
|
||||
|
||||
To add configuration options right-click on the new shortcut which you have
|
||||
created in the "Start menu" window. Select "Properties" from the pop-up menu,
|
||||
and then select the "Shortcut" tab in the properties dialog box. The "Target"
|
||||
box should contain the name of the E-MailRelay executable. Add any additional
|
||||
configuration options after the executable name, separated by a space.
|
||||
|
||||
Client configuration
|
||||
--------------------
|
||||
Once the server is configured the next step is to create an icon on the desktop
|
||||
(or taskbar) which you can use to start the E-MailRelay forwarding client once
|
||||
you are connected to the Internet.
|
||||
|
||||
You can do this by simply dragging the E-MailRelay executable file from the
|
||||
"Program Files\emailrelay" folder onto the desktop. Then right click on the new
|
||||
icon and select "Properties" from the pop-up menu.
|
||||
|
||||
Again the "Target" box should contain the path of the E-MailRelay executable,
|
||||
and you should add configuration options at the end, separated by a space. As a
|
||||
minumum you will need to add "--as-client myisp:smtp", where "myisp" is replaced
|
||||
with the hostname of your ISP's SMTP server.
|
||||
|
||||
Preparation
|
||||
Diagnostics
|
||||
-----------
|
||||
To complete the installation you should create a spool directory to hold your
|
||||
e-mail messages while you are off-line. By default E-MailRelay will look for a
|
||||
directory "<windir>\spool\emailrelay", where "<windir>" is the path of your main
|
||||
windows directory, typically "c:\win98" for Windows 98.
|
||||
* Set the environment variable "GLOGOUTPUT_DIR" to (eg.) "c:\temp" and look for "glog.txt"
|
||||
* Add "--log --log-time --verbose --syslog" to the E-MailRelay command-lines.
|
||||
* Check the event log (run "eventvwr.exe") for errors and warnings.
|
||||
* Check the spool directory for ".bad" envelope files -- remove the suffix to retry.
|
||||
|
||||
Finally you will need to configure your e-mail client program to use the local
|
||||
E-MailRelay server for outgoing mail. Where it asks for the name of the SMTP
|
||||
server for outgoing mail you should tell it to use "localhost" or "127.0.0.1".
|
||||
Building from source
|
||||
--------------------
|
||||
E-MailRelay can be compiled using Microsoft Visual C++ (MSVC) 6 or MinGW,
|
||||
although the installation/configuration GUI can only be built with MinGW because
|
||||
of its dependence on Qt.
|
||||
|
||||
Uninstall
|
||||
---------
|
||||
To uninstall just delete the files under "Program Files\emailrelay" and
|
||||
"<windir>\spool\emailrelay", and remove any taskbar, desktop or
|
||||
"Start->Programs->StartUp" shortcuts.
|
||||
There is a workspace file for MSVC 6 in the "src" directory. For MinGW please
|
||||
follow the guidelines in "mingw-common.mak" also in the "src" directory.
|
||||
|
||||
|
||||
|
||||
|
||||
Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||
|
@ -1,11 +1,11 @@
|
||||
Summary: Simple e-mail message transfer agent and proxy using SMTP
|
||||
Name: emailrelay
|
||||
Version: 1.4
|
||||
Version: 1.5
|
||||
Release: 1
|
||||
License: GPL
|
||||
Group: System Environment/Daemons
|
||||
URL: http://emailrelay.sourceforge.net/
|
||||
Source: http://kent.dl.sourceforge.net/sourceforge/emailrelay/emailrelay-src-1.4.tar.gz
|
||||
Source: http://kent.dl.sourceforge.net/sourceforge/emailrelay/emailrelay-src-1.5.tar.gz
|
||||
BuildRoot: /tmp/emailrelay-install
|
||||
|
||||
%description
|
||||
@ -20,7 +20,8 @@ Because of its functional simplicity E-MailRelay is easy to configure, typically
|
||||
only requiring the address of the target SMTP server to be put on the command
|
||||
line.
|
||||
|
||||
E-MailRelay can also run as a POP3 server.
|
||||
E-MailRelay can also run as a POP3 server. Messages received over SMTP can be
|
||||
automatically dropped into several independent POP3 mailboxes.
|
||||
|
||||
C++ source code is available for Linux, FreeBSD, MacOS X etc, and Windows.
|
||||
Distribution is under the GNU General Public License.
|
||||
@ -53,32 +54,11 @@ test "$RPM_BUILD_ROOT" = "/" || rm -rf "$RPM_BUILD_ROOT"
|
||||
/usr/sbin/emailrelay
|
||||
/usr/sbin/emailrelay-passwd
|
||||
/usr/sbin/emailrelay-submit
|
||||
/usr/share/doc/emailrelay/changelog.gz
|
||||
/usr/share/doc/emailrelay/changelog.html
|
||||
/usr/share/doc/emailrelay/developer.html
|
||||
/usr/share/doc/emailrelay/developer.txt
|
||||
/usr/share/doc/emailrelay/emailrelay.css
|
||||
/usr/share/doc/emailrelay/emailrelay-man.html
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-deliver.sh
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-notify.sh
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-process.sh
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-resubmit.sh
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-submit.sh
|
||||
/usr/share/doc/emailrelay/*
|
||||
/usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||
/usr/share/doc/emailrelay/index.html
|
||||
/usr/share/doc/emailrelay/NEWS
|
||||
/usr/share/doc/emailrelay/*.png
|
||||
/usr/share/doc/emailrelay/README
|
||||
/usr/share/doc/emailrelay/readme.html
|
||||
/usr/share/doc/emailrelay/reference.html
|
||||
/usr/share/doc/emailrelay/reference.txt
|
||||
/usr/share/doc/emailrelay/userguide.html
|
||||
/usr/share/doc/emailrelay/userguide.txt
|
||||
/usr/share/doc/emailrelay/windows.html
|
||||
/usr/share/doc/emailrelay/windows.txt
|
||||
/usr/share/man/man1/emailrelay.1.gz
|
||||
/usr/share/man/man1/emailrelay-passwd.1.gz
|
||||
/usr/share/man/man1/emailrelay-poke.1.gz
|
||||
/usr/share/man/man1/emailrelay-submit.1.gz
|
||||
/usr/share/man/man1/emailrelay*.1.gz
|
||||
/var/spool/emailrelay/
|
||||
|
||||
%changelog
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
|
113
etc/Makefile.in
113
etc/Makefile.in
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -14,15 +14,11 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -41,18 +37,22 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||
sysconfDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(sysconf_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -76,9 +76,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -89,10 +91,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -101,47 +103,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#
|
||||
#
|
||||
@ -179,13 +196,12 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
install-sysconfDATA: $(sysconf_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
|
||||
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
|
||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||
done
|
||||
@ -193,7 +209,7 @@ install-sysconfDATA: $(sysconf_DATA)
|
||||
uninstall-sysconfDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||
done
|
||||
@ -205,22 +221,21 @@ CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -236,7 +251,7 @@ check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(sysconfdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
@ -257,7 +272,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -284,12 +299,20 @@ install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-sysconfDATA
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -308,16 +331,20 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am uninstall-sysconfDATA
|
||||
uninstall-am: uninstall-sysconfDATA
|
||||
|
||||
.MAKE: install-am install-data-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip install-sysconfDATA installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||
uninstall-am uninstall-info-am uninstall-sysconfDATA
|
||||
install install-am install-data install-data-am \
|
||||
install-data-hook install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip install-sysconfDATA \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-sysconfDATA
|
||||
|
||||
install-data-hook:
|
||||
if test -f "$(DESTDIR)$(sysconfdir)/emailrelay.conf" ; then : ; else cp "$(DESTDIR)$(sysconfdir)/emailrelay.conf.template" "$(DESTDIR)$(sysconfdir)/emailrelay.conf" ; fi
|
||||
|
@ -32,7 +32,8 @@
|
||||
# Format: interface <ip-address>
|
||||
# Description: Specifies an interface to listen on. The default is to listen
|
||||
# on all interfaces (INADDR_ANY). Using a specific interface can make it harder
|
||||
# for clients on other sub-networks to connect, so improving security.
|
||||
# for clients on other sub-networks to connect, so improving security. Up to
|
||||
# three interface addresses can be spefified using comma separators.
|
||||
#
|
||||
#interface 192.168.0.10
|
||||
|
||||
@ -110,7 +111,8 @@
|
||||
|
||||
# Name: poll
|
||||
# Format: poll <period>
|
||||
# Description: Enables polling with the specified period. Requires --forward-to.
|
||||
# Description: Enables polling of the spool directory for new messages with the
|
||||
# specified period. Requires --forward-to.
|
||||
#
|
||||
#poll 120
|
||||
|
||||
|
407
install-sh
407
install-sh
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2004-02-15.20
|
||||
scriptversion=2006-10-14.15
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@ -39,15 +39,24 @@ scriptversion=2004-02-15.20
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
@ -58,10 +67,13 @@ stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=
|
||||
transform_arg=
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
posix_glob=
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
@ -70,23 +82,27 @@ mvcmd="$mvprog"
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dstarg=
|
||||
no_target_directory=
|
||||
|
||||
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
|
||||
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 -d DIRECTORIES...
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
|
||||
In the second, create the directory path DIR.
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
-b=TRANSFORMBASENAME
|
||||
-c copy source (using $cpprog) instead of moving (using $mvprog).
|
||||
-c (ignored)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrp installed files to GROUP.
|
||||
-m MODE $chmod installed files to MODE.
|
||||
-o USER $chown installed files to USER.
|
||||
-s strip installed files (using $stripprog).
|
||||
-t=TRANSFORM
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
@ -94,14 +110,9 @@ Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test -n "$1"; do
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-c) instcmd=$cpprog
|
||||
shift
|
||||
-c) shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
@ -113,11 +124,17 @@ while test -n "$1"; do
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--help) echo "$usage"; exit 0;;
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
-m) mode=$2
|
||||
shift
|
||||
shift
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
@ -129,14 +146,30 @@ while test -n "$1"; do
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
-t) dstarg=$2
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit 0;;
|
||||
-T) no_target_directory=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) # When -d is used, all remaining arguments are directories to create.
|
||||
test -n "$dir_arg" && break
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
@ -148,11 +181,9 @@ while test -n "$1"; do
|
||||
shift # arg
|
||||
dstarg=$arg
|
||||
done
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if test -z "$1"; then
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
@ -162,6 +193,33 @@ if test -z "$1"; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
@ -171,16 +229,12 @@ do
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
src=
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
if test -d "$dst"; then
|
||||
instcmd=:
|
||||
chmodcmd=
|
||||
else
|
||||
instcmd=$mkdirprog
|
||||
fi
|
||||
else
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
@ -202,96 +256,234 @@ do
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
dst=$dst/`basename "$src"`
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dstarg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
# This sed command emulates the dirname command.
|
||||
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if test ! -d "$dstdir"; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix=/ ;;
|
||||
-*) prefix=./ ;;
|
||||
*) prefix= ;;
|
||||
esac
|
||||
|
||||
case $posix_glob in
|
||||
'')
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=true
|
||||
else
|
||||
posix_glob=false
|
||||
fi ;;
|
||||
esac
|
||||
|
||||
oIFS=$IFS
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS=/
|
||||
$posix_glob && set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob && set +f
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=
|
||||
prefixes=
|
||||
|
||||
while test $# -ne 0 ; do
|
||||
pathcomp=$pathcomp$1
|
||||
shift
|
||||
if test ! -d "$pathcomp"; then
|
||||
$mkdirprog "$pathcomp" || lasterr=$?
|
||||
# mkdir can fail with a `File exist' error in case several
|
||||
# install-sh are creating the directory concurrently. This
|
||||
# is OK.
|
||||
test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
pathcomp=$pathcomp/
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
$doit $instcmd "$dst" \
|
||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
||||
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
if test -z "$transformarg"; then
|
||||
dstfile=`basename "$dst"`
|
||||
else
|
||||
dstfile=`basename "$dst" $transformbasename \
|
||||
| sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename.
|
||||
test -z "$dstfile" && dstfile=`basename "$dst"`
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
$doit $instcmd "$src" "$dsttmp" &&
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# Now remove or move aside any old file at destination location. We
|
||||
# try this two ways since rm can't unlink itself on some systems and
|
||||
# the destination file might be busy for other reasons. In this case,
|
||||
# the final cleanup might fail but the new file should still install
|
||||
# successfully.
|
||||
{
|
||||
if test -f "$dstdir/$dstfile"; then
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
||||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
||||
# Now rename the file to the real destination.
|
||||
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||
(exit 1); exit
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
if test -f "$dst"; then
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null \
|
||||
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
|
||||
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
else
|
||||
:
|
||||
@ -299,14 +491,13 @@ do
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
fi || { (exit 1); exit; }
|
||||
done
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
{
|
||||
(exit 0); exit
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
} || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
|
163
lib/Makefile.in
163
lib/Makefile.in
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -13,15 +13,11 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -40,24 +36,25 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-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
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -81,9 +78,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -94,10 +93,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -106,47 +105,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#
|
||||
#
|
||||
@ -183,7 +197,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
@ -192,7 +205,13 @@ uninstall-info-am:
|
||||
# (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):
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@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 \
|
||||
@ -204,15 +223,20 @@ $(RECURSIVE_TARGETS):
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@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)' ;; \
|
||||
@ -233,7 +257,7 @@ maintainer-clean-recursive:
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -258,14 +282,16 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if (etags --etags-include --version) >/dev/null 2>&1; then \
|
||||
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 && \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
@ -275,9 +301,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -302,22 +330,21 @@ distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -328,15 +355,19 @@ distdir: $(DISTFILES)
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| mkdir "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="../$(top_distdir)" \
|
||||
distdir="../$(distdir)/$$subdir" \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -365,7 +396,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -390,12 +421,20 @@ info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -414,21 +453,23 @@ ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
uninstall-am:
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-generic clean-recursive ctags ctags-recursive \
|
||||
distclean distclean-generic distclean-recursive distclean-tags \
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am check check-am clean clean-generic ctags \
|
||||
ctags-recursive distclean distclean-generic distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
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-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-info-am
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||
tags-recursive uninstall uninstall-am
|
||||
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -16,15 +16,11 @@
|
||||
|
||||
#
|
||||
#
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -43,15 +39,13 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -75,9 +69,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -88,10 +84,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -100,47 +96,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = iostream limits sstream xlocale
|
||||
all: all-am
|
||||
|
||||
@ -174,7 +185,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
@ -183,22 +193,21 @@ CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -232,7 +241,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -257,12 +266,20 @@ info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -281,16 +298,19 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
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-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,16 +17,17 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// iostream
|
||||
//
|
||||
///
|
||||
/// \file iostream
|
||||
///
|
||||
|
||||
#ifndef G_STD_IOSTREAM
|
||||
#define G_STD_IOSTREAM
|
||||
|
||||
// gnu's iostream does only this
|
||||
/// gnu's iostream does only this
|
||||
#include <iostream.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
typedef ::ios ios_base ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,13 +17,14 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// limits
|
||||
//
|
||||
///
|
||||
/// \file limits
|
||||
///
|
||||
|
||||
#ifndef G_STD_LIMITS_H
|
||||
#define G_STD_LIMITS_H
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
#include <limits.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,11 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// sstream
|
||||
//
|
||||
// Forwards compatibility from ostrstream to std::ostringstream.
|
||||
//
|
||||
///
|
||||
/// \file sstream
|
||||
///
|
||||
|
||||
#ifndef G_STD_SSTREAM_H
|
||||
#define G_STD_SSTREAM_H
|
||||
@ -29,6 +27,7 @@
|
||||
#include <strstream.h>
|
||||
#include <string>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
class ostringstream : public ostrstream
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,14 +17,14 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// xlocale
|
||||
//
|
||||
///
|
||||
/// \file xlocale
|
||||
///
|
||||
|
||||
#ifndef G_STD_XLOCALE
|
||||
#define G_STD_XLOCALE
|
||||
|
||||
// empty
|
||||
/// empty
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -16,15 +16,11 @@
|
||||
|
||||
#
|
||||
#
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -43,15 +39,13 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -75,9 +69,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -88,10 +84,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -100,47 +96,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = cstdio cstdlib cstring ctime cmath cstddef
|
||||
all: all-am
|
||||
|
||||
@ -174,7 +185,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
@ -183,22 +193,21 @@ CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -232,7 +241,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -257,12 +266,20 @@ info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -281,16 +298,19 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
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-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,15 +17,16 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// cmath
|
||||
//
|
||||
///
|
||||
/// \file cmath
|
||||
///
|
||||
|
||||
#ifndef G_PORT_CMATH_H
|
||||
#define G_PORT_CMATH_H
|
||||
|
||||
#include <math.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
using ::sin ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,15 +17,16 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// cstddef
|
||||
//
|
||||
///
|
||||
/// \file cstddef
|
||||
///
|
||||
|
||||
#ifndef G_PORT_CSTDDEF_H
|
||||
#define G_PORT_CSTDDEF_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
using ::size_t ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,15 +17,16 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// cstdio
|
||||
//
|
||||
///
|
||||
/// \file cstdio
|
||||
///
|
||||
|
||||
#ifndef G_PORT_CSTDIO_H
|
||||
#define G_PORT_CSTDIO_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
using ::remove ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,15 +17,16 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// cstdlib
|
||||
//
|
||||
///
|
||||
/// \file cstdlib
|
||||
///
|
||||
|
||||
#ifndef G_PORT_CSTDLIB_H
|
||||
#define G_PORT_CSTDLIB_H
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
using ::rand ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,15 +17,16 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// cstring
|
||||
//
|
||||
///
|
||||
/// \file cstring
|
||||
///
|
||||
|
||||
#ifndef G_PORT_CSTRING_H
|
||||
#define G_PORT_CSTRING_H
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
using ::strlen ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,15 +17,16 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// ctime
|
||||
//
|
||||
///
|
||||
/// \file ctime
|
||||
///
|
||||
|
||||
#ifndef G_PORT_CTIME_H
|
||||
#define G_PORT_CTIME_H
|
||||
|
||||
#include <time.h>
|
||||
|
||||
/// \namespace std
|
||||
namespace std
|
||||
{
|
||||
using ::time_t ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -13,15 +13,11 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -40,15 +36,13 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -72,9 +66,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -85,10 +81,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -97,47 +93,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#
|
||||
#
|
||||
@ -174,7 +185,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
@ -183,22 +193,21 @@ CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -232,7 +241,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -257,12 +266,20 @@ info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -281,16 +298,19 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
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-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||
|
||||
# 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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
# Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
|
143
missing
143
missing
@ -1,9 +1,9 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2003-09-02.23
|
||||
scriptversion=2006-05-10.23
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
@ -19,8 +19,8 @@ scriptversion=2003-09-02.23
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -33,6 +33,8 @@ if test $# -eq 0; then
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
@ -44,7 +46,7 @@ fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case "$1" in
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
@ -60,11 +62,6 @@ case "$1" in
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case "$1" in
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
@ -82,6 +79,7 @@ Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
@ -92,10 +90,12 @@ Supported PROGRAM values:
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
@ -104,12 +104,42 @@ Send bug reports to <bug-automake@gnu.org>."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
aclocal*)
|
||||
esac
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program).
|
||||
case $1 in
|
||||
lex|yacc)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $1 in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
@ -119,11 +149,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
@ -133,11 +158,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
@ -147,7 +167,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case "$f" in
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
@ -157,11 +177,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
;;
|
||||
|
||||
automake*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
@ -173,11 +188,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
@ -185,8 +195,8 @@ WARNING: \`$1' is needed, but is $msg.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
@ -207,25 +217,25 @@ WARNING: \`$1' $msg. You should only need it if
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if [ $# -ne 1 ]; then
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f y.tab.h ]; then
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if [ ! -f y.tab.c ]; then
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
@ -237,39 +247,32 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if [ $# -ne 1 ]; then
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f lex.yy.c ]; then
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||
fi
|
||||
if [ -f "$file" ]; then
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
@ -279,11 +282,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
||||
# We have makeinfo, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
@ -291,20 +289,29 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
@ -317,13 +324,13 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
@ -18,4 +18,4 @@
|
||||
##
|
||||
#
|
||||
EXTRA_DIST = mingw.mak mingw-common.mak emailrelay.dsw
|
||||
SUBDIRS = glib gnet gsmtp gpop main win32
|
||||
SUBDIRS = glib gnet gsmtp gpop main win32 gui
|
||||
|
165
src/Makefile.in
165
src/Makefile.in
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -13,15 +13,11 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -40,24 +36,25 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-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
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -81,9 +78,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -94,10 +93,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -106,52 +105,67 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#
|
||||
#
|
||||
EXTRA_DIST = mingw.mak mingw-common.mak emailrelay.dsw
|
||||
SUBDIRS = glib gnet gsmtp gpop main win32
|
||||
SUBDIRS = glib gnet gsmtp gpop main win32 gui
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
@ -184,7 +198,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
@ -193,7 +206,13 @@ uninstall-info-am:
|
||||
# (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):
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@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 \
|
||||
@ -205,15 +224,20 @@ $(RECURSIVE_TARGETS):
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@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)' ;; \
|
||||
@ -234,7 +258,7 @@ maintainer-clean-recursive:
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -259,14 +283,16 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if (etags --etags-include --version) >/dev/null 2>&1; then \
|
||||
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 && \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
@ -276,9 +302,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -303,22 +331,21 @@ distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -329,15 +356,19 @@ distdir: $(DISTFILES)
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| mkdir "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="../$(top_distdir)" \
|
||||
distdir="../$(distdir)/$$subdir" \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -366,7 +397,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -391,12 +422,20 @@ info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -415,21 +454,23 @@ ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
uninstall-am:
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-generic clean-recursive ctags ctags-recursive \
|
||||
distclean distclean-generic distclean-recursive distclean-tags \
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am check check-am clean clean-generic ctags \
|
||||
ctags-recursive distclean distclean-generic distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
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-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-info-am
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||
tags-recursive uninstall uninstall-am
|
||||
|
||||
# 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.
|
||||
|
@ -30,6 +30,21 @@ Package=<4>
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "filter"=".\main\filter.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name common
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "passwd"=".\main\passwd.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
## Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
## Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
@ -26,7 +26,6 @@ EXTRA_DIST=\
|
||||
gfs_win32.cpp \
|
||||
gidentity_win32.cpp \
|
||||
glogoutput_win32.cpp \
|
||||
gmd5_aladdin.cpp \
|
||||
gprocess_win32.cpp \
|
||||
gfile_win32.cpp \
|
||||
gregistry_win32.cpp \
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.8.3 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006 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.
|
||||
@ -14,17 +14,11 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
SOURCES = $(libglib_a_SOURCES)
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
@ -43,11 +37,11 @@ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(mkdir_p)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
ARFLAGS = cru
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
ARFLAGS = cru
|
||||
libglib_a_AR = $(AR) $(ARFLAGS)
|
||||
libglib_a_LIBADD =
|
||||
am_libglib_a_OBJECTS = md5.$(OBJEXT) garg.$(OBJEXT) \
|
||||
@ -62,28 +56,9 @@ am_libglib_a_OBJECTS = md5.$(OBJEXT) garg.$(OBJEXT) \
|
||||
gprocess_unix.$(OBJEXT) groot.$(OBJEXT) gslot.$(OBJEXT) \
|
||||
gstr.$(OBJEXT) gtime.$(OBJEXT) gxtext.$(OBJEXT)
|
||||
libglib_a_OBJECTS = $(am_libglib_a_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/garg.Po ./$(DEPDIR)/garg_unix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gcleanup_unix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gdaemon_unix.Po ./$(DEPDIR)/gdate.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gdatetime.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gdatetime_unix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gdirectory.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gdirectory_unix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gexception.Po ./$(DEPDIR)/gexe.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gfile.Po ./$(DEPDIR)/gfile_unix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gfs_unix.Po ./$(DEPDIR)/ggetopt.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gidentity_unix.Po ./$(DEPDIR)/glog.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/glogoutput.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/glogoutput_unix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gmd5_native.Po ./$(DEPDIR)/gpath.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gpidfile.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gprocess_unix.Po ./$(DEPDIR)/groot.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gslot.Po ./$(DEPDIR)/gstr.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gtime.Po ./$(DEPDIR)/gxtext.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/md5.Po
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
@ -99,8 +74,6 @@ ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
@ -124,9 +97,11 @@ ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
GZIP = @GZIP@
|
||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
@ -137,10 +112,10 @@ LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKE = @MAKE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@ -149,47 +124,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POPLIB = @POPLIB@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
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@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
e_docdir = @e_docdir@
|
||||
e_examplesdir = @e_examplesdir@
|
||||
e_initdir = @e_initdir@
|
||||
e_qtmoc = @e_qtmoc@
|
||||
e_spooldir = @e_spooldir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
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@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#
|
||||
#
|
||||
@ -202,7 +192,6 @@ EXTRA_DIST = \
|
||||
gfs_win32.cpp \
|
||||
gidentity_win32.cpp \
|
||||
glogoutput_win32.cpp \
|
||||
gmd5_aladdin.cpp \
|
||||
gprocess_win32.cpp \
|
||||
gfile_win32.cpp \
|
||||
gregistry_win32.cpp \
|
||||
@ -353,21 +342,18 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
|
||||
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
uninstall-info-am:
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
@ -389,9 +375,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -416,22 +404,21 @@ distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
@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; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
@ -465,7 +452,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -492,12 +479,20 @@ info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -517,18 +512,22 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-noinstLIBRARIES ctags distclean distclean-compile \
|
||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
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-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-info-am
|
||||
uninstall-am
|
||||
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -218,3 +218,4 @@ const char * G::Arg::prefix( char * argv [] ) // throw()
|
||||
return p1 > p2 ? p1 : p2 ;
|
||||
}
|
||||
|
||||
/// \file garg.cpp
|
||||
|
103
src/glib/garg.h
103
src/glib/garg.h
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// garg.h
|
||||
//
|
||||
///
|
||||
/// \file garg.h
|
||||
///
|
||||
|
||||
#ifndef G_ARG_H
|
||||
#define G_ARG_H
|
||||
@ -29,91 +29,92 @@
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class Arg ;
|
||||
}
|
||||
|
||||
// Class: G::Arg
|
||||
// Description: A class which holds a represention of the
|
||||
// argc/argv command line array. Also does simple command line
|
||||
// parsing, and, under Windows, command line splitting (the
|
||||
// single command line string is split into an argv[] array,
|
||||
// including argv[0]).
|
||||
//
|
||||
// See also: G::GetOpt
|
||||
//
|
||||
/// \class G::Arg
|
||||
/// A class which holds a represention of the
|
||||
/// argc/argv command line array. Also does simple command line
|
||||
/// parsing, and, under Windows, command line splitting (the
|
||||
/// single command line string is split into an argv[] array,
|
||||
/// including argv[0]).
|
||||
///
|
||||
/// \see G::GetOpt
|
||||
///
|
||||
class G::Arg
|
||||
{
|
||||
public:
|
||||
Arg( int argc , char *argv[] ) ;
|
||||
// Constructor taking argc/argv.
|
||||
///< Constructor taking argc/argv.
|
||||
|
||||
Arg() ;
|
||||
// Default constructor for Windows.
|
||||
// Initialise (once) with parse().
|
||||
///< Default constructor for Windows.
|
||||
///< Initialise (once) with parse().
|
||||
|
||||
void parse( HINSTANCE hinstance , const std::string & command_line ) ;
|
||||
// Windows only.
|
||||
//
|
||||
// Parses the given command line, splitting
|
||||
// it up into an array of tokens.
|
||||
// The full exe name is automatically
|
||||
// added as the first token (cf. argv[0]).
|
||||
///< Windows only.
|
||||
///<
|
||||
///< Parses the given command line, splitting
|
||||
///< it up into an array of tokens.
|
||||
///< The full exe name is automatically
|
||||
///< added as the first token (cf. argv[0]).
|
||||
|
||||
void reparse( const std::string & command_line ) ;
|
||||
// Reinitialises the object with the given
|
||||
// command-line. The command-line should not
|
||||
// contain the program name: the v(0) value
|
||||
// and prefix() are unchanged.
|
||||
///< Reinitialises the object with the given
|
||||
///< command-line. The command-line should not
|
||||
///< contain the program name: the v(0) value
|
||||
///< and prefix() are unchanged.
|
||||
|
||||
~Arg() ;
|
||||
// Destructor.
|
||||
///< Destructor.
|
||||
|
||||
size_t c() const ;
|
||||
// Returns the number of tokens in the
|
||||
// command line, including the program
|
||||
// name.
|
||||
///< Returns the number of tokens in the
|
||||
///< command line, including the program
|
||||
///< name.
|
||||
|
||||
std::string v( size_t i ) const ;
|
||||
// Returns the i'th argument.
|
||||
// Precondition: i < c()
|
||||
///< Returns the i'th argument.
|
||||
///< Precondition: i < c()
|
||||
|
||||
std::string prefix() const ;
|
||||
// Returns the basename of v(0) without
|
||||
// any extension.
|
||||
///< Returns the basename of v(0) without
|
||||
///< any extension.
|
||||
|
||||
static const char * prefix( char * argv[] ) ; // throw()
|
||||
// An exception-free version of prefix() which can
|
||||
// be used in main() outside of the outermost try
|
||||
// block.
|
||||
///< An exception-free version of prefix() which can
|
||||
///< be used in main() outside of the outermost try
|
||||
///< block.
|
||||
|
||||
bool contains( const std::string & sw ,
|
||||
size_t sw_args = 0U , bool case_sensitive = true ) const ;
|
||||
// Returns true if the command line
|
||||
// contains the given switch with enough
|
||||
// command line arguments left to satisfy
|
||||
// the given number of switch arguments.
|
||||
///< Returns true if the command line
|
||||
///< contains the given switch with enough
|
||||
///< command line arguments left to satisfy
|
||||
///< the given number of switch arguments.
|
||||
|
||||
size_t index( const std::string & sw , size_t sw_args = 0U ) const ;
|
||||
// Returns the index of the given switch.
|
||||
// Returns zero if not present.
|
||||
///< Returns the index of the given switch.
|
||||
///< Returns zero if not present.
|
||||
|
||||
void remove( const std::string & sw , size_t sw_args = 0U ) ;
|
||||
// Removes the given switch and its
|
||||
// arguments.
|
||||
//
|
||||
// Precondition: contains()
|
||||
///< Removes the given switch and its
|
||||
///< arguments.
|
||||
///<
|
||||
///< Precondition: contains()
|
||||
|
||||
void removeAt( size_t sw_index , size_t sw_args = 0U ) ;
|
||||
// Removes the given argument and the
|
||||
// following 'sw_args' ones.
|
||||
///< Removes the given argument and the
|
||||
///< following 'sw_args' ones.
|
||||
|
||||
Arg & operator=( const Arg & ) ;
|
||||
// Assignment operator.
|
||||
///< Assignment operator.
|
||||
|
||||
Arg( const Arg & ) ;
|
||||
// Copy constructor.
|
||||
///< Copy constructor.
|
||||
|
||||
private:
|
||||
static std::string moduleName( HINSTANCE h ) ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -30,3 +30,4 @@ std::string G::Arg::moduleName( HINSTANCE )
|
||||
return std::string() ;
|
||||
}
|
||||
|
||||
/// \file garg_unix.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -35,3 +35,4 @@ std::string G::Arg::moduleName( HINSTANCE hinstance )
|
||||
return std::string(buffer) ;
|
||||
}
|
||||
|
||||
/// \file garg_win32.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gassert.h
|
||||
//
|
||||
///
|
||||
/// \file gassert.h
|
||||
///
|
||||
|
||||
#ifndef G_ASSERT_H
|
||||
#define G_ASSERT_H
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gcleanup.h
|
||||
//
|
||||
///
|
||||
/// \file gcleanup.h
|
||||
///
|
||||
|
||||
#ifndef G_CLEANUP_H
|
||||
#define G_CLEANUP_H
|
||||
@ -28,30 +28,31 @@
|
||||
#include "gpath.h"
|
||||
#include "gexception.h"
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class Cleanup ;
|
||||
}
|
||||
|
||||
// Class: G::Cleanup
|
||||
// Description: An interface for registering cleanup functions
|
||||
// which are called when the process terminates abnormally.
|
||||
//
|
||||
/// \class G::Cleanup
|
||||
/// An interface for registering cleanup functions
|
||||
/// which are called when the process terminates abnormally.
|
||||
///
|
||||
class G::Cleanup
|
||||
{
|
||||
public:
|
||||
G_EXCEPTION( Error , "cleanup error" ) ;
|
||||
|
||||
static void init() ;
|
||||
// An optional early-initialisation function.
|
||||
// May be called more than once.
|
||||
///< An optional early-initialisation function.
|
||||
///< May be called more than once.
|
||||
|
||||
static void add( void (*fn)(const char*) , const char * arg ) ;
|
||||
// Adds the given handler to the list which
|
||||
// are to be called when the process
|
||||
// terminates abnormally. The handler
|
||||
// function must be fully reentrant.
|
||||
// The 'arg' pointer is kept.
|
||||
///< Adds the given handler to the list which
|
||||
///< are to be called when the process
|
||||
///< terminates abnormally. The handler
|
||||
///< function must be fully reentrant.
|
||||
///< The 'arg' pointer is kept.
|
||||
|
||||
private:
|
||||
Cleanup() ; // not implemeneted
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -39,9 +39,9 @@ namespace G
|
||||
class CleanupImp ;
|
||||
}
|
||||
|
||||
// Class: G::CleanupImp
|
||||
// Description: A private implementation class used by G::Cleanup.
|
||||
//
|
||||
/// \class G::CleanupImp
|
||||
/// A private implementation class used by G::Cleanup.
|
||||
///
|
||||
class G::CleanupImp
|
||||
{
|
||||
public:
|
||||
@ -58,7 +58,8 @@ private:
|
||||
|
||||
private:
|
||||
typedef Cleanup::Error Error ;
|
||||
struct Link // A private linked-list structure used by G::CleanupImp.
|
||||
/// A private linked-list structure used by G::CleanupImp.
|
||||
struct Link
|
||||
{
|
||||
void (*fn)(const char*) ;
|
||||
const char * arg ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -34,3 +34,4 @@ void G::Cleanup::add( void (*)(const char*) , const char * )
|
||||
// not implemented
|
||||
}
|
||||
|
||||
/// \file gcleanup_win32.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,26 +17,28 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gconvert.h
|
||||
//
|
||||
///
|
||||
/// \file gconvert.h
|
||||
///
|
||||
|
||||
#ifndef G_CONVERT_H
|
||||
#define G_CONVERT_H
|
||||
|
||||
#include "gdef.h"
|
||||
#include "gexception.h"
|
||||
#include <sstream>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
|
||||
G_EXCEPTION( ConvertOverflow , "arithmetic overflow" ) ;
|
||||
|
||||
// Template function: G::Convert
|
||||
// Description: Does arithmetic conversions with
|
||||
// overflow checking.
|
||||
// See also: boost::numeric_cast<>()
|
||||
//
|
||||
/// Template function: G::Convert
|
||||
/// Does arithmetic conversions with
|
||||
/// overflow checking.
|
||||
/// \see boost::numeric_cast<>()
|
||||
///
|
||||
template <class Tout, class Tin>
|
||||
inline
|
||||
Tout Convert( const Tin & in )
|
||||
@ -44,7 +46,11 @@ Tout Convert( const Tin & in )
|
||||
Tout out = in ;
|
||||
Tin copy = out ;
|
||||
if( in != copy )
|
||||
throw ConvertOverflow( std::ostringstream() << in ) ;
|
||||
{
|
||||
std::ostringstream ss ;
|
||||
ss << in ;
|
||||
throw ConvertOverflow( ss.str() ) ;
|
||||
}
|
||||
return out ;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gdaemon.h
|
||||
//
|
||||
///
|
||||
/// \file gdaemon.h
|
||||
///
|
||||
|
||||
#ifndef G_DAEMON_H
|
||||
#define G_DAEMON_H
|
||||
@ -31,42 +31,43 @@
|
||||
#include <sys/types.h>
|
||||
#include <string>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class Daemon ;
|
||||
}
|
||||
|
||||
// Class: G::Daemon
|
||||
// Description: A class for deamonising the calling process.
|
||||
// Deamonisation includes fork()ing, detaching from the
|
||||
// controlling terminal, setting the process umask, etc.
|
||||
// The windows implementation does nothing.
|
||||
// See also: G::Process
|
||||
//
|
||||
/// \class G::Daemon
|
||||
/// A class for deamonising the calling process.
|
||||
/// Deamonisation includes fork()ing, detaching from the
|
||||
/// controlling terminal, setting the process umask, etc.
|
||||
/// The windows implementation does nothing.
|
||||
/// \see G::Process
|
||||
///
|
||||
class G::Daemon
|
||||
{
|
||||
public:
|
||||
G_EXCEPTION( CannotFork , "cannot fork" ) ;
|
||||
|
||||
static void detach() ;
|
||||
// Detaches from the parent environment.
|
||||
// This typically involves fork()ing,
|
||||
// _exit()ing the parent, and calling
|
||||
// setsid() in the child.
|
||||
///< Detaches from the parent environment.
|
||||
///< This typically involves fork()ing,
|
||||
///< _exit()ing the parent, and calling
|
||||
///< setsid() in the child.
|
||||
|
||||
static void detach( PidFile & pid_file ) ;
|
||||
// An overload which allows for a delayed write
|
||||
// of the new process-id to a file.
|
||||
//
|
||||
// A delayed write is useful for network daemons
|
||||
// which open a listening port. A second instance
|
||||
// of the process will fail on startup, and should
|
||||
// not overwrite the pid file of the running
|
||||
// server. In this situation PidFile::commit()
|
||||
// should be called just before entering the event
|
||||
// loop.
|
||||
//
|
||||
// Throws PidFile::Error on error.
|
||||
///< An overload which allows for a delayed write
|
||||
///< of the new process-id to a file.
|
||||
///<
|
||||
///< A delayed write is useful for network daemons
|
||||
///< which open a listening port. A second instance
|
||||
///< of the process will fail on startup, and should
|
||||
///< not overwrite the pid file of the running
|
||||
///< server. In this situation PidFile::commit()
|
||||
///< should be called just before entering the event
|
||||
///< loop.
|
||||
///<
|
||||
///< Throws PidFile::Error on error.
|
||||
|
||||
private:
|
||||
Daemon() ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -54,3 +54,4 @@ void G::Daemon::setsid()
|
||||
; // no-op
|
||||
}
|
||||
|
||||
/// \file gdaemon_unix.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -37,3 +37,4 @@ void G::Daemon::detach()
|
||||
// no-op
|
||||
}
|
||||
|
||||
/// \file gdaemon_win32.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -292,3 +292,4 @@ bool G::Date::operator!=( const Date &other ) const
|
||||
return !( other == *this ) ;
|
||||
}
|
||||
|
||||
/// \file gdate.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gdate.h
|
||||
//
|
||||
///
|
||||
/// \file gdate.h
|
||||
///
|
||||
|
||||
#ifndef G_DATE_H
|
||||
#define G_DATE_H
|
||||
@ -30,19 +30,21 @@
|
||||
#include <ctime>
|
||||
#include <string>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class Date ;
|
||||
}
|
||||
|
||||
// Class: G::Date
|
||||
// Description: A date (dd/mm/yyyy) class.
|
||||
// See also: G::Time, G::DateTime
|
||||
//
|
||||
/// \class G::Date
|
||||
/// A date (dd/mm/yyyy) class.
|
||||
/// \see G::Time, G::DateTime
|
||||
///
|
||||
class G::Date
|
||||
{
|
||||
public:
|
||||
class LocalTime // An overload discriminator class for Date constructors.
|
||||
/// An overload discriminator class for Date constructors.
|
||||
class LocalTime
|
||||
{} ;
|
||||
|
||||
enum Weekday
|
||||
@ -56,79 +58,79 @@ public:
|
||||
{ yyyy_mm_dd_slash , yyyy_mm_dd , mm_dd } ;
|
||||
|
||||
static int yearUpperLimit() ;
|
||||
// Returns the smallest supported year value.
|
||||
///< Returns the smallest supported year value.
|
||||
|
||||
static int yearLowerLimit() ;
|
||||
// Returns the largest supported year value.
|
||||
///< Returns the largest supported year value.
|
||||
|
||||
Date() ;
|
||||
// Default constructor the current date
|
||||
// in the UTC timezone.
|
||||
///< Default constructor the current date
|
||||
///< in the UTC timezone.
|
||||
|
||||
explicit Date( const LocalTime & ) ;
|
||||
// Constructor for the current date
|
||||
// in the local timezone.
|
||||
///< Constructor for the current date
|
||||
///< in the local timezone.
|
||||
|
||||
Date( const G::DateTime::BrokenDownTime & tm ) ;
|
||||
// Constructor for the specified date.
|
||||
///< Constructor for the specified date.
|
||||
|
||||
explicit Date( G::DateTime::EpochTime t ) ;
|
||||
// Constructor for the date in the UTC
|
||||
// timezone as at the given epoch time.
|
||||
///< Constructor for the date in the UTC
|
||||
///< timezone as at the given epoch time.
|
||||
|
||||
Date( G::DateTime::EpochTime t , const LocalTime & ) ;
|
||||
// Constructor for the date in the local
|
||||
// timezone as at the given epoch time.
|
||||
///< Constructor for the date in the local
|
||||
///< timezone as at the given epoch time.
|
||||
|
||||
Date( int year , Month month , int day_of_month ) ;
|
||||
// Constructor for the specified date.
|
||||
///< Constructor for the specified date.
|
||||
|
||||
std::string string( Format format = yyyy_mm_dd_slash ) const ;
|
||||
// Returns a string representation of the date.
|
||||
///< Returns a string representation of the date.
|
||||
|
||||
Weekday weekday() const ;
|
||||
// Returns the day of the week.
|
||||
///< Returns the day of the week.
|
||||
|
||||
std::string weekdayName( bool brief = false ) const ;
|
||||
// Returns an english string representation of
|
||||
// the day of the week.
|
||||
// (Was weekdayString().)
|
||||
///< Returns an english string representation of
|
||||
///< the day of the week.
|
||||
///< (Was weekdayString().)
|
||||
|
||||
int monthday() const ;
|
||||
// Returns the day of the month.
|
||||
///< Returns the day of the month.
|
||||
|
||||
std::string dd() const ;
|
||||
// Returns the day of the month as a two-digit decimal string.
|
||||
// (Was monthdayString().)
|
||||
///< Returns the day of the month as a two-digit decimal string.
|
||||
///< (Was monthdayString().)
|
||||
|
||||
Month month() const ;
|
||||
// Returns the month.
|
||||
///< Returns the month.
|
||||
|
||||
std::string monthName( bool brief = false ) const ;
|
||||
// Returns the month as a string (in english).
|
||||
// (Was monthString().)
|
||||
///< Returns the month as a string (in english).
|
||||
///< (Was monthString().)
|
||||
|
||||
std::string mm() const ;
|
||||
// Returns the month as a two-digit decimal string.
|
||||
///< Returns the month as a two-digit decimal string.
|
||||
|
||||
int year() const ;
|
||||
// Returns the year.
|
||||
///< Returns the year.
|
||||
|
||||
std::string yyyy() const ;
|
||||
// Returns the year as a four-digit decimal string.
|
||||
// (Was yearString().)
|
||||
///< Returns the year as a four-digit decimal string.
|
||||
///< (Was yearString().)
|
||||
|
||||
Date & operator++() ;
|
||||
// Increments the date by one day.
|
||||
///< Increments the date by one day.
|
||||
|
||||
Date & operator--() ;
|
||||
// Decrements the date by one day.
|
||||
///< Decrements the date by one day.
|
||||
|
||||
bool operator==( const Date & rhs ) const ;
|
||||
// Comparison operator.
|
||||
///< Comparison operator.
|
||||
|
||||
bool operator!=( const Date & rhs ) const ;
|
||||
// Comparison operator.
|
||||
///< Comparison operator.
|
||||
|
||||
private:
|
||||
void init( const G::DateTime::BrokenDownTime & ) ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -104,3 +104,4 @@ bool G::DateTime::same( const BrokenDownTime & bdt1 , const BrokenDownTime & bdt
|
||||
bdt1.tm_min == bdt2.tm_min ;
|
||||
}
|
||||
|
||||
/// \file gdatetime.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gdatetime.h
|
||||
//
|
||||
///
|
||||
/// \file gdatetime.h
|
||||
///
|
||||
|
||||
#ifndef G_DATE_TIME_H
|
||||
#define G_DATE_TIME_H
|
||||
@ -29,14 +29,15 @@
|
||||
#include <ctime>
|
||||
#include <string>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class DateTime ;
|
||||
}
|
||||
|
||||
// Class: G::DateTime
|
||||
// Description: A low-level static class used by Date and Time.
|
||||
//
|
||||
/// \class G::DateTime
|
||||
/// A low-level static class used by Date and Time.
|
||||
///
|
||||
class G::DateTime
|
||||
{
|
||||
public:
|
||||
@ -46,30 +47,30 @@ public:
|
||||
typedef std::pair<bool,unsigned int> Offset ;
|
||||
|
||||
static EpochTime now() ;
|
||||
// Returns the current epoch time.
|
||||
///< Returns the current epoch time.
|
||||
|
||||
static EpochTime epochTime( const BrokenDownTime & broken_down_time ) ;
|
||||
// Converts from UTC broken-down-time to epoch time.
|
||||
///< Converts from UTC broken-down-time to epoch time.
|
||||
|
||||
static BrokenDownTime utc( EpochTime epoch_time ) ;
|
||||
// Converts from epoch time to UTC broken-down-time.
|
||||
///< Converts from epoch time to UTC broken-down-time.
|
||||
|
||||
static BrokenDownTime local( EpochTime epoch_time ) ;
|
||||
// Converts from epoch time to local broken-down-time.
|
||||
///< Converts from epoch time to local broken-down-time.
|
||||
|
||||
static Offset offset( EpochTime epoch_time ) ;
|
||||
// Returns the offset between UTC and localtime
|
||||
// as at 'epoch_time'. The returned pair has
|
||||
// 'first' set to true if localtime is
|
||||
// ahead of (ie. east of) UTC.
|
||||
//
|
||||
// (Note that this may be a relatively expensive
|
||||
// operation.)
|
||||
///< Returns the offset between UTC and localtime
|
||||
///< as at 'epoch_time'. The returned pair has
|
||||
///< 'first' set to true if localtime is
|
||||
///< ahead of (ie. east of) UTC.
|
||||
///<
|
||||
///< (Note that this may be a relatively expensive
|
||||
///< operation.)
|
||||
|
||||
static std::string offsetString( Offset offset ) ;
|
||||
// Converts the given utc/localtime offset into a five-character
|
||||
// "+/-hhmm" string.
|
||||
// See also RFC2822.
|
||||
///< Converts the given utc/localtime offset into a five-character
|
||||
///< "+/-hhmm" string.
|
||||
///< See also RFC2822.
|
||||
|
||||
private:
|
||||
static bool equivalent( EpochTime , const BrokenDownTime & ) ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -34,3 +34,4 @@ std::tm * G::DateTime::localtime_r( const std::time_t * t , std::tm * p )
|
||||
return ::localtime_r(t,p) ;
|
||||
}
|
||||
|
||||
/// \file gdatetime_unix.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -36,3 +36,4 @@ struct std::tm * G::DateTime::localtime_r( const time_t * t , struct std::tm * p
|
||||
return p ;
|
||||
}
|
||||
|
||||
/// \file gdatetime_win32.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gdebug.h
|
||||
//
|
||||
///
|
||||
/// \file gdebug.h
|
||||
///
|
||||
|
||||
#ifndef G_DEBUG_H
|
||||
#define G_DEBUG_H
|
||||
|
122
src/glib/gdef.h
122
src/glib/gdef.h
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,23 +17,26 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gdef.h
|
||||
//
|
||||
///
|
||||
/// \file gdef.h
|
||||
///
|
||||
/*
|
||||
* gdef.h
|
||||
*/
|
||||
|
||||
// This header is always the first header included in source
|
||||
// files. It takes care of some portability issues, and
|
||||
// is a good candidate for precompilation. It requires
|
||||
// either G_UNIX or G_WIN32 to be defined on the compiler
|
||||
// command line, although G_UNIX may also be inferred from
|
||||
// autoconf's HAVE_CONFIG_H.
|
||||
//
|
||||
/* This header is always the first header included in source
|
||||
* files. It takes care of some portability issues, and
|
||||
* is a good candidate for precompilation. It requires
|
||||
* either G_UNIX or G_WIN32 to be defined on the compiler
|
||||
* command line, although G_UNIX may also be inferred from
|
||||
* autoconf's HAVE_CONFIG_H.
|
||||
*/
|
||||
|
||||
#ifndef G_DEF_H
|
||||
#define G_DEF_H
|
||||
|
||||
// Autoconf, part 1
|
||||
//
|
||||
/* Autoconf, part 1
|
||||
*/
|
||||
#if defined( HAVE_CONFIG_H )
|
||||
|
||||
#if ! defined( G_UNIX )
|
||||
@ -48,17 +51,20 @@
|
||||
#endif
|
||||
|
||||
#if ! HAVE_GMTIME_R || ! HAVE_LOCALTIME_R
|
||||
#ifdef __cplusplus
|
||||
#include <ctime>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ! HAVE_SOCKLEN_T
|
||||
typedef int socklen_t ;
|
||||
#endif
|
||||
|
||||
#else
|
||||
#define HAVE_ZLIB_H 1
|
||||
#endif
|
||||
|
||||
// Check operating-system switches
|
||||
//
|
||||
/* Check operating-system switches
|
||||
*/
|
||||
#if !defined( G_WIN32 ) && !defined( G_UNIX )
|
||||
#error invalid compilation switches
|
||||
#endif
|
||||
@ -66,14 +72,14 @@
|
||||
#error invalid compilation switches
|
||||
#endif
|
||||
|
||||
// Define supplementary o/s compilation switches
|
||||
//
|
||||
/* Define supplementary o/s compilation switches
|
||||
*/
|
||||
#if defined( G_WIN32 ) && ! defined( G_WINDOWS )
|
||||
#define G_WINDOWS
|
||||
#endif
|
||||
|
||||
// Define the compiler
|
||||
//
|
||||
/* Define the compiler
|
||||
*/
|
||||
#if defined( _MSC_VER )
|
||||
#define G_COMPILER_IS_MICROSOFT 1
|
||||
#endif
|
||||
@ -81,8 +87,8 @@
|
||||
#define G_COMPILER_IS_GNU 1
|
||||
#endif
|
||||
|
||||
// Include main o/s headers
|
||||
//
|
||||
/* Include main o/s headers
|
||||
*/
|
||||
#if defined( G_WINDOWS ) && defined( G_MINGW )
|
||||
#define __USE_W32_SOCKETS
|
||||
#include <windows.h>
|
||||
@ -101,9 +107,9 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Define Windows-style types (only used for
|
||||
// unimplemented declarations under unix)
|
||||
//
|
||||
/* Define Windows-style types (only used for
|
||||
* unimplemented declarations under unix)
|
||||
*/
|
||||
#if ! defined( G_WINDOWS )
|
||||
typedef unsigned char BOOL ;
|
||||
typedef unsigned int HWND ;
|
||||
@ -111,9 +117,10 @@
|
||||
typedef unsigned int HANDLE ;
|
||||
#endif
|
||||
|
||||
// Include commonly-used system headers (good for
|
||||
// pre-compilation)
|
||||
//
|
||||
/* Include commonly-used system headers (good for
|
||||
* pre-compilation)
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
#include <exception>
|
||||
#include <fstream>
|
||||
@ -122,80 +129,89 @@
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#endif
|
||||
|
||||
// Define fixed-size types
|
||||
//
|
||||
/* Define fixed-size types
|
||||
*/
|
||||
typedef unsigned long g_uint32_t ;
|
||||
typedef unsigned short g_uint16_t ;
|
||||
typedef long g_int32_t ;
|
||||
typedef short g_int16_t ;
|
||||
|
||||
// Define short-name types
|
||||
//
|
||||
/* Define short-name types
|
||||
*/
|
||||
typedef unsigned char uchar_t ;
|
||||
|
||||
// Define missing standard types
|
||||
//
|
||||
/* Define missing standard types
|
||||
*/
|
||||
#if defined( G_WINDOWS )
|
||||
typedef int ssize_t ;
|
||||
typedef int uid_t ;
|
||||
typedef int gid_t ;
|
||||
#if ! defined( G_MINGW )
|
||||
typedef int ssize_t ;
|
||||
typedef unsigned int pid_t ;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Pull some std types into the global namespace
|
||||
//
|
||||
/* Pull some std types into the global namespace
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
using std::size_t ;
|
||||
|
||||
// Modify compiler error handling
|
||||
//
|
||||
#if defined(G_COMPILER_IS_MICROSOFT)
|
||||
#pragma warning( disable : 4100 ) // unused formal parameter
|
||||
#pragma warning( disable : 4355 ) // 'this' in initialiser list
|
||||
#pragma warning( disable : 4511 ) // cannot create default copy ctor
|
||||
#pragma warning( disable : 4512 ) // cannot create default op=()
|
||||
#pragma warning( disable : 4786 ) // truncation in debug info
|
||||
#pragma warning( disable : 4275 ) // dll-interface stuff in <complex>
|
||||
#endif
|
||||
|
||||
// A macro to explicitly ignore a function's return value.
|
||||
// Some compilers complain when return values are ignored, and
|
||||
// others complain when using a c-style cast...
|
||||
//
|
||||
/* Modify compiler error handling
|
||||
*/
|
||||
#if defined(G_COMPILER_IS_MICROSOFT)
|
||||
#pragma warning( disable : 4100 ) /* unused formal parameter */
|
||||
#pragma warning( disable : 4355 ) /* 'this' in initialiser list */
|
||||
#pragma warning( disable : 4511 ) /* cannot create default copy ctor */
|
||||
#pragma warning( disable : 4512 ) /* cannot create default op=() */
|
||||
#pragma warning( disable : 4786 ) /* truncation in debug info */
|
||||
#pragma warning( disable : 4275 ) /* dll-interface stuff in <complex> */
|
||||
#endif
|
||||
|
||||
/* A macro to explicitly ignore a function's return value.
|
||||
* Some compilers complain when return values are ignored, and
|
||||
* others complain when using a c-style cast...
|
||||
*/
|
||||
#if 1
|
||||
#define G_IGNORE
|
||||
#else
|
||||
#define G_IGNORE (void)
|
||||
#endif
|
||||
|
||||
// Autoconf, part 2
|
||||
//
|
||||
/* Autoconf, part 2
|
||||
*/
|
||||
#if defined( HAVE_CONFIG_H )
|
||||
#if ! HAVE_GMTIME_R
|
||||
#ifdef __cplusplus
|
||||
inline std::tm * gmtime_r( const std::time_t * tp , std::tm * tm_p )
|
||||
{
|
||||
* tm_p = * std::gmtime( tp ) ;
|
||||
return tm_p ;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#if ! HAVE_LOCALTIME_R
|
||||
#ifdef __cplusplus
|
||||
inline std::tm * localtime_r( const std::time_t * tp , std::tm * tm_p )
|
||||
{
|
||||
* tm_p = * std::localtime( tp ) ;
|
||||
return tm_p ;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#if HAVE_SETGROUPS
|
||||
#include <grp.h>
|
||||
#else
|
||||
#ifdef __cplusplus
|
||||
inline int setgroups( size_t , const gid_t * )
|
||||
{
|
||||
return 0 ;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -73,3 +73,4 @@ G::Path G::Directory::path() const
|
||||
return m_path ;
|
||||
}
|
||||
|
||||
/// \file gdirectory.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gdirectory.h
|
||||
//
|
||||
///
|
||||
/// \file gdirectory.h
|
||||
///
|
||||
|
||||
#ifndef G_DIRECTORY_H
|
||||
#define G_DIRECTORY_H
|
||||
@ -30,6 +30,7 @@
|
||||
#include <string>
|
||||
#include <sys/types.h>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class DirectoryIteratorImp ;
|
||||
@ -37,105 +38,107 @@ namespace G
|
||||
class DirectoryIterator ;
|
||||
}
|
||||
|
||||
// Class: G::Directory
|
||||
// Description: An encapsulation of a file system directory
|
||||
// which allows for iterating through the set of contained
|
||||
// files.
|
||||
// See also: G::Path, G::FileSystem, G::File
|
||||
//
|
||||
/// \class G::Directory
|
||||
/// An encapsulation of a file system directory
|
||||
/// which allows for iterating through the set of contained
|
||||
/// files.
|
||||
/// \see G::Path, G::FileSystem, G::File
|
||||
///
|
||||
class G::Directory
|
||||
{
|
||||
public:
|
||||
Directory() ;
|
||||
// Default constructor for the current directory.
|
||||
///< Default constructor for the current directory.
|
||||
|
||||
explicit Directory( const char * path ) ;
|
||||
// Constructor.
|
||||
///< Constructor.
|
||||
|
||||
explicit Directory( const Path & path ) ;
|
||||
// Constructor.
|
||||
///< Constructor.
|
||||
|
||||
explicit Directory( const std::string & path ) ;
|
||||
// Constructor.
|
||||
///< Constructor.
|
||||
|
||||
virtual ~Directory() ;
|
||||
// Virtual destructor.
|
||||
///< Virtual destructor.
|
||||
|
||||
bool valid( bool for_creating_files = false ) const ;
|
||||
// Returns true if the object represents a valid
|
||||
// directory.
|
||||
//
|
||||
// Does additional checks if the 'for-creating-files'
|
||||
// parameter is true. But note that the answer is not
|
||||
// definitive -- file creation may fail, even if
|
||||
// valid() returns true. For a more accurate test
|
||||
// use writeable().
|
||||
///< Returns true if the object represents a valid
|
||||
///< directory.
|
||||
///<
|
||||
///< Does additional checks if the 'for-creating-files'
|
||||
///< parameter is true. But note that the answer is not
|
||||
///< definitive -- file creation may fail, even if
|
||||
///< valid() returns true. For a more accurate test
|
||||
///< use writeable().
|
||||
|
||||
bool writeable( std::string probe_filename = tmp() ) const ;
|
||||
// Tries to create and then delete an empty test file
|
||||
// in the directory. Returns true on success.
|
||||
// Precondition: valid()
|
||||
///< Tries to create and then delete an empty test file
|
||||
///< in the directory. Returns true on success.
|
||||
///< Precondition: valid()
|
||||
|
||||
Path path() const ;
|
||||
// Returns the directory's path.
|
||||
///< Returns the directory's path.
|
||||
|
||||
Directory( const Directory & other ) ;
|
||||
// Copy constructor.
|
||||
///< Copy constructor.
|
||||
|
||||
Directory &operator=( const Directory & ) ;
|
||||
// Assignment operator.
|
||||
///< Assignment operator.
|
||||
|
||||
static Directory root() ;
|
||||
// Returns a root directory object. For DOSy file
|
||||
// systems this will not contain a drive part.
|
||||
///< Returns a root directory object. For DOSy file
|
||||
///< systems this will not contain a drive part.
|
||||
|
||||
static std::string tmp() ;
|
||||
// A convenience function for constructing a
|
||||
// filename for writeable(). This is factored out
|
||||
// so that client code can minimise the time spent
|
||||
// with a privileged effective userid.
|
||||
///< A convenience function for constructing a
|
||||
///< filename for writeable(). This is factored out
|
||||
///< so that client code can minimise the time spent
|
||||
///< with a privileged effective userid.
|
||||
|
||||
private:
|
||||
Path m_path ;
|
||||
} ;
|
||||
|
||||
// Class: G::DirectoryIterator
|
||||
// Description: An iterator for Directory.
|
||||
// The iteration model is
|
||||
/// \class G::DirectoryIterator
|
||||
/// An iterator for Directory.
|
||||
/// The iteration model is
|
||||
/// \code
|
||||
/// while(iter.more()) { (void)iter.filePath() ; }
|
||||
//
|
||||
/// \endcode
|
||||
///
|
||||
class G::DirectoryIterator
|
||||
{
|
||||
public:
|
||||
explicit DirectoryIterator( const Directory & dir , const std::string & wc = std::string() ) ;
|
||||
// Constructor taking a directory reference
|
||||
// and an optional wildcard specification.
|
||||
///< Constructor taking a directory reference
|
||||
///< and an optional wildcard specification.
|
||||
|
||||
~DirectoryIterator() ;
|
||||
// Destructor.
|
||||
///< Destructor.
|
||||
|
||||
bool error() const ;
|
||||
// Returns true on error. The caller should stop the iteration.
|
||||
///< Returns true on error. The caller should stop the iteration.
|
||||
|
||||
bool more() ;
|
||||
// Returns true if more.
|
||||
///< Returns true if more.
|
||||
|
||||
bool isDir() const ;
|
||||
// Returns true if the current item is a directory.
|
||||
///< Returns true if the current item is a directory.
|
||||
|
||||
std::string modificationTimeString() const ;
|
||||
// Returns the last-modified time for the file in an undefined
|
||||
// format -- used for comparison.
|
||||
///< Returns the last-modified time for the file in an undefined
|
||||
///< format -- used for comparison.
|
||||
|
||||
std::string sizeString() const ;
|
||||
// Returns the file size as a decimal string. The value
|
||||
// may be more than 32 bits. See also class G::Number.
|
||||
///< Returns the file size as a decimal string. The value
|
||||
///< may be more than 32 bits. See also class G::Number.
|
||||
|
||||
Path filePath() const ;
|
||||
// Returns the path of the current item.
|
||||
///< Returns the path of the current item.
|
||||
|
||||
Path fileName() const ;
|
||||
// Returns the name of the current item.
|
||||
///< Returns the name of the current item.
|
||||
|
||||
private:
|
||||
DirectoryIterator( const DirectoryIterator & ) ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -96,9 +96,9 @@ bool G::Directory::writeable( std::string tmp_filename ) const
|
||||
|
||||
// ===
|
||||
|
||||
// Class: G::DirectoryIteratorImp
|
||||
// Description: A pimple-pattern implementation class for DirectoryIterator.
|
||||
//
|
||||
/// \class G::DirectoryIteratorImp
|
||||
/// A pimple-pattern implementation class for DirectoryIterator.
|
||||
///
|
||||
class G::DirectoryIteratorImp
|
||||
{
|
||||
private:
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -57,9 +57,9 @@ bool G::Directory::writeable( std::string ) const
|
||||
|
||||
// ===
|
||||
|
||||
// Class: G::DirectoryIteratorImp
|
||||
// Description: A pimple-pattern implementation class for DirectoryIterator.
|
||||
//
|
||||
/// \class G::DirectoryIteratorImp
|
||||
/// A pimple-pattern implementation class for DirectoryIterator.
|
||||
///
|
||||
class G::DirectoryIteratorImp
|
||||
{
|
||||
private:
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -51,15 +51,15 @@ void G::Exception::append( const char * more )
|
||||
{
|
||||
if( more != NULL && *more != '\0' )
|
||||
{
|
||||
m_what += ": " ;
|
||||
m_what += more ;
|
||||
m_what += std::string(": ") ;
|
||||
m_what += std::string(more) ;
|
||||
}
|
||||
}
|
||||
|
||||
void G::Exception::append( const std::string & more )
|
||||
{
|
||||
m_what += ": " ;
|
||||
m_what += more ;
|
||||
m_what += std::string(": ") ;
|
||||
m_what += std::string(more) ;
|
||||
}
|
||||
|
||||
|
||||
@ -80,3 +80,4 @@ void G::Exception::prepend( const char * context )
|
||||
}
|
||||
}
|
||||
|
||||
/// \file gexception.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -17,9 +17,9 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// ===
|
||||
//
|
||||
// gexception.h
|
||||
//
|
||||
///
|
||||
/// \file gexception.h
|
||||
///
|
||||
|
||||
#ifndef G_EXCEPTION_H
|
||||
#define G_EXCEPTION_H
|
||||
@ -28,15 +28,16 @@
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
/// \namespace G
|
||||
namespace G
|
||||
{
|
||||
class Exception ;
|
||||
}
|
||||
|
||||
// Class: G::Exception
|
||||
// Description: A general-purpose exception class derived from std::exception
|
||||
// and containing a std::string.
|
||||
//
|
||||
/// \class G::Exception
|
||||
/// A general-purpose exception class derived from std::exception
|
||||
/// and containing a std::string.
|
||||
///
|
||||
class G::Exception : public std::exception
|
||||
{
|
||||
protected:
|
||||
@ -44,45 +45,45 @@ protected:
|
||||
|
||||
public:
|
||||
Exception() ;
|
||||
// Default constructor.
|
||||
///< Default constructor.
|
||||
|
||||
explicit Exception( const char * what ) ;
|
||||
// Constructor.
|
||||
///< Constructor.
|
||||
|
||||
explicit Exception( const std::string & what ) ;
|
||||
// Constructor.
|
||||
///< Constructor.
|
||||
|
||||
virtual ~Exception() throw() ;
|
||||
// Destructor.
|
||||
///< Destructor.
|
||||
|
||||
virtual const char * what() const throw() ;
|
||||
// Override from std::exception.
|
||||
///< Override from std::exception.
|
||||
|
||||
void prepend( const char * context ) ;
|
||||
// Prepends context to the what string.
|
||||
// Inserts a separator as needed.
|
||||
///< Prepends context to the what string.
|
||||
///< Inserts a separator as needed.
|
||||
|
||||
void append( const char * more ) ;
|
||||
// Appends 'more' to the what string.
|
||||
// Inserts a separator as needed.
|
||||
///< Appends 'more' to the what string.
|
||||
///< Inserts a separator as needed.
|
||||
|
||||
void append( const std::string & more ) ;
|
||||
// Appends 'more' to the what string.
|
||||
// Inserts a separator as needed.
|
||||
///< Appends 'more' to the what string.
|
||||
///< Inserts a separator as needed.
|
||||
|
||||
void append( std::ostream & s ) ;
|
||||
// Appends the contents of the given std::ostringstream
|
||||
// (sic) to the what string. Does nothing if the
|
||||
// dynamic type of 's' is not a std::ostringstream.
|
||||
// Inserts a separator as needed.
|
||||
//
|
||||
// This method allows a derived-class exception
|
||||
// to be constructed and thrown on one line using
|
||||
// iostream formatting.
|
||||
// Eg. throw Error( std::ostringstream() << a << b ) ;
|
||||
///< Appends the contents of the given std::ostringstream
|
||||
///< (sic) to the what string. Does nothing if the
|
||||
///< dynamic type of 's' is not a std::ostringstream.
|
||||
///< Inserts a separator as needed.
|
||||
///<
|
||||
///< This method allows a derived-class exception
|
||||
///< to be constructed and thrown on one line using
|
||||
///< iostream formatting.
|
||||
///< Eg. throw Error( std::ostringstream() << a << b ) ;
|
||||
} ;
|
||||
|
||||
#define G_EXCEPTION( class_name , description ) class class_name : public G::Exception { public: class_name() { m_what = description ; } public: explicit class_name ( std::ostream & stream ) { m_what = description ; append(stream) ; } public: explicit class_name( const char * more ) { m_what = description ; append(more) ; } public: explicit class_name( const std::string & more ) { m_what = description ; append(more) ; } }
|
||||
#define G_EXCEPTION( class_name , description ) class class_name : public G::Exception { public: class_name() { m_what = description ; } public: explicit class_name( const char * more ) { m_what = description ; append(more) ; } public: explicit class_name( const std::string & more ) { m_what = description ; append(more) ; } }
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2001-2006 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
// Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
@ -64,3 +64,4 @@ G::Strings G::Executable::args() const
|
||||
return m_args ;
|
||||
}
|
||||
|
||||
/// \file gexe.cpp
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user