v1.5
This commit is contained in:
parent
446ba5e515
commit
ed23b3c747
15
ChangeLog
15
ChangeLog
@ -1,6 +1,21 @@
|
|||||||
E-MailRelay Change Log
|
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
|
1.3.3 -> 1.4
|
||||||
------------
|
------------
|
||||||
* POP3 server (enable with "--pop", disable at build-time with "./configure --disable-pop").
|
* POP3 server (enable with "--pop", disable at build-time with "./configure --disable-pop").
|
||||||
|
23
INSTALL
23
INSTALL
@ -1,17 +1,17 @@
|
|||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
What follows are generic installation instructions for doing a
|
With the exception of this introduction this document contains generic
|
||||||
GNU-style "./configure; make; make install-strip" installation from
|
installation instructions for doing a GNU-style
|
||||||
source under Linux, FreeBSD etc. The Windows installation instructions
|
"./configure; make; sudo make install" installation from source under Linux,
|
||||||
are in a separate document.
|
FreeBSD etc. The Windows installation instructions are in a separate document,
|
||||||
|
"doc/windows.txt".
|
||||||
|
|
||||||
The E-MailRelay "configure" script provides a few extra switches,
|
The E-MailRelay "configure" script provides a few extra confiruation
|
||||||
which are shown in the output of "./configure --help". The most
|
switches, which are shown in the output of "./configure --help". The
|
||||||
important of these is "--enable-fhs", which overrides all other
|
most important of these is "--enable-fhs", which overrides all other
|
||||||
directory modifiers, forcing compliance with the File Hierarchy
|
directory modifiers, forcing compliance with the File Hierarchy
|
||||||
Standard. This switch is used in building the RPMs, and may become the
|
Standard.
|
||||||
default in future releases.
|
|
||||||
|
|
||||||
There are also a set of variables which can be defined on the
|
There are also a set of variables which can be defined on the
|
||||||
"configure" command line for controlling all the installation
|
"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.
|
compiler-specific help in the relevant lib/<compiler> directory.
|
||||||
|
|
||||||
The E-MailRelay user guide describes what needs to be done after the
|
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
|
"make install" in order to get the emailrelay daemon to start up at boot-time,
|
||||||
boot-time, automatically forward e-mail and bounce failed mail.
|
automatically forward e-mail and bounce failed mail. You could also try running
|
||||||
|
the configuration GUI program, "emailrelay-gui", if available.
|
||||||
|
|
||||||
Basic Installation
|
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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## modify it under the terms of the GNU General Public License
|
||||||
@ -18,7 +18,7 @@
|
|||||||
##
|
##
|
||||||
#
|
#
|
||||||
EXTRA_DIST = emailrelay.spec ChangeLog
|
EXTRA_DIST = emailrelay.spec ChangeLog
|
||||||
SUBDIRS = src bin lib doc etc
|
SUBDIRS = src bin lib etc doc
|
||||||
e_doc_DATA = NEWS README changelog.gz
|
e_doc_DATA = NEWS README changelog.gz
|
||||||
CLEANFILES = changelog.gz
|
CLEANFILES = changelog.gz
|
||||||
changelog.gz: ChangeLog
|
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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -14,15 +14,11 @@
|
|||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = .
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
configure.lineno configure.status.lineno
|
configure.lineno config.status.lineno
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = config.h
|
CONFIG_HEADER = config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
html-recursive info-recursive install-data-recursive \
|
html-recursive info-recursive install-data-recursive \
|
||||||
install-exec-recursive install-info-recursive \
|
install-dvi-recursive install-exec-recursive \
|
||||||
install-recursive installcheck-recursive installdirs-recursive \
|
install-html-recursive install-info-recursive \
|
||||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
install-pdf-recursive install-ps-recursive install-recursive \
|
||||||
uninstall-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)"
|
am__installdirs = "$(DESTDIR)$(e_docdir)"
|
||||||
e_docDATA_INSTALL = $(INSTALL_DATA)
|
e_docDATA_INSTALL = $(INSTALL_DATA)
|
||||||
DATA = $(e_doc_DATA)
|
DATA = $(e_doc_DATA)
|
||||||
|
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||||
|
distclean-recursive maintainer-clean-recursive
|
||||||
ETAGS = etags
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
@ -75,8 +80,6 @@ GZIP_ENV = --best
|
|||||||
distuninstallcheck_listfiles = find . -type f -print
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
distcleancheck_listfiles = find . -type f -print
|
distcleancheck_listfiles = find . -type f -print
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -100,9 +103,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -113,10 +118,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -125,52 +130,67 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
EXTRA_DIST = emailrelay.spec ChangeLog
|
EXTRA_DIST = emailrelay.spec ChangeLog
|
||||||
SUBDIRS = src bin lib doc etc
|
SUBDIRS = src bin lib etc doc
|
||||||
e_doc_DATA = NEWS README changelog.gz
|
e_doc_DATA = NEWS README changelog.gz
|
||||||
CLEANFILES = changelog.gz
|
CLEANFILES = changelog.gz
|
||||||
all: config.h
|
all: config.h
|
||||||
@ -214,7 +234,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
|||||||
config.h: stamp-h1
|
config.h: stamp-h1
|
||||||
@if test ! -f $@; then \
|
@if test ! -f $@; then \
|
||||||
rm -f stamp-h1; \
|
rm -f stamp-h1; \
|
||||||
$(MAKE) stamp-h1; \
|
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||||
else :; fi
|
else :; fi
|
||||||
|
|
||||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
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:
|
distclean-hdr:
|
||||||
-rm -f config.h stamp-h1
|
-rm -f config.h stamp-h1
|
||||||
uninstall-info-am:
|
|
||||||
install-e_docDATA: $(e_doc_DATA)
|
install-e_docDATA: $(e_doc_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(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 \
|
@list='$(e_doc_DATA)'; for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
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'"; \
|
echo " $(e_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||||
$(e_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_docdir)/$$f"; \
|
$(e_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -241,7 +260,7 @@ install-e_docDATA: $(e_doc_DATA)
|
|||||||
uninstall-e_docDATA:
|
uninstall-e_docDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(e_doc_DATA)'; for p in $$list; do \
|
@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'"; \
|
echo " rm -f '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||||
rm -f "$(DESTDIR)$(e_docdir)/$$f"; \
|
rm -f "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -253,7 +272,13 @@ uninstall-e_docDATA:
|
|||||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
# (2) otherwise, pass the desired values on the `make' command line.
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
$(RECURSIVE_TARGETS):
|
$(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; \
|
dot_seen=no; \
|
||||||
target=`echo $@ | sed s/-recursive//`; \
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
@ -265,15 +290,20 @@ $(RECURSIVE_TARGETS):
|
|||||||
local_target="$$target"; \
|
local_target="$$target"; \
|
||||||
fi; \
|
fi; \
|
||||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
|| eval $$failcom; \
|
||||||
done; \
|
done; \
|
||||||
if test "$$dot_seen" = "no"; then \
|
if test "$$dot_seen" = "no"; then \
|
||||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
fi; test -z "$$fail"
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
$(RECURSIVE_CLEAN_TARGETS):
|
||||||
maintainer-clean-recursive:
|
@failcom='exit 1'; \
|
||||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
dot_seen=no; \
|
dot_seen=no; \
|
||||||
case "$@" in \
|
case "$@" in \
|
||||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
@ -294,7 +324,7 @@ maintainer-clean-recursive:
|
|||||||
local_target="$$target"; \
|
local_target="$$target"; \
|
||||||
fi; \
|
fi; \
|
||||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
|| eval $$failcom; \
|
||||||
done && test -z "$$fail"
|
done && test -z "$$fail"
|
||||||
tags-recursive:
|
tags-recursive:
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
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_FILES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
here=`pwd`; \
|
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; \
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
else \
|
else \
|
||||||
include_option=--include; \
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
fi; \
|
fi; \
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -f $$subdir/TAGS && \
|
test ! -f $$subdir/TAGS || \
|
||||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
@ -336,9 +368,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
|||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
$$tags $$unique
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique; \
|
||||||
|
fi
|
||||||
ctags: CTAGS
|
ctags: CTAGS
|
||||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
@ -364,23 +398,22 @@ distclean-tags:
|
|||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
$(am__remove_distdir)
|
$(am__remove_distdir)
|
||||||
mkdir $(distdir)
|
test -d $(distdir) || mkdir $(distdir)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -391,15 +424,19 @@ distdir: $(DISTFILES)
|
|||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -d "$(distdir)/$$subdir" \
|
test -d "$(distdir)/$$subdir" \
|
||||||
|| mkdir "$(distdir)/$$subdir" \
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
|
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||||
|
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||||
(cd $$subdir && \
|
(cd $$subdir && \
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
top_distdir="../$(top_distdir)" \
|
top_distdir="$$top_distdir" \
|
||||||
distdir="../$(distdir)/$$subdir" \
|
distdir="$$distdir/$$subdir" \
|
||||||
|
am__remove_distdir=: \
|
||||||
|
am__skip_length_check=: \
|
||||||
distdir) \
|
distdir) \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -407,18 +444,18 @@ distdir: $(DISTFILES)
|
|||||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
-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 -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
! -type d ! -perm -400 -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)
|
|| chmod -R a+r $(distdir)
|
||||||
dist-gzip: 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)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
dist-bzip2: 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)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
dist-tarZ: distdir
|
dist-tarZ: distdir
|
||||||
$(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||||
$(am__remove_distdir)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
dist-shar: distdir
|
dist-shar: distdir
|
||||||
@ -431,7 +468,7 @@ dist-zip: distdir
|
|||||||
$(am__remove_distdir)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
dist dist-all: 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)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
# This target untars the dist file and tries a VPATH configuration. Then
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
@ -440,13 +477,13 @@ dist dist-all: distdir
|
|||||||
distcheck: dist
|
distcheck: dist
|
||||||
case '$(DIST_ARCHIVES)' in \
|
case '$(DIST_ARCHIVES)' in \
|
||||||
*.tar.gz*) \
|
*.tar.gz*) \
|
||||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
*.tar.bz2*) \
|
*.tar.bz2*) \
|
||||||
bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\
|
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
*.tar.Z*) \
|
*.tar.Z*) \
|
||||||
uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
*.shar.gz*) \
|
*.shar.gz*) \
|
||||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | unshar ;;\
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||||
*.zip*) \
|
*.zip*) \
|
||||||
unzip $(distdir).zip ;;\
|
unzip $(distdir).zip ;;\
|
||||||
esac
|
esac
|
||||||
@ -482,7 +519,7 @@ distcheck: dist
|
|||||||
$(am__remove_distdir)
|
$(am__remove_distdir)
|
||||||
@(echo "$(distdir) archives ready for distribution: "; \
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
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:
|
distuninstallcheck:
|
||||||
@cd $(distuninstallcheck_dir) \
|
@cd $(distuninstallcheck_dir) \
|
||||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||||
@ -507,7 +544,7 @@ all-am: Makefile $(DATA) config.h
|
|||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
installdirs-am:
|
installdirs-am:
|
||||||
for dir in "$(DESTDIR)$(e_docdir)"; do \
|
for dir in "$(DESTDIR)$(e_docdir)"; do \
|
||||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: install-recursive
|
install: install-recursive
|
||||||
install-exec: install-exec-recursive
|
install-exec: install-exec-recursive
|
||||||
@ -529,7 +566,7 @@ clean-generic:
|
|||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -555,12 +592,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am: install-e_docDATA
|
install-data-am: install-e_docDATA
|
||||||
|
|
||||||
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-recursive
|
||||||
|
|
||||||
install-info: install-info-recursive
|
install-info: install-info-recursive
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-recursive
|
||||||
|
|
||||||
|
install-ps: install-ps-recursive
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive
|
maintainer-clean: maintainer-clean-recursive
|
||||||
@ -581,25 +626,26 @@ ps: ps-recursive
|
|||||||
|
|
||||||
ps-am:
|
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 \
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
check-am clean clean-generic clean-recursive ctags \
|
all all-am am--refresh check check-am clean clean-generic \
|
||||||
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
|
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||||
dist-tarZ dist-zip distcheck distclean distclean-generic \
|
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||||
distclean-hdr distclean-recursive distclean-tags \
|
distclean-generic distclean-hdr distclean-tags distcleancheck \
|
||||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
distdir distuninstallcheck dvi dvi-am html html-am info \
|
||||||
html-am info info-am install install-am install-data \
|
info-am install install-am install-data install-data-am \
|
||||||
install-data-am install-e_docDATA install-exec install-exec-am \
|
install-dvi install-dvi-am install-e_docDATA install-exec \
|
||||||
install-info install-info-am install-man install-strip \
|
install-exec-am install-html install-html-am install-info \
|
||||||
installcheck installcheck-am installdirs installdirs-am \
|
install-info-am install-man install-pdf install-pdf-am \
|
||||||
maintainer-clean maintainer-clean-generic \
|
install-ps install-ps-am install-strip installcheck \
|
||||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||||
uninstall uninstall-am uninstall-e_docDATA uninstall-info-am \
|
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||||
uninstall-local
|
uninstall-e_docDATA uninstall-local
|
||||||
|
|
||||||
changelog.gz: ChangeLog
|
changelog.gz: ChangeLog
|
||||||
if test -n "$(GZIP)" ; then $(GZIP) -c $(top_srcdir)/ChangeLog > changelog.tmp && mv changelog.tmp changelog.gz ; fi
|
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
|
only requiring the address of the target SMTP server to be put on the command
|
||||||
line.
|
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.
|
C++ source code is available for Linux, FreeBSD, MacOS X etc, and Windows.
|
||||||
Distribution is under the GNU General Public License.
|
Distribution is under the GNU General Public License.
|
||||||
|
|
||||||
Quick start
|
Quick start
|
||||||
-----------
|
-----------
|
||||||
To run the program as a proxy use the "--as-proxy" command-line switch followed
|
To use E-MailRelay in store-and-forward mode use the "--as-server" switch to
|
||||||
by the address of the target SMTP server. If you want to edit or filter e-mail
|
start the storage daemon in the background, and then trigger delivery of spooled
|
||||||
as it passes through the proxy then specify your pre-processor program with the
|
messages by running with the "--as-client" switch and the address of the target
|
||||||
"--filter" switch. You can optionally change the listening port number using
|
host.
|
||||||
"--port" and the spool directory using "--spool-dir".
|
|
||||||
|
|
||||||
For example, to start up a local proxy that passes messages to some "addsig"
|
For example, to start a storage daemon listening on port 10025 use a command like
|
||||||
script and then forwards them to an MTA running on "smarthost", use a command
|
this:
|
||||||
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
|
And then to forward the spooled mail to "smarthost" run something like this:
|
||||||
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.
|
|
||||||
|
|
||||||
For example, to start a storage daemon listening on port 10025 use a command
|
emailrelay --as-client smarthost:smtp --spool-dir /tmp
|
||||||
like this:
|
|
||||||
|
|
||||||
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
|
emailrelay --pop --no-smtp --log --close-stderr
|
||||||
|
|
||||||
The "emailrelay-submit" utility can be used to put messages straight into the
|
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
|
Note that by default E-MailRelay will always reject connections from remote
|
||||||
allow connections from anywhere use the "--remote-clients" switch.
|
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
|
For more information on the command-line options refer to the reference guide
|
||||||
or run:
|
or run:
|
||||||
@ -79,10 +86,10 @@ Source code documentation will be generated when building from source if
|
|||||||
|
|
||||||
Configurations
|
Configurations
|
||||||
--------------
|
--------------
|
||||||
Recent releases were developed on SuSE Linux 9.0 using:
|
Recent releases were developed on Ubuntu Linux 7.04 using:
|
||||||
* linux 2.6.11
|
* linux 2.6.20
|
||||||
* gcc 3.3.3
|
* gcc 4.1.2
|
||||||
* autoconf 2.59
|
* autoconf 2.61
|
||||||
|
|
||||||
and on Windows NT4 SP6 using:
|
and on Windows NT4 SP6 using:
|
||||||
* MSVC 6.0 SP3
|
* 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)
|
* glibc 2.2.4 (libc.so.6)
|
||||||
* autoconf 2.52
|
* autoconf 2.52
|
||||||
|
|
||||||
and to Windows 98 using:
|
and on Windows 98 using:
|
||||||
* MSVC 6.0
|
* MSVC 6.0
|
||||||
|
|
||||||
Versions of the code have also been built successfully on:
|
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 MSVC 6.0
|
||||||
* Windows NT 4.0 using Cygwin (DLL 1.3.22) and gcc 3.2
|
* 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 NT 4.0 using MinGW 2.0.0 and gcc 3.2
|
||||||
|
* Windows XP using MinGW 3.1.0 gcc 3.4.2
|
||||||
|
|
||||||
|
|
||||||
Feedback
|
Feedback
|
||||||
--------
|
--------
|
||||||
Please feel free to e-mail the author at
|
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
|
||||||
dnl This program is free software; you can redistribute it and/or
|
dnl This program is free software; you can redistribute it and/or
|
||||||
dnl modify it under the terms of the GNU General Public License
|
dnl modify it under the terms of the GNU General Public License
|
||||||
@ -202,17 +202,42 @@ then
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl enable-fastbuild
|
dnl enable-gui
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN([ENABLE_FASTBUILD],
|
AC_DEFUN([ENABLE_GUI],
|
||||||
[
|
[
|
||||||
if test "$enable_fastbuild" = "yes"
|
qt4="no"
|
||||||
|
qt4moc="no"
|
||||||
|
if test "$enable_gui" = "no"
|
||||||
then
|
then
|
||||||
CXX="`pwd`/bin/fastbuild.sh"
|
AC_DEFINE(HAVE_GUI,0,[Define to enable gui code])
|
||||||
chmod +x "$CXX"
|
else
|
||||||
AR="`pwd`/bin/fastbuild.sh"
|
PKG_CHECK_MODULES(QT,QtGui >= 4.0.1,[qt4=yes],[AC_MSG_RESULT([no])])
|
||||||
RANLIB="true"
|
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
|
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
|
dnl enable-pop
|
||||||
|
834
aclocal.m4
vendored
834
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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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_
|
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-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
|
noinst_cleanup = emailrelay-test.sh emailrelay-soak.sh
|
||||||
noinst_SCRIPTS = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
|
noinst_SCRIPTS = emailrelay-test.sh emailrelay-soak.sh emailrelay-runperl.js emailrelay-resubmit.js
|
||||||
e_init_SCRIPTS = emailrelay
|
e_init_SCRIPTS = emailrelay
|
||||||
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh emailrelay-submit.sh
|
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)
|
CLEANFILES = $(noinst_cleanup) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
|
||||||
|
|
||||||
|
140
bin/Makefile.in
140
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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -18,15 +18,11 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
am__installdirs = "$(DESTDIR)$(e_initdir)" "$(DESTDIR)$(e_examplesdir)"
|
am__installdirs = "$(DESTDIR)$(e_initdir)" \
|
||||||
|
"$(DESTDIR)$(e_examplesdir)"
|
||||||
e_initSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
e_initSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||||
SCRIPTS = $(e_init_SCRIPTS) $(noinst_SCRIPTS)
|
SCRIPTS = $(e_init_SCRIPTS) $(noinst_SCRIPTS)
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_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)
|
e_examplesDATA_INSTALL = $(INSTALL_DATA)
|
||||||
DATA = $(e_examples_DATA)
|
DATA = $(e_examples_DATA)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -82,9 +83,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -95,10 +98,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -107,53 +110,68 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
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_
|
top_builddir = @top_builddir@
|
||||||
noinst_cleanup = emailrelay-doxygen-filter.sh emailrelay-test.sh emailrelay-soak.sh
|
top_srcdir = @top_srcdir@
|
||||||
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_init_SCRIPTS = emailrelay
|
||||||
e_examples_DATA = emailrelay-process.sh emailrelay-notify.sh emailrelay-deliver.sh emailrelay-resubmit.sh emailrelay-submit.sh
|
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)
|
CLEANFILES = $(noinst_cleanup) $(e_init_SCRIPTS) $(e_examples_DATA) $(work_scripts)
|
||||||
TESTS = emailrelay-test.sh
|
TESTS = emailrelay-test.sh
|
||||||
SUFFIXES = .sh_ .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
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
install-e_initSCRIPTS: $(e_init_SCRIPTS)
|
install-e_initSCRIPTS: $(e_init_SCRIPTS)
|
||||||
@$(NORMAL_INSTALL)
|
@$(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 \
|
@list='$(e_init_SCRIPTS)'; for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
if test -f $$d$$p; then \
|
if test -f $$d$$p; then \
|
||||||
@ -209,13 +227,12 @@ uninstall-e_initSCRIPTS:
|
|||||||
echo " rm -f '$(DESTDIR)$(e_initdir)/$$f'"; \
|
echo " rm -f '$(DESTDIR)$(e_initdir)/$$f'"; \
|
||||||
rm -f "$(DESTDIR)$(e_initdir)/$$f"; \
|
rm -f "$(DESTDIR)$(e_initdir)/$$f"; \
|
||||||
done
|
done
|
||||||
uninstall-info-am:
|
|
||||||
install-e_examplesDATA: $(e_examples_DATA)
|
install-e_examplesDATA: $(e_examples_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(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 \
|
@list='$(e_examples_DATA)'; for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
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'"; \
|
echo " $(e_examplesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(e_examplesdir)/$$f'"; \
|
||||||
$(e_examplesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_examplesdir)/$$f"; \
|
$(e_examplesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_examplesdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -223,7 +240,7 @@ install-e_examplesDATA: $(e_examples_DATA)
|
|||||||
uninstall-e_examplesDATA:
|
uninstall-e_examplesDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(e_examples_DATA)'; for p in $$list; do \
|
@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'"; \
|
echo " rm -f '$(DESTDIR)$(e_examplesdir)/$$f'"; \
|
||||||
rm -f "$(DESTDIR)$(e_examplesdir)/$$f"; \
|
rm -f "$(DESTDIR)$(e_examplesdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -235,9 +252,9 @@ CTAGS:
|
|||||||
|
|
||||||
|
|
||||||
check-TESTS: $(TESTS)
|
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; \
|
srcdir=$(srcdir); export srcdir; \
|
||||||
list='$(TESTS)'; \
|
list=' $(TESTS) '; \
|
||||||
if test -n "$$list"; then \
|
if test -n "$$list"; then \
|
||||||
for tst in $$list; do \
|
for tst in $$list; do \
|
||||||
if test -f ./$$tst; then dir=./; \
|
if test -f ./$$tst; then dir=./; \
|
||||||
@ -246,7 +263,7 @@ check-TESTS: $(TESTS)
|
|||||||
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
|
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
|
||||||
all=`expr $$all + 1`; \
|
all=`expr $$all + 1`; \
|
||||||
case " $(XFAIL_TESTS) " in \
|
case " $(XFAIL_TESTS) " in \
|
||||||
*" $$tst "*) \
|
*$$ws$$tst$$ws*) \
|
||||||
xpass=`expr $$xpass + 1`; \
|
xpass=`expr $$xpass + 1`; \
|
||||||
failed=`expr $$failed + 1`; \
|
failed=`expr $$failed + 1`; \
|
||||||
echo "XPASS: $$tst"; \
|
echo "XPASS: $$tst"; \
|
||||||
@ -258,7 +275,7 @@ check-TESTS: $(TESTS)
|
|||||||
elif test $$? -ne 77; then \
|
elif test $$? -ne 77; then \
|
||||||
all=`expr $$all + 1`; \
|
all=`expr $$all + 1`; \
|
||||||
case " $(XFAIL_TESTS) " in \
|
case " $(XFAIL_TESTS) " in \
|
||||||
*" $$tst "*) \
|
*$$ws$$tst$$ws*) \
|
||||||
xfail=`expr $$xfail + 1`; \
|
xfail=`expr $$xfail + 1`; \
|
||||||
echo "XFAIL: $$tst"; \
|
echo "XFAIL: $$tst"; \
|
||||||
;; \
|
;; \
|
||||||
@ -289,41 +306,40 @@ check-TESTS: $(TESTS)
|
|||||||
skipped=""; \
|
skipped=""; \
|
||||||
if test "$$skip" -ne 0; then \
|
if test "$$skip" -ne 0; then \
|
||||||
skipped="($$skip tests were not run)"; \
|
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"; \
|
dashes="$$skipped"; \
|
||||||
fi; \
|
fi; \
|
||||||
report=""; \
|
report=""; \
|
||||||
if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
|
if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
|
||||||
report="Please report to $(PACKAGE_BUGREPORT)"; \
|
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"; \
|
dashes="$$report"; \
|
||||||
fi; \
|
fi; \
|
||||||
dashes=`echo "$$dashes" | sed s/./=/g`; \
|
dashes=`echo "$$dashes" | sed s/./=/g`; \
|
||||||
echo "$$dashes"; \
|
echo "$$dashes"; \
|
||||||
echo "$$banner"; \
|
echo "$$banner"; \
|
||||||
test -n "$$skipped" && echo "$$skipped"; \
|
test -z "$$skipped" || echo "$$skipped"; \
|
||||||
test -n "$$report" && echo "$$report"; \
|
test -z "$$report" || echo "$$report"; \
|
||||||
echo "$$dashes"; \
|
echo "$$dashes"; \
|
||||||
test "$$failed" -eq 0; \
|
test "$$failed" -eq 0; \
|
||||||
else :; fi
|
else :; fi
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -340,7 +356,7 @@ check: check-am
|
|||||||
all-am: Makefile $(SCRIPTS) $(DATA)
|
all-am: Makefile $(SCRIPTS) $(DATA)
|
||||||
installdirs:
|
installdirs:
|
||||||
for dir in "$(DESTDIR)$(e_initdir)" "$(DESTDIR)$(e_examplesdir)"; do \
|
for dir in "$(DESTDIR)$(e_initdir)" "$(DESTDIR)$(e_examplesdir)"; do \
|
||||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: install-am
|
install: install-am
|
||||||
install-exec: install-exec-am
|
install-exec: install-exec-am
|
||||||
@ -362,7 +378,7 @@ clean-generic:
|
|||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@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-data-am: install-data-local install-e_examplesDATA \
|
||||||
install-e_initSCRIPTS
|
install-e_initSCRIPTS
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -413,19 +437,23 @@ ps: ps-am
|
|||||||
ps-am:
|
ps-am:
|
||||||
|
|
||||||
uninstall-am: uninstall-e_examplesDATA uninstall-e_initSCRIPTS \
|
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 \
|
.PHONY: all all-am check check-TESTS check-am clean clean-generic \
|
||||||
distclean distclean-generic distdir dvi dvi-am html html-am \
|
distclean distclean-generic distdir dvi dvi-am html html-am \
|
||||||
info info-am install install-am install-data install-data-am \
|
info info-am install install-am install-data install-data-am \
|
||||||
install-data-local install-e_examplesDATA \
|
install-data-local install-dvi install-dvi-am \
|
||||||
install-e_initSCRIPTS install-exec install-exec-am \
|
install-e_examplesDATA install-e_initSCRIPTS install-exec \
|
||||||
install-info install-info-am install-man install-strip \
|
install-exec-am install-html install-html-am install-info \
|
||||||
installcheck installcheck-am installdirs maintainer-clean \
|
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 \
|
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||||
pdf-am ps ps-am uninstall uninstall-am \
|
pdf-am ps ps-am uninstall uninstall-am \
|
||||||
uninstall-e_examplesDATA uninstall-e_initSCRIPTS \
|
uninstall-e_examplesDATA uninstall-e_initSCRIPTS \
|
||||||
uninstall-info-am uninstall-local
|
uninstall-local
|
||||||
|
|
||||||
|
|
||||||
.sh_.sh:
|
.sh_.sh:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
@ -22,9 +22,7 @@
|
|||||||
# emailrelay-deliver.sh
|
# emailrelay-deliver.sh
|
||||||
#
|
#
|
||||||
# Looks for local mail in the E-MailRelay spool directory, and delivers
|
# 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
|
# it using 'procmail'.
|
||||||
# postmaster, since E-MailRelay will not accept mail for any other
|
|
||||||
# local recipient.
|
|
||||||
#
|
#
|
||||||
# usage: emailrelay-deliver.sh [<spool-dir>]
|
# 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
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,32 +17,26 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// emailrelay-resubmit.js
|
/// \file 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>]
|
|
||||||
//
|
|
||||||
|
|
||||||
// configuration
|
/// configuration
|
||||||
//
|
///
|
||||||
var cfg_store = "__SPOOL_DIR__" ;
|
var cfg_store = "__SPOOL_DIR__" ;
|
||||||
var cfg_retry_limit = 5 ;
|
var cfg_retry_limit = 5 ;
|
||||||
var cfg_debug = true ;
|
var cfg_debug = true ;
|
||||||
|
|
||||||
// parse the command line
|
/// parse the command line
|
||||||
//
|
///
|
||||||
var args = WScript.Arguments
|
var args = WScript.Arguments
|
||||||
if( args.length >= 1 )
|
if( args.length >= 1 )
|
||||||
{
|
{
|
||||||
cfg_store = args(0) ;
|
cfg_store = args(0) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// debugging
|
/// debugging
|
||||||
//
|
///
|
||||||
function debug( line )
|
function debug( line )
|
||||||
{
|
{
|
||||||
if( cfg_debug )
|
if( cfg_debug )
|
||||||
@ -51,8 +45,8 @@ function debug( line )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// check the spool directory
|
/// check the spool directory
|
||||||
//
|
///
|
||||||
var fso = WScript.CreateObject( "Scripting.FileSystemObject" ) ;
|
var fso = WScript.CreateObject( "Scripting.FileSystemObject" ) ;
|
||||||
if( ! fso.FolderExists( cfg_store ) )
|
if( ! fso.FolderExists( cfg_store ) )
|
||||||
{
|
{
|
||||||
@ -60,20 +54,20 @@ if( ! fso.FolderExists( cfg_store ) )
|
|||||||
WScript.Quit( 1 ) ;
|
WScript.Quit( 1 ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// for each file...
|
/// for each file...
|
||||||
//
|
///
|
||||||
var folder = fso.GetFolder( cfg_store ) ;
|
var folder = fso.GetFolder( cfg_store ) ;
|
||||||
var re_reason = new RegExp( "MailRelay-Reason: " , "" ) ;
|
var re_reason = new RegExp( "MailRelay-Reason: " , "" ) ;
|
||||||
var re_bad = new RegExp( ".*\.bad" , "i" ) ;
|
var re_bad = new RegExp( ".*\.bad" , "i" ) ;
|
||||||
var iter = new Enumerator( folder.Files ) ;
|
var iter = new Enumerator( folder.Files ) ;
|
||||||
for( ; ! iter.atEnd() ; iter.moveNext() )
|
for( ; ! iter.atEnd() ; iter.moveNext() )
|
||||||
{
|
{
|
||||||
// if a failed envelope file...
|
///< if a failed envelope file...
|
||||||
var path = new String(iter.item()) ;
|
var path = new String(iter.item()) ;
|
||||||
debug( "path: " + path ) ;
|
debug( "path: " + path ) ;
|
||||||
if( path.match(re_bad) )
|
if( path.match(re_bad) )
|
||||||
{
|
{
|
||||||
// count the failure lines
|
///< count the failure lines
|
||||||
var stream = fso.OpenTextFile( path , 1 ) ;
|
var stream = fso.OpenTextFile( path , 1 ) ;
|
||||||
var failures = 0 ;
|
var failures = 0 ;
|
||||||
while( !stream.AtEndOfStream )
|
while( !stream.AtEndOfStream )
|
||||||
@ -89,7 +83,7 @@ for( ; ! iter.atEnd() ; iter.moveNext() )
|
|||||||
debug( "failures: " + failures ) ;
|
debug( "failures: " + failures ) ;
|
||||||
if( failures < cfg_retry_limit )
|
if( failures < cfg_retry_limit )
|
||||||
{
|
{
|
||||||
// remove the ".bad" suffix
|
///< remove the ".bad" suffix
|
||||||
var new_path = path.substr( 0 , path.length-4 ) ;
|
var new_path = path.substr( 0 , path.length-4 ) ;
|
||||||
debug( "rename: " + path + " -> " + new_path ) ;
|
debug( "rename: " + path + " -> " + new_path ) ;
|
||||||
fso.MoveFile( path , new_path ) ;
|
fso.MoveFile( path , new_path ) ;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,47 +17,28 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// emailrelay-runperl.js
|
/// \file 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:
|
|
||||||
var cfg_perl="perl -S -T -w"
|
var cfg_perl="perl -S -T -w"
|
||||||
var cfg_perl_script="spamassassin"
|
var cfg_perl_script="spamassassin"
|
||||||
|
|
||||||
// parse our command line
|
/// parse our command line
|
||||||
var args = WScript.Arguments
|
var args = WScript.Arguments
|
||||||
var filename = args(0)
|
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_in = "\"" + filename + "\""
|
||||||
var cmd_out = "\"" + filename + ".tmp\""
|
var cmd_out = "\"" + filename + ".tmp\""
|
||||||
var cmd_err = "\"" + filename + ".err\""
|
var cmd_err = "\"" + filename + ".err\""
|
||||||
var cmd_perl = "cmd /c " + cfg_perl + " " + cfg_perl_script
|
var cmd_perl = "cmd /c " + cfg_perl + " " + cfg_perl_script
|
||||||
var cmd = cmd_perl + " < " + cmd_in + " > " + cmd_out + " 2> " + cmd_err
|
var cmd = cmd_perl + " < " + cmd_in + " > " + cmd_out + " 2> " + cmd_err
|
||||||
|
|
||||||
// run the command
|
/// run the command
|
||||||
var sh = WScript.CreateObject("WScript.Shell")
|
var sh = WScript.CreateObject("WScript.Shell")
|
||||||
var rc = sh.Run( cmd , 0 , true )
|
var rc = sh.Run( cmd , 0 , true )
|
||||||
|
|
||||||
// check the file redirection
|
/// check the file redirection
|
||||||
var fs = WScript.CreateObject("Scripting.FileSystemObject")
|
var fs = WScript.CreateObject("Scripting.FileSystemObject")
|
||||||
if( !fs.FileExists(filename+".tmp") || !fs.FileExists(filename+".err") )
|
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 )
|
WScript.Quit( 2 )
|
||||||
}
|
}
|
||||||
|
|
||||||
// success or failure
|
/// success or failure
|
||||||
if( rc == 0 )
|
if( rc == 0 )
|
||||||
{
|
{
|
||||||
fs.DeleteFile( filename )
|
fs.DeleteFile( filename )
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# 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
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
/* Define if gmtime_r in time.h */
|
/* Define if gmtime_r in time.h */
|
||||||
#undef HAVE_GMTIME_R
|
#undef HAVE_GMTIME_R
|
||||||
|
|
||||||
|
/* Define to enable gui code */
|
||||||
|
#undef HAVE_GUI
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
#undef HAVE_INTTYPES_H
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
@ -72,6 +75,9 @@
|
|||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
#undef HAVE_UNISTD_H
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <zlib.h> header file. */
|
||||||
|
#undef HAVE_ZLIB_H
|
||||||
|
|
||||||
/* Name of package */
|
/* Name of package */
|
||||||
#undef 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
|
||||||
dnl This program is free software; you can redistribute it and/or
|
dnl This program is free software; you can redistribute it and/or
|
||||||
dnl modify it under the terms of the GNU General Public License
|
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
|
dnl
|
||||||
|
|
||||||
AC_INIT(src/gsmtp/gsmtp.h)
|
AC_INIT(src/gsmtp/gsmtp.h)
|
||||||
AM_INIT_AUTOMAKE(emailrelay,1.4)
|
AM_INIT_AUTOMAKE(emailrelay,1.5)
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
@ -33,6 +33,7 @@ AC_PROG_CXX
|
|||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AC_PROG_AWK
|
AC_PROG_AWK
|
||||||
|
AC_PROG_GREP
|
||||||
AC_CHECK_PROGS(MAKE,make gmake)
|
AC_CHECK_PROGS(MAKE,make gmake)
|
||||||
AC_CHECK_PROGS(AR,ar gar)
|
AC_CHECK_PROGS(AR,ar gar)
|
||||||
AC_CHECK_PROGS(GZIP,gzip)
|
AC_CHECK_PROGS(GZIP,gzip)
|
||||||
@ -46,6 +47,7 @@ dnl
|
|||||||
AC_LANG_C
|
AC_LANG_C
|
||||||
AC_SEARCH_LIBS(gethostbyname,nsl)
|
AC_SEARCH_LIBS(gethostbyname,nsl)
|
||||||
AC_SEARCH_LIBS(connect,socket)
|
AC_SEARCH_LIBS(connect,socket)
|
||||||
|
AC_SEARCH_LIBS(compress2,z)
|
||||||
|
|
||||||
dnl ===
|
dnl ===
|
||||||
dnl check for header files, functions and typedefs...
|
dnl check for header files, functions and typedefs...
|
||||||
@ -55,6 +57,7 @@ AC_HEADER_DIRENT
|
|||||||
AC_HEADER_TIME
|
AC_HEADER_TIME
|
||||||
AC_CHECK_HEADERS(unistd.h)
|
AC_CHECK_HEADERS(unistd.h)
|
||||||
AC_CHECK_HEADERS(sys/time.h)
|
AC_CHECK_HEADERS(sys/time.h)
|
||||||
|
AC_CHECK_HEADERS(zlib.h)
|
||||||
AC_CHECK_FUNCS(glob)
|
AC_CHECK_FUNCS(glob)
|
||||||
AC_LANG_CPLUSPLUS
|
AC_LANG_CPLUSPLUS
|
||||||
ACLOCAL_TYPE_SOCKLEN_T
|
ACLOCAL_TYPE_SOCKLEN_T
|
||||||
@ -66,18 +69,17 @@ ACLOCAL_CHECK_GMTIME_R
|
|||||||
ACLOCAL_CHECK_LOCALTIME_R
|
ACLOCAL_CHECK_LOCALTIME_R
|
||||||
ACLOCAL_CHECK_SETGROUPS
|
ACLOCAL_CHECK_SETGROUPS
|
||||||
|
|
||||||
|
dnl ===
|
||||||
|
dnl initialise aclocal/pkg.m4...
|
||||||
|
dnl
|
||||||
|
PKG_PROG_PKG_CONFIG(0.9.0)
|
||||||
|
|
||||||
dnl ===
|
dnl ===
|
||||||
dnl "--enable-debug"
|
dnl "--enable-debug"
|
||||||
dnl
|
dnl
|
||||||
AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[enable extra debug messages at compile-time (default disabled)]))
|
AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[enable extra debug messages at compile-time (default disabled)]))
|
||||||
ENABLE_DEBUG
|
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 ===
|
||||||
dnl "--enable-pop"
|
dnl "--enable-pop"
|
||||||
dnl
|
dnl
|
||||||
@ -90,6 +92,12 @@ dnl
|
|||||||
AC_ARG_ENABLE(ipv6,AC_HELP_STRING([--enable-ipv6],[enable ipv6 (default disabled)]))
|
AC_ARG_ENABLE(ipv6,AC_HELP_STRING([--enable-ipv6],[enable ipv6 (default disabled)]))
|
||||||
ENABLE_IPV6
|
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 ===
|
||||||
dnl "--with-workshop"
|
dnl "--with-workshop"
|
||||||
dnl
|
dnl
|
||||||
@ -121,6 +129,8 @@ AC_SUBST(e_spooldir)
|
|||||||
if test "$e_spooldir" = "" ; then e_spooldir="$localstatedir/spool/emailrelay" ; fi
|
if test "$e_spooldir" = "" ; then e_spooldir="$localstatedir/spool/emailrelay" ; fi
|
||||||
AC_SUBST(e_examplesdir)
|
AC_SUBST(e_examplesdir)
|
||||||
if test "$e_examplesdir" = "" ; then e_examplesdir="$libexecdir" ; fi
|
if test "$e_examplesdir" = "" ; then e_examplesdir="$libexecdir" ; fi
|
||||||
|
AC_SUBST(e_qtmoc)
|
||||||
|
if test "$e_qtmoc" = "" ; then e_qtmoc="moc" ; fi
|
||||||
ENABLE_FHS
|
ENABLE_FHS
|
||||||
|
|
||||||
dnl ===
|
dnl ===
|
||||||
@ -131,5 +141,5 @@ SET_MAKE=""
|
|||||||
dnl ===
|
dnl ===
|
||||||
dnl generate files...
|
dnl generate files...
|
||||||
dnl
|
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
|
#! /bin/sh
|
||||||
# depcomp - compile a program generating dependencies as side-effects
|
# 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
|
# 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
|
# 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
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
# 02111-1307, USA.
|
# 02110-1301, USA.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
@ -43,17 +44,18 @@ Environment variables:
|
|||||||
depmode Dependency tracking mode.
|
depmode Dependency tracking mode.
|
||||||
source Source file read by `PROGRAMS ARGS'.
|
source Source file read by `PROGRAMS ARGS'.
|
||||||
object Object file output by `PROGRAMS ARGS'.
|
object Object file output by `PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
depfile Dependency file to output.
|
depfile Dependency file to output.
|
||||||
tmpdepfile Temporary file to use when outputing dependencies.
|
tmpdepfile Temporary file to use when outputing dependencies.
|
||||||
libtool Whether libtool is used (yes/no).
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
Report bugs to <bug-automake@gnu.org>.
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
EOF
|
EOF
|
||||||
exit 0
|
exit $?
|
||||||
;;
|
;;
|
||||||
-v | --v*)
|
-v | --v*)
|
||||||
echo "depcomp $scriptversion"
|
echo "depcomp $scriptversion"
|
||||||
exit 0
|
exit $?
|
||||||
;;
|
;;
|
||||||
esac
|
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
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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/'`}
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
rm -f "$tmpdepfile"
|
rm -f "$tmpdepfile"
|
||||||
@ -98,7 +92,20 @@ gcc3)
|
|||||||
## gcc 3 implements dependency tracking that does exactly what
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
## 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=$?
|
stat=$?
|
||||||
if test $stat -eq 0; then :
|
if test $stat -eq 0; then :
|
||||||
else
|
else
|
||||||
@ -283,6 +290,46 @@ icc)
|
|||||||
rm -f "$tmpdepfile"
|
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)
|
tru64)
|
||||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
# 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$//'`
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
|
||||||
if test "$libtool" = yes; then
|
if test "$libtool" = yes; then
|
||||||
tmpdepfile1="$dir.libs/$base.lo.d"
|
# With Tru64 cc, shared objects can also be used to make a
|
||||||
tmpdepfile2="$dir.libs/$base.d"
|
# 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
|
"$@" -Wc,-MD
|
||||||
else
|
else
|
||||||
tmpdepfile1="$dir$base.o.d"
|
tmpdepfile1=$dir$base.o.d
|
||||||
tmpdepfile2="$dir$base.d"
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
tmpdepfile4=$dir$base.d
|
||||||
"$@" -MD
|
"$@" -MD
|
||||||
fi
|
fi
|
||||||
|
|
||||||
stat=$?
|
stat=$?
|
||||||
if test $stat -eq 0; then :
|
if test $stat -eq 0; then :
|
||||||
else
|
else
|
||||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
exit $stat
|
exit $stat
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -f "$tmpdepfile1"; then
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
tmpdepfile="$tmpdepfile1"
|
do
|
||||||
else
|
test -f "$tmpdepfile" && break
|
||||||
tmpdepfile="$tmpdepfile2"
|
done
|
||||||
fi
|
|
||||||
if test -f "$tmpdepfile"; then
|
if test -f "$tmpdepfile"; then
|
||||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
# That's a tab and a space in the [].
|
# That's a tab and a space in the [].
|
||||||
@ -458,7 +521,8 @@ cpp)
|
|||||||
done
|
done
|
||||||
|
|
||||||
"$@" -E |
|
"$@" -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"
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
rm -f "$depfile"
|
rm -f "$depfile"
|
||||||
echo "$object : \\" > "$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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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_in=doxygen_header.html
|
||||||
html_files_thru=index.html emailrelay-man.html $(stylesheet)
|
html_files_thru=index.html emailrelay-man.html $(stylesheet)
|
||||||
html_files_out=readme.html developer.html reference.html userguide.html windows.html changelog.html
|
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
|
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)
|
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_MANS = $(man_files_in)
|
||||||
#man1_DATA = $(man_files_out)
|
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files) $(docbook_files_out)
|
||||||
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files)
|
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) $(docbook_files_out) doxygen/* *.db *.mu docbook/*
|
||||||
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) doxygen/*
|
|
||||||
|
|
||||||
SUFFIXES = .txt .html
|
SUFFIXES = .txt .html .db .mu
|
||||||
|
|
||||||
filter=$(top_builddir)/bin/emailrelay-doxygen-filter.sh
|
converter_html=$(top_builddir)/bin/txt2html.sh
|
||||||
filter_src=$(top_srcdir)/bin/emailrelay-doxygen-filter.sh_
|
converter_html_src=$(top_srcdir)/bin/txt2html.sh_
|
||||||
converter=$(top_builddir)/bin/txt2html.sh
|
converter_txt2mu=$(top_builddir)/bin/txt2mu.sh
|
||||||
converter_src=$(top_srcdir)/bin/txt2html.sh_
|
converter_txt2mu_src=$(top_srcdir)/bin/txt2mu.sh_
|
||||||
converter_helper1=$(top_builddir)/bin/txt2mu.sh
|
converter_mu2html=$(top_builddir)/bin/mu2html.sh
|
||||||
converter_helper1_src=$(top_srcdir)/bin/txt2mu.sh_
|
converter_mu2html_src=$(top_srcdir)/bin/mu2html.sh_
|
||||||
converter_helper2=$(top_builddir)/bin/mu2html.sh
|
converter_expand=$(top_builddir)/bin/expand.sh
|
||||||
converter_helper2_src=$(top_srcdir)/bin/mu2html.sh_
|
converter_expand_src=$(top_srcdir)/bin/expand.sh_
|
||||||
converter_helper3=$(top_builddir)/bin/expand.sh
|
converter_mu2docbook=$(top_builddir)/bin/mu2docbook.sh
|
||||||
converter_helper3_src=$(top_srcdir)/bin/expand.sh_
|
converter_mu2docbook_src=$(top_srcdir)/bin/mu2docbook.sh_
|
||||||
|
|
||||||
.txt.html:
|
.txt.html:
|
||||||
$(converter) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
$(converter_html) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
||||||
|
|
||||||
$(filter): $(filter_src)
|
.txt.mu:
|
||||||
cp $(filter_src) $(filter)
|
$(converter_txt2mu) -a "$(AWK)" $(top_srcdir)/doc/$*.txt > $*.mu
|
||||||
chmod ugo+x $(filter)
|
|
||||||
|
|
||||||
$(converter): $(converter_src) $(converter_helper1) $(converter_helper2) $(converter_helper3)
|
.mu.db:
|
||||||
cp $(converter_src) $(converter)
|
$(converter_mu2docbook) -a "$(AWK)" -x < $(top_builddir)/doc/$*.mu > $*.db
|
||||||
chmod ugo+x $(converter)
|
|
||||||
|
|
||||||
$(converter_helper1): $(converter_helper1_src)
|
$(converter_html): $(converter_html_src) $(converter_txt2mu) $(converter_mu2html) $(converter_expand)
|
||||||
cp $(converter_helper1_src) $(converter_helper1)
|
cp $(converter_html_src) $(converter_html)
|
||||||
chmod ugo+x $(converter_helper1)
|
chmod ugo+x $(converter_html)
|
||||||
|
|
||||||
$(converter_helper2): $(converter_helper2_src)
|
head.db: $(converter_mu2docbook)
|
||||||
cp $(converter_helper2_src) $(converter_helper2)
|
$(converter_mu2docbook) --head "E-MailRelay" > head.db.tmp && mv -f head.db.tmp head.db
|
||||||
chmod ugo+x $(converter_helper2)
|
|
||||||
|
|
||||||
$(converter_helper3): $(converter_helper3_src)
|
tail.db: $(converter_mu2docbook)
|
||||||
cp $(converter_helper3_src) $(converter_helper3)
|
$(converter_mu2docbook) --tail > tail.db.tmp && mv -f tail.db.tmp tail.db
|
||||||
chmod ugo+x $(converter_helper3)
|
|
||||||
|
|
||||||
.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
|
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
|
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
|
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)
|
developer.mu reference.mu userguide.mu: $(converter_txt2mu)
|
||||||
$(converter) -a "$(AWK)" $(top_srcdir)/README $(stylesheet) > readme.html
|
|
||||||
|
|
||||||
changelog.html: $(top_srcdir)/ChangeLog $(converter)
|
readme.html: $(top_srcdir)/README $(converter_html)
|
||||||
$(converter) -a "$(AWK)" $(top_srcdir)/ChangeLog $(stylesheet) > changelog.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
|
emailrelay.1.gz : emailrelay.1
|
||||||
if test -n "$(GZIP)" ; then $(GZIP) -c $(top_srcdir)/doc/emailrelay.1 > emailrelay.1.gz ; fi
|
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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -18,15 +18,11 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SCRIPTS = $(noinst_SCRIPTS)
|
SCRIPTS = $(noinst_SCRIPTS)
|
||||||
@ -55,12 +51,16 @@ man1dir = $(mandir)/man1
|
|||||||
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(e_docdir)"
|
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(e_docdir)"
|
||||||
NROFF = nroff
|
NROFF = nroff
|
||||||
MANS = $(man1_MANS)
|
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)
|
e_docDATA_INSTALL = $(INSTALL_DATA)
|
||||||
DATA = $(e_doc_DATA)
|
DATA = $(e_doc_DATA)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -84,9 +84,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -97,10 +99,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -109,47 +111,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
stylesheet = emailrelay.css
|
stylesheet = emailrelay.css
|
||||||
txt_files = developer.txt reference.txt userguide.txt windows.txt
|
txt_files = developer.txt reference.txt userguide.txt windows.txt
|
||||||
man_files_in = emailrelay.1 emailrelay-passwd.1 emailrelay-poke.1 emailrelay-submit.1
|
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_in = doxygen_header.html
|
||||||
html_files_thru = index.html emailrelay-man.html $(stylesheet)
|
html_files_thru = index.html emailrelay-man.html $(stylesheet)
|
||||||
html_files_out = readme.html developer.html reference.html userguide.html windows.html changelog.html
|
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
|
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)
|
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_MANS = $(man_files_in)
|
||||||
#man1_DATA = $(man_files_out)
|
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files) $(docbook_files_out)
|
||||||
e_doc_DATA = $(txt_files) $(html_files_out) $(html_files_thru) $(png_files)
|
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) $(docbook_files_out) doxygen/* *.db *.mu docbook/*
|
||||||
CLEANFILES = $(noinst_SCRIPTS) $(man_files_out) $(html_files_out) doxygen/*
|
SUFFIXES = .txt .html .db .mu
|
||||||
SUFFIXES = .txt .html
|
converter_html = $(top_builddir)/bin/txt2html.sh
|
||||||
filter = $(top_builddir)/bin/emailrelay-doxygen-filter.sh
|
converter_html_src = $(top_srcdir)/bin/txt2html.sh_
|
||||||
filter_src = $(top_srcdir)/bin/emailrelay-doxygen-filter.sh_
|
converter_txt2mu = $(top_builddir)/bin/txt2mu.sh
|
||||||
converter = $(top_builddir)/bin/txt2html.sh
|
converter_txt2mu_src = $(top_srcdir)/bin/txt2mu.sh_
|
||||||
converter_src = $(top_srcdir)/bin/txt2html.sh_
|
converter_mu2html = $(top_builddir)/bin/mu2html.sh
|
||||||
converter_helper1 = $(top_builddir)/bin/txt2mu.sh
|
converter_mu2html_src = $(top_srcdir)/bin/mu2html.sh_
|
||||||
converter_helper1_src = $(top_srcdir)/bin/txt2mu.sh_
|
converter_expand = $(top_builddir)/bin/expand.sh
|
||||||
converter_helper2 = $(top_builddir)/bin/mu2html.sh
|
converter_expand_src = $(top_srcdir)/bin/expand.sh_
|
||||||
converter_helper2_src = $(top_srcdir)/bin/mu2html.sh_
|
converter_mu2docbook = $(top_builddir)/bin/mu2docbook.sh
|
||||||
converter_helper3 = $(top_builddir)/bin/expand.sh
|
converter_mu2docbook_src = $(top_srcdir)/bin/mu2docbook.sh_
|
||||||
converter_helper3_src = $(top_srcdir)/bin/expand.sh_
|
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .txt .html
|
.SUFFIXES: .txt .html .db .mu
|
||||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
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
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
install-man1: $(man1_MANS) $(man_MANS)
|
install-man1: $(man1_MANS) $(man_MANS)
|
||||||
@$(NORMAL_INSTALL)
|
@$(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)'; \
|
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
for i in $$l2; do \
|
for i in $$l2; do \
|
||||||
@ -256,10 +272,10 @@ uninstall-man1:
|
|||||||
done
|
done
|
||||||
install-e_docDATA: $(e_doc_DATA)
|
install-e_docDATA: $(e_doc_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(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 \
|
@list='$(e_doc_DATA)'; for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
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'"; \
|
echo " $(e_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||||
$(e_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_docdir)/$$f"; \
|
$(e_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -267,7 +283,7 @@ install-e_docDATA: $(e_doc_DATA)
|
|||||||
uninstall-e_docDATA:
|
uninstall-e_docDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(e_doc_DATA)'; for p in $$list; do \
|
@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'"; \
|
echo " rm -f '$(DESTDIR)$(e_docdir)/$$f'"; \
|
||||||
rm -f "$(DESTDIR)$(e_docdir)/$$f"; \
|
rm -f "$(DESTDIR)$(e_docdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -279,22 +295,21 @@ CTAGS:
|
|||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -310,7 +325,7 @@ check: check-am
|
|||||||
all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
|
all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
|
||||||
installdirs:
|
installdirs:
|
||||||
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(e_docdir)"; do \
|
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(e_docdir)"; do \
|
||||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: install-am
|
install: install-am
|
||||||
install-exec: install-exec-am
|
install-exec: install-exec-am
|
||||||
@ -332,7 +347,7 @@ clean-generic:
|
|||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@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-data-am: install-data-local install-e_docDATA install-man
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man: install-man1
|
install-man: install-man1
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -381,59 +404,86 @@ ps: ps-am
|
|||||||
|
|
||||||
ps-am:
|
ps-am:
|
||||||
|
|
||||||
uninstall-am: uninstall-e_docDATA uninstall-info-am uninstall-local \
|
uninstall-am: uninstall-e_docDATA uninstall-local uninstall-man
|
||||||
uninstall-man
|
|
||||||
|
|
||||||
uninstall-man: uninstall-man1
|
uninstall-man: uninstall-man1
|
||||||
|
|
||||||
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
install install-am install-data install-data-am \
|
install install-am install-data install-data-am \
|
||||||
install-data-local install-e_docDATA install-exec \
|
install-data-local install-dvi install-dvi-am \
|
||||||
install-exec-am install-info install-info-am install-man \
|
install-e_docDATA install-exec install-exec-am install-html \
|
||||||
install-man1 install-strip installcheck installcheck-am \
|
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 \
|
installdirs maintainer-clean maintainer-clean-generic \
|
||||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||||
uninstall-am uninstall-e_docDATA uninstall-info-am \
|
uninstall-am uninstall-e_docDATA uninstall-local uninstall-man \
|
||||||
uninstall-local uninstall-man uninstall-man1
|
uninstall-man1
|
||||||
|
|
||||||
|
|
||||||
.txt.html:
|
.txt.html:
|
||||||
$(converter) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
$(converter_html) -a "$(AWK)" $(top_srcdir)/doc/$*.txt $(stylesheet) > $*.html
|
||||||
|
|
||||||
$(filter): $(filter_src)
|
.txt.mu:
|
||||||
cp $(filter_src) $(filter)
|
$(converter_txt2mu) -a "$(AWK)" $(top_srcdir)/doc/$*.txt > $*.mu
|
||||||
chmod ugo+x $(filter)
|
|
||||||
|
|
||||||
$(converter): $(converter_src) $(converter_helper1) $(converter_helper2) $(converter_helper3)
|
.mu.db:
|
||||||
cp $(converter_src) $(converter)
|
$(converter_mu2docbook) -a "$(AWK)" -x < $(top_builddir)/doc/$*.mu > $*.db
|
||||||
chmod ugo+x $(converter)
|
|
||||||
|
|
||||||
$(converter_helper1): $(converter_helper1_src)
|
$(converter_html): $(converter_html_src) $(converter_txt2mu) $(converter_mu2html) $(converter_expand)
|
||||||
cp $(converter_helper1_src) $(converter_helper1)
|
cp $(converter_html_src) $(converter_html)
|
||||||
chmod ugo+x $(converter_helper1)
|
chmod ugo+x $(converter_html)
|
||||||
|
|
||||||
$(converter_helper2): $(converter_helper2_src)
|
head.db: $(converter_mu2docbook)
|
||||||
cp $(converter_helper2_src) $(converter_helper2)
|
$(converter_mu2docbook) --head "E-MailRelay" > head.db.tmp && mv -f head.db.tmp head.db
|
||||||
chmod ugo+x $(converter_helper2)
|
|
||||||
|
|
||||||
$(converter_helper3): $(converter_helper3_src)
|
tail.db: $(converter_mu2docbook)
|
||||||
cp $(converter_helper3_src) $(converter_helper3)
|
$(converter_mu2docbook) --tail > tail.db.tmp && mv -f tail.db.tmp tail.db
|
||||||
chmod ugo+x $(converter_helper3)
|
|
||||||
|
|
||||||
.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
|
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
|
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
|
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)
|
developer.mu reference.mu userguide.mu: $(converter_txt2mu)
|
||||||
$(converter) -a "$(AWK)" $(top_srcdir)/README $(stylesheet) > readme.html
|
|
||||||
|
|
||||||
changelog.html: $(top_srcdir)/ChangeLog $(converter)
|
readme.html: $(top_srcdir)/README $(converter_html)
|
||||||
$(converter) -a "$(AWK)" $(top_srcdir)/ChangeLog $(stylesheet) > changelog.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
|
emailrelay.1.gz : emailrelay.1
|
||||||
if test -n "$(GZIP)" ; then $(GZIP) -c $(top_srcdir)/doc/emailrelay.1 > emailrelay.1.gz ; fi
|
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:
|
Sequence diagrams:
|
||||||
* *Proxy mode forwarding* [sequence-3.png]
|
* *Proxy mode forwarding* [sequence-3.png]
|
||||||
* *Scanning* [sequence-4.png]
|
* *Scanning* [sequence-4.png]
|
||||||
* *ProtocolMessage::prepare() returns false* [sequence-1.png]
|
* ProtocolMessage::prepare() *returns false* [sequence-1.png]
|
||||||
* *ProtocolMessage::prepare() returns true* [sequence-2.png]
|
* ProtocolMessage::prepare() *returns true* [sequence-2.png]
|
||||||
|
|
||||||
Directory structure
|
Directory structure
|
||||||
-------------------
|
-------------------
|
||||||
@ -154,27 +154,14 @@ these cases there are three source files per header. For example, "gsocket.cpp",
|
|||||||
|
|
||||||
Compile-time features
|
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"
|
Use "./configure --help" to see a complete list.
|
||||||
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.
|
|
||||||
|
|
||||||
Windows build
|
Windows build
|
||||||
-------------
|
-------------
|
||||||
@ -183,15 +170,9 @@ the "emailrelay.dws" workspace.
|
|||||||
|
|
||||||
Makefiles for the *MinGW* [http://www.mingw.org/] system (gcc on Windows) are
|
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
|
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.
|
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
|
Patterns
|
||||||
--------
|
--------
|
||||||
Gang-of-four Design Patterns (ISBN 0-201-63361-2):
|
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,171 +68,175 @@ have been successfully delivered to the next-hop server.
|
|||||||
<H2>OPTIONS</H2>
|
<H2>OPTIONS</H2>
|
||||||
|
|
||||||
<DL COMPACT>
|
<DL COMPACT>
|
||||||
<DT><B>-a,--admin </B><I>admin-port</I>
|
<DT><B>-a, --admin </B><I><admin-port></I>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Enables the administration interface and specifies its listening port number.
|
Enables the administration interface and specifies its listening port number.
|
||||||
<DT><B>-Q,--admin-terminate </B>
|
<DT><B>-Q, --admin-terminate </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Enables the terminate command on the admin interface.
|
Enables the terminate command on the admin interface.
|
||||||
<DT><B>-A,--anonymous </B>
|
<DT><B>-A, --anonymous </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Disables the smtp vrfy command and sends less verbose smtp responses.
|
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>
|
<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>.
|
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>
|
<DD>
|
||||||
Runs as a proxy: equivalent to <I>--log</I> <I>--close-stderr</I> <I>--immediate</I> <I>--forward-to</I>.
|
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>
|
<DT><B>-d, --as-server </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Runs as a server: equivalent to <I>--log</I> <I>--close-stderr</I> <I>--postmaster</I>.
|
Runs as a server: equivalent to <I>--log</I> <I>--close-stderr</I>.
|
||||||
<DT><B>-C,--client-auth </B><I>file</I>
|
<DT><B>-C, --client-auth </B><I><file></I>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Enables smtp authentication with remote server, using the given secrets file.
|
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>
|
<DD>
|
||||||
Specifies an external program to process messages when they are forwarded.
|
Specifies an external program to process messages when they are forwarded.
|
||||||
<DT><B>-e,--close-stderr </B>
|
<DT><B>-e, --close-stderr </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Closes the standard error stream after start-up.
|
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>
|
<DD>
|
||||||
Sets the timeout (in seconds) when connecting to a remote server (default is 40).
|
Sets the timeout (in seconds) when connecting to a remote server (default is 40).
|
||||||
<DT><B>-g,--debug </B>
|
<DT><B>-g, --debug </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Generates debug-level logging if compiled-in.
|
Generates debug-level logging if compiled-in.
|
||||||
<DT><B>-D,--domain </B><I>fqdn</I>
|
<DT><B>-D, --domain </B><I><fqdn></I>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Sets an override for the host's fully qualified domain name.
|
Sets an override for the host's fully qualified domain name.
|
||||||
<DT><B>-x,--dont-serve </B>
|
<DT><B>-x, --dont-serve </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Disables acting as a server on any port (part of <I>--as-client</I> and usually used with <I>--forward</I>).
|
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>
|
<DD>
|
||||||
Specifies an external program to process messages as they are stored.
|
Specifies an external program to process messages as they are stored.
|
||||||
<DT><B>-f,--forward </B>
|
<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>
|
<DD>
|
||||||
Forwards stored mail on startup (requires <I>--forward-to</I>).
|
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>
|
<DD>
|
||||||
Specifies the remote smtp server (required by <I>--forward</I>, <I>--poll</I>, <I>--immediate</I> and <I>--admin</I>).
|
Specifies the remote smtp server (required by <I>--forward</I>, <I>--poll</I>, <I>--immediate</I> and <I>--admin</I>).
|
||||||
<DT><B>-h,--help </B>
|
<DT><B>-h, --help </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Displays help text and exits.
|
Displays help text and exits.
|
||||||
<DT><B>-m,--immediate </B>
|
<DT><B>-m, --immediate </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Enables immediating forwarding of messages as soon as they are received (requires <I>--forward-to</I>).
|
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>
|
<DD>
|
||||||
Defines the listening interface for new connections.
|
Defines the listening interface for new connections.
|
||||||
<DT><B>-l,--log </B>
|
<DT><B>-l, --log </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Writes log information on standard error and syslog.
|
Writes log information on standard error and syslog.
|
||||||
<DT><B>-L,--log-time </B>
|
<DT><B>-L, --log-time </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Adds a timestamp to the logging output.
|
Adds a timestamp to the logging output.
|
||||||
<DT><B>-t,--no-daemon </B>
|
<DT><B>-t, --no-daemon </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Does not detach from the terminal.
|
Does not detach from the terminal.
|
||||||
<DT><B>-X,--no-smtp </B>
|
<DT><B>-X, --no-smtp </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Disables listening for smtp connections (usually used with <I>--admin</I> or <I>--pop</I>).
|
Disables listening for smtp connections (usually used with <I>--admin</I> or <I>--pop</I>).
|
||||||
<DT><B>-n,--no-syslog </B>
|
<DT><B>-n, --no-syslog </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Disables syslog output.
|
Disables syslog output (always overridden by <I>--syslog</I>).
|
||||||
<DT><B>-i,--pid-file </B><I>pid-file</I>
|
<DT><B>-i, --pid-file </B><I><pid-file></I>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Defines a file for storing the daemon process-id.
|
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>
|
<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>
|
<DT><B>-B, --pop </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Enables the pop server if compiled-in.
|
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>
|
<DD>
|
||||||
Defines the pop server secrets file (default is <I>/etc/emailrelay.auth</I>).
|
Defines the pop server secrets file (default is <I>/etc/emailrelay.auth</I>).
|
||||||
<DT><B>-J,--pop-by-name </B>
|
<DT><B>-J, --pop-by-name </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Modifies the pop spool directory according to the user name (requires <I>--pop</I>).
|
Modifies the pop spool directory according to the user name (requires <I>--pop</I>).
|
||||||
<DT><B>-G,--pop-no-delete </B>
|
<DT><B>-G, --pop-no-delete </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Disables message deletion via pop (requires <I>--pop</I>).
|
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>
|
<DD>
|
||||||
Specifies the pop listening port number (requires <I>--pop</I>).
|
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>
|
<DD>
|
||||||
Specifies the smtp listening port number.
|
Specifies the smtp listening port number.
|
||||||
<DT><B>-P,--postmaster </B>
|
<DT><B>-r, --remote-clients </B>
|
||||||
|
|
||||||
<DD>
|
|
||||||
Allows delivery to the postmaster but rejects all other local mailbox addresses.
|
|
||||||
<DT><B>-r,--remote-clients </B>
|
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Allows remote clients to connect.
|
Allows remote clients to connect.
|
||||||
<DT><B>-T,--response-timeout </B><I>time</I>
|
<DT><B>-T, --response-timeout </B><I><time></I>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Sets the response timeout (in seconds) when talking to a remote server (default is 1800).
|
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>
|
<DD>
|
||||||
Specifies an external network server to process messages when they are stored.
|
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>
|
<DD>
|
||||||
Enables authentication of remote clients, using the given secrets file.
|
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>
|
<DD>
|
||||||
Specifies the spool directory (default is <I>/var/spool/emailrelay</I>).
|
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>
|
<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>-v,--verbose </B>
|
<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>
|
<DD>
|
||||||
Generates more verbose output (works with <I>--help</I> and <I>--log</I>).
|
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>
|
<DD>
|
||||||
Specifies an external program for address verification.
|
Specifies an external program for address verification.
|
||||||
<DT><B>-V,--version </B>
|
<DT><B>-V, --version </B>
|
||||||
|
|
||||||
<DD>
|
<DD>
|
||||||
Displays version information and exits.
|
Displays version information and exits.
|
||||||
@ -252,40 +256,13 @@ GNU style...
|
|||||||
/usr/local/libexec/emailrelay
|
/usr/local/libexec/emailrelay
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/libexec/emailrelay-deliver.sh
|
|
||||||
<BR>
|
|
||||||
|
|
||||||
/usr/local/libexec/emailrelay-notify.sh
|
|
||||||
<BR>
|
|
||||||
|
|
||||||
/usr/local/libexec/emailrelay-poke
|
/usr/local/libexec/emailrelay-poke
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/libexec/emailrelay-process.sh
|
/usr/local/libexec/emailrelay-*.sh
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/libexec/emailrelay-resubmit.js
|
/usr/local/man/man1/emailrelay*.1.gz
|
||||||
<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
|
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/sbin/emailrelay
|
/usr/local/sbin/emailrelay
|
||||||
@ -297,57 +274,15 @@ GNU style...
|
|||||||
/usr/local/sbin/emailrelay-submit
|
/usr/local/sbin/emailrelay-submit
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/share/emailrelay/doc/changelog.gz
|
/usr/local/share/emailrelay/doc/*
|
||||||
<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
|
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/share/emailrelay/doc/index.html
|
/usr/local/share/emailrelay/doc/index.html
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/local/share/emailrelay/doc/NEWS
|
|
||||||
<BR>
|
|
||||||
|
|
||||||
/usr/local/share/emailrelay/doc/*.png
|
|
||||||
<BR>
|
|
||||||
|
|
||||||
/usr/local/share/emailrelay/doc/README
|
/usr/local/share/emailrelay/doc/README
|
||||||
<BR>
|
<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
|
/usr/local/var/spool/emailrelay/emailrelay.*.content
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
@ -378,82 +313,19 @@ FHS style...
|
|||||||
/usr/sbin/emailrelay-submit
|
/usr/sbin/emailrelay-submit
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/changelog.gz
|
/usr/share/doc/emailrelay/*
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/changelog.html
|
/usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||||
<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
|
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/index.html
|
/usr/share/doc/emailrelay/index.html
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/NEWS
|
|
||||||
<BR>
|
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/*.png
|
|
||||||
<BR>
|
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/README
|
/usr/share/doc/emailrelay/README
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/usr/share/doc/emailrelay/readme.html
|
/usr/share/man/man1/emailrelay*.1.gz
|
||||||
<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
|
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
/var/spool/emailrelay/emailrelay.*.content
|
/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
|
This document was created by
|
||||||
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
|
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
|
||||||
using the manual pages.<BR>
|
using the manual pages.<BR>
|
||||||
Time: 23:24:49 GMT, January 08, 2006
|
Time: 18:17:41 GMT, April 09, 2007
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</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
|
.\" This program is free software; you can redistribute it and/or
|
||||||
.\" modify it under the terms of the GNU General Public License
|
.\" 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
|
.\" This program is free software; you can redistribute it and/or
|
||||||
.\" modify it under the terms of the GNU General Public License
|
.\" 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
|
.\" This program is free software; you can redistribute it and/or
|
||||||
.\" modify it under the terms of the GNU General Public License
|
.\" modify it under the terms of the GNU General Public License
|
||||||
|
201
doc/emailrelay.1
201
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
|
.\" This program is free software; you can redistribute it and/or
|
||||||
.\" modify it under the terms of the GNU General Public License
|
.\" modify it under the terms of the GNU General Public License
|
||||||
@ -55,130 +55,133 @@ server. Messages are only fully accepted from the sender once they
|
|||||||
have been successfully delivered to the next-hop server.
|
have been successfully delivered to the next-hop server.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
.B \-a,--admin \fIadmin-port\fR
|
.B \-a, --admin \fI<admin-port>\fR
|
||||||
Enables the administration interface and specifies its listening port number.
|
Enables the administration interface and specifies its listening port number.
|
||||||
.TP
|
.TP
|
||||||
.B \-Q,--admin-terminate
|
.B \-Q, --admin-terminate
|
||||||
Enables the terminate command on the admin interface.
|
Enables the terminate command on the admin interface.
|
||||||
.TP
|
.TP
|
||||||
.B \-A,--anonymous
|
.B \-A, --anonymous
|
||||||
Disables the smtp vrfy command and sends less verbose smtp responses.
|
Disables the smtp vrfy command and sends less verbose smtp responses.
|
||||||
.TP
|
.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.
|
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
|
.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.
|
Runs as a proxy: equivalent to \fI--log\fR \fI--close-stderr\fR \fI--immediate\fR \fI--forward-to\fR.
|
||||||
.TP
|
.TP
|
||||||
.B \-d,--as-server
|
.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
|
.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.
|
Enables smtp authentication with remote server, using the given secrets file.
|
||||||
.TP
|
.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.
|
Specifies an external program to process messages when they are forwarded.
|
||||||
.TP
|
.TP
|
||||||
.B \-e,--close-stderr
|
.B \-e, --close-stderr
|
||||||
Closes the standard error stream after start-up.
|
Closes the standard error stream after start-up.
|
||||||
.TP
|
.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).
|
Sets the timeout (in seconds) when connecting to a remote server (default is 40).
|
||||||
.TP
|
.TP
|
||||||
.B \-g,--debug
|
.B \-g, --debug
|
||||||
Generates debug-level logging if compiled-in.
|
Generates debug-level logging if compiled-in.
|
||||||
.TP
|
.TP
|
||||||
.B \-D,--domain \fIfqdn\fR
|
.B \-D, --domain \fI<fqdn>\fR
|
||||||
Sets an override for the host's fully qualified domain name.
|
Sets an override for the host's fully qualified domain name.
|
||||||
.TP
|
.TP
|
||||||
.B \-x,--dont-serve
|
.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).
|
Disables acting as a server on any port (part of \fI--as-client\fR and usually used with \fI--forward\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-z,--filter \fIprogram\fR
|
.B \-z, --filter \fI<program>\fR
|
||||||
Specifies an external program to process messages as they are stored.
|
Specifies an external program to process messages as they are stored.
|
||||||
.TP
|
.TP
|
||||||
.B \-f,--forward
|
.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).
|
Forwards stored mail on startup (requires \fI--forward-to\fR).
|
||||||
.TP
|
.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).
|
Specifies the remote smtp server (required by \fI--forward\fR, \fI--poll\fR, \fI--immediate\fR and \fI--admin\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-h,--help
|
.B \-h, --help
|
||||||
Displays help text and exits.
|
Displays help text and exits.
|
||||||
.TP
|
.TP
|
||||||
.B \-m,--immediate
|
.B \-m, --immediate
|
||||||
Enables immediating forwarding of messages as soon as they are received (requires \fI--forward-to\fR).
|
Enables immediating forwarding of messages as soon as they are received (requires \fI--forward-to\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-I,--interface \fIip-address\fR
|
.B \-I, --interface \fI<ip-address>\fR
|
||||||
Defines the listening interface for new connections.
|
Defines the listening interface for new connections.
|
||||||
.TP
|
.TP
|
||||||
.B \-l,--log
|
.B \-l, --log
|
||||||
Writes log information on standard error and syslog.
|
Writes log information on standard error and syslog.
|
||||||
.TP
|
.TP
|
||||||
.B \-L,--log-time
|
.B \-L, --log-time
|
||||||
Adds a timestamp to the logging output.
|
Adds a timestamp to the logging output.
|
||||||
.TP
|
.TP
|
||||||
.B \-t,--no-daemon
|
.B \-t, --no-daemon
|
||||||
Does not detach from the terminal.
|
Does not detach from the terminal.
|
||||||
.TP
|
.TP
|
||||||
.B \-X,--no-smtp
|
.B \-X, --no-smtp
|
||||||
Disables listening for smtp connections (usually used with \fI--admin\fR or \fI--pop\fR).
|
Disables listening for smtp connections (usually used with \fI--admin\fR or \fI--pop\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-n,--no-syslog
|
.B \-n, --no-syslog
|
||||||
Disables syslog output.
|
Disables syslog output (always overridden by \fI--syslog\fR).
|
||||||
.TP
|
.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.
|
Defines a file for storing the daemon process-id.
|
||||||
.TP
|
.TP
|
||||||
.B \-O,--poll \fIperiod\fR
|
.B \-O, --poll \fI<period>\fR
|
||||||
Enables polling with the specified period (requires \fI--forward-to\fR).
|
Enables polling of the spool directory for messages to be forwarded with the specified period (requires \fI--forward-to\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-B,--pop
|
.B \-B, --pop
|
||||||
Enables the pop server if compiled-in.
|
Enables the pop server if compiled-in.
|
||||||
.TP
|
.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).
|
Defines the pop server secrets file (default is \fI/etc/emailrelay.auth\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-J,--pop-by-name
|
.B \-J, --pop-by-name
|
||||||
Modifies the pop spool directory according to the user name (requires \fI--pop\fR).
|
Modifies the pop spool directory according to the user name (requires \fI--pop\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-G,--pop-no-delete
|
.B \-G, --pop-no-delete
|
||||||
Disables message deletion via pop (requires \fI--pop\fR).
|
Disables message deletion via pop (requires \fI--pop\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-E,--pop-port \fIport\fR
|
.B \-E, --pop-port \fI<port>\fR
|
||||||
Specifies the pop listening port number (requires \fI--pop\fR).
|
Specifies the pop listening port number (requires \fI--pop\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-p,--port \fIport\fR
|
.B \-p, --port \fI<port>\fR
|
||||||
Specifies the smtp listening port number.
|
Specifies the smtp listening port number.
|
||||||
.TP
|
.TP
|
||||||
.B \-P,--postmaster
|
.B \-r, --remote-clients
|
||||||
Allows delivery to the postmaster but rejects all other local mailbox addresses.
|
|
||||||
.TP
|
|
||||||
.B \-r,--remote-clients
|
|
||||||
Allows remote clients to connect.
|
Allows remote clients to connect.
|
||||||
.TP
|
.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).
|
Sets the response timeout (in seconds) when talking to a remote server (default is 1800).
|
||||||
.TP
|
.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.
|
Specifies an external network server to process messages when they are stored.
|
||||||
.TP
|
.TP
|
||||||
.B \-S,--server-auth \fIfile\fR
|
.B \-S, --server-auth \fI<file>\fR
|
||||||
Enables authentication of remote clients, using the given secrets file.
|
Enables authentication of remote clients, using the given secrets file.
|
||||||
.TP
|
.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).
|
Specifies the spool directory (default is \fI/var/spool/emailrelay\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-u,--user \fIusername\fR
|
.B \-k, --syslog
|
||||||
Names the effective user to switch to when started as root (default is \fIdaemon\fR).
|
Force syslog output if logging is enabled (overrides \fI--no-syslog\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-v,--verbose
|
.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).
|
Generates more verbose output (works with \fI--help\fR and \fI--log\fR).
|
||||||
.TP
|
.TP
|
||||||
.B \-Z,--verifier \fIprogram\fR
|
.B \-Z, --verifier \fI<program>\fR
|
||||||
Specifies an external program for address verification.
|
Specifies an external program for address verification.
|
||||||
.TP
|
.TP
|
||||||
.B \-V,--version
|
.B \-V, --version
|
||||||
Displays version information and exits.
|
Displays version information and exits.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
GNU style...
|
GNU style...
|
||||||
@ -189,29 +192,11 @@ GNU style...
|
|||||||
.br
|
.br
|
||||||
/usr/local/libexec/emailrelay
|
/usr/local/libexec/emailrelay
|
||||||
.br
|
.br
|
||||||
/usr/local/libexec/emailrelay-deliver.sh
|
|
||||||
.br
|
|
||||||
/usr/local/libexec/emailrelay-notify.sh
|
|
||||||
.br
|
|
||||||
/usr/local/libexec/emailrelay-poke
|
/usr/local/libexec/emailrelay-poke
|
||||||
.br
|
.br
|
||||||
/usr/local/libexec/emailrelay-process.sh
|
/usr/local/libexec/emailrelay-*.sh
|
||||||
.br
|
.br
|
||||||
/usr/local/libexec/emailrelay-resubmit.js
|
/usr/local/man/man1/emailrelay*.1.gz
|
||||||
.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
|
|
||||||
.br
|
.br
|
||||||
/usr/local/sbin/emailrelay
|
/usr/local/sbin/emailrelay
|
||||||
.br
|
.br
|
||||||
@ -219,40 +204,12 @@ GNU style...
|
|||||||
.br
|
.br
|
||||||
/usr/local/sbin/emailrelay-submit
|
/usr/local/sbin/emailrelay-submit
|
||||||
.br
|
.br
|
||||||
/usr/local/share/emailrelay/doc/changelog.gz
|
/usr/local/share/emailrelay/doc/*
|
||||||
.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
|
|
||||||
.br
|
.br
|
||||||
/usr/local/share/emailrelay/doc/index.html
|
/usr/local/share/emailrelay/doc/index.html
|
||||||
.br
|
.br
|
||||||
/usr/local/share/emailrelay/doc/NEWS
|
|
||||||
.br
|
|
||||||
/usr/local/share/emailrelay/doc/*.png
|
|
||||||
.br
|
|
||||||
/usr/local/share/emailrelay/doc/README
|
/usr/local/share/emailrelay/doc/README
|
||||||
.br
|
.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
|
/usr/local/var/spool/emailrelay/emailrelay.*.content
|
||||||
.br
|
.br
|
||||||
/usr/local/var/spool/emailrelay/emailrelay.*.envelope
|
/usr/local/var/spool/emailrelay/emailrelay.*.envelope
|
||||||
@ -273,57 +230,15 @@ FHS style...
|
|||||||
.br
|
.br
|
||||||
/usr/sbin/emailrelay-submit
|
/usr/sbin/emailrelay-submit
|
||||||
.br
|
.br
|
||||||
/usr/share/doc/emailrelay/changelog.gz
|
/usr/share/doc/emailrelay/*
|
||||||
.br
|
.br
|
||||||
/usr/share/doc/emailrelay/changelog.html
|
/usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||||
.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
|
|
||||||
.br
|
.br
|
||||||
/usr/share/doc/emailrelay/index.html
|
/usr/share/doc/emailrelay/index.html
|
||||||
.br
|
.br
|
||||||
/usr/share/doc/emailrelay/NEWS
|
|
||||||
.br
|
|
||||||
/usr/share/doc/emailrelay/*.png
|
|
||||||
.br
|
|
||||||
/usr/share/doc/emailrelay/README
|
/usr/share/doc/emailrelay/README
|
||||||
.br
|
.br
|
||||||
/usr/share/doc/emailrelay/readme.html
|
/usr/share/man/man1/emailrelay*.1.gz
|
||||||
.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
|
|
||||||
.br
|
.br
|
||||||
/var/spool/emailrelay/emailrelay.*.content
|
/var/spool/emailrelay/emailrelay.*.content
|
||||||
.br
|
.br
|
||||||
|
@ -87,6 +87,8 @@ h1
|
|||||||
|
|
||||||
img
|
img
|
||||||
{
|
{
|
||||||
|
border-width: 0px ;
|
||||||
|
border-style: none ; /* check */
|
||||||
margin-left: 8% ;
|
margin-left: 8% ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,7 +212,5 @@ span.span-mailto
|
|||||||
|
|
||||||
#img-sourceforge
|
#img-sourceforge
|
||||||
{
|
{
|
||||||
border-width: 0px ;
|
|
||||||
border-style: none ; /* check */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,4 +21,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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".
|
Runs as a proxy: equivalent to "--log --close-stderr --immediate --forward-to".
|
||||||
|
|
||||||
# --as-server (-d)
|
# --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)
|
# --client-auth (-C)
|
||||||
Enables smtp authentication with remote server, using the given secrets file.
|
Enables smtp authentication with remote server, using the given secrets file.
|
||||||
@ -55,6 +55,9 @@ where <switch> is:
|
|||||||
# --filter (-z)
|
# --filter (-z)
|
||||||
Specifies an external program to process messages as they are stored.
|
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)
|
# --forward (-f)
|
||||||
Forwards stored mail on startup (requires --forward-to).
|
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).
|
Disables listening for smtp connections (usually used with --admin or --pop).
|
||||||
|
|
||||||
# --no-syslog (-n)
|
# --no-syslog (-n)
|
||||||
Disables syslog output.
|
Disables syslog output (always overridden by --syslog).
|
||||||
|
|
||||||
# --pid-file (-i)
|
# --pid-file (-i)
|
||||||
Defines a file for storing the daemon process-id.
|
Defines a file for storing the daemon process-id.
|
||||||
|
|
||||||
# --poll (-O)
|
# --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)
|
# --pop (-B)
|
||||||
Enables the pop server if compiled-in.
|
Enables the pop server if compiled-in.
|
||||||
@ -109,9 +112,6 @@ where <switch> is:
|
|||||||
# --port (-p)
|
# --port (-p)
|
||||||
Specifies the smtp listening port number.
|
Specifies the smtp listening port number.
|
||||||
|
|
||||||
# --postmaster (-P)
|
|
||||||
Allows delivery to the postmaster but rejects all other local mailbox addresses.
|
|
||||||
|
|
||||||
# --remote-clients (-r)
|
# --remote-clients (-r)
|
||||||
Allows remote clients to connect.
|
Allows remote clients to connect.
|
||||||
|
|
||||||
@ -127,8 +127,11 @@ where <switch> is:
|
|||||||
# --spool-dir (-s)
|
# --spool-dir (-s)
|
||||||
Specifies the spool directory (default is "/var/spool/emailrelay").
|
Specifies the spool directory (default is "/var/spool/emailrelay").
|
||||||
|
|
||||||
|
# --syslog (-k)
|
||||||
|
Force syslog output if logging is enabled (overrides --no-syslog).
|
||||||
|
|
||||||
# --user (-u)
|
# --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)
|
# --verbose (-v)
|
||||||
Generates more verbose output (works with --help and --log).
|
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"
|
Under Windows there are a few differences. Use "--help --verbose"
|
||||||
to see the complete list.
|
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
|
Message store
|
||||||
-------------
|
-------------
|
||||||
Mail messages are stored as text files in the configured spool directory. Each
|
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,
|
If a message cannot be forwarded the envelope file is given a "bad" suffix,
|
||||||
and the failure reason is written into the file.
|
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
|
Mail processing
|
||||||
---------------
|
---------------
|
||||||
The "--filter" command-line switch allows you to specify a mail pre-processor
|
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
|
Windows pre-processor programs written in JavaScript can be run using
|
||||||
"cscript", with an E-MailRelay "--filter" switch something like this:
|
"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.
|
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
|
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
|
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.
|
processing failures, so in many applications using "--filter" is more useful.
|
||||||
|
|
||||||
Bear in mind the following points when writing "--filter" programs:
|
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
|
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
|
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 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
|
the message is to be accepted, or an error message.
|
||||||
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.
|
|
||||||
|
|
||||||
Address verification
|
Address verification
|
||||||
--------------------
|
--------------------
|
||||||
In server mode (or more accurately when "--postmater" is in effect) addresses
|
By default the E-MailRelay server will accept all addresses for incoming e-mails
|
||||||
for incoming e-mails received in "RCPT" or "VRFY" commands are accepted as valid
|
as valid. However, this default behaviour can be modified by using an external
|
||||||
if they contain an at sign ("@") or if they are some sort of local "postmaster"
|
verifier program, specified with the "--verifier" command-line switch, so that
|
||||||
address: "postmaster", "postmaster@localhost" or "postmaster@<fqdn>". Other
|
you get to choose which addresses are accepted as valid and which are rejected.
|
||||||
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.
|
|
||||||
|
|
||||||
The external verifier program is passed a command-line containing: (1) the full
|
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
|
e-mail address as supplied by the remote client, (2) the user-name part of the
|
||||||
part in upper-case, (4) the local host's fully qualified domain name in
|
address in upper-case, (3) the host-name part in upper-case, (4) the local
|
||||||
upper-case, (5) the current "MAIL" command's "FROM:" address or the empty string
|
host's fully qualified domain name in upper-case, (5) the "MAIL" command's
|
||||||
for the "VRFY" command, (6) the IP address of the client connection, (7) the
|
"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
|
authentication mechanism used by the client ("NONE" if trusted), and (8) either
|
||||||
the authentication name or the fourth field from authentication secrets file if
|
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
|
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
|
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
|
line should be copied from the first command-line argument, and the exit
|
||||||
value should be one.
|
value should be one.
|
||||||
@ -429,6 +335,9 @@ then exit with a value of zero.
|
|||||||
echo postmaster
|
echo postmaster
|
||||||
exit 0
|
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
|
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
|
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
|
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
|
exit 100
|
||||||
|
|
||||||
In this more complete example all addresses are accepted as long as they contain
|
In this more complete example all addresses are accepted as long as they contain
|
||||||
an at sign:
|
an "at" character:
|
||||||
|
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# address verifier -- accept only if containing an at sign
|
# 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
|
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.
|
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
|
Security issues
|
||||||
---------------
|
---------------
|
||||||
A significant security concern is the use of external mail pre-processors and
|
A significant security concern is the use of external mail pre-processors and
|
||||||
@ -545,8 +615,7 @@ Some other points are:
|
|||||||
|
|
||||||
# remote clients
|
# remote clients
|
||||||
|
|
||||||
By default connections to the SMTP and administrative ports will be rejected
|
By default connections will be rejected if they come from remote machines.
|
||||||
if they come from remote machines.
|
|
||||||
|
|
||||||
# remote configuration
|
# remote configuration
|
||||||
|
|
||||||
@ -561,7 +630,7 @@ Some other points are:
|
|||||||
# file permissions
|
# file permissions
|
||||||
|
|
||||||
After a normal installation the spool directory is has ownership of
|
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
|
with permissions of "-rw-rw----". This allows normal users to list messages
|
||||||
files but not read them.
|
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.
|
The "Authentication" section below also relates to security.
|
||||||
|
|
||||||
Authentication
|
Administration interface
|
||||||
--------------
|
------------------------
|
||||||
E-MailRelay supports the ESMTP "AUTH" extension, as defined in RFC2554, on both
|
If enabled with the "--admin" command line switch, the E-MailRelay server will
|
||||||
the server-side and client-side.
|
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:
|
$ emailrelay --as-server --port 125 --forward-to localhost:25 --admin 10026
|
||||||
# "LOGIN"
|
$ telnet localhost 10026
|
||||||
|
E-MailRelay> help
|
||||||
|
E-MailRelay> quit
|
||||||
|
|
||||||
Passwords are stored in clear-text, sent over the network in clear-text, and
|
The "flush" command is used to get the E-MailRelay server to forward spooled
|
||||||
are replayable. This is a widely used mechanism, but officially obsolete.
|
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
|
$ emailrelay --as-server --port 125 --forward-to localhost:25 --admin 10026
|
||||||
not replayable. Defined in RFC2195.
|
$ emailrelay-poke 10026
|
||||||
|
$ echo $?
|
||||||
|
|
||||||
Authentication is enabled with the "--client-auth" and "--server-auth"
|
To use the "flush" command the next SMTP server address must have been defined
|
||||||
command-line switches. The switch parameter is the name of a "secrets" file,
|
on the "emailrelay" command line at start-up using the "--forward-to" switch.
|
||||||
containing usernames and passwords:
|
|
||||||
|
|
||||||
emailrelay --as-server --server-auth /etc/client-secrets.txt
|
Also, the "list" command lists the messages in the spool directory, "info"
|
||||||
emailrelay --as-client myisp.net:smtp --client-auth /etc/myisp-secret.txt
|
provides network status information and activity statistics, and "notify"
|
||||||
|
enables asynchronous event notification.
|
||||||
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.
|
|
||||||
|
|
||||||
Files and directories
|
Files and directories
|
||||||
---------------------
|
---------------------
|
||||||
@ -743,38 +685,15 @@ following locations:
|
|||||||
* /usr/local/etc/emailrelay.conf
|
* /usr/local/etc/emailrelay.conf
|
||||||
* /usr/local/etc/emailrelay.conf.template
|
* /usr/local/etc/emailrelay.conf.template
|
||||||
* /usr/local/libexec/emailrelay
|
* /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-poke
|
||||||
* /usr/local/libexec/emailrelay-process.sh
|
* /usr/local/libexec/emailrelay-*.sh
|
||||||
* /usr/local/libexec/emailrelay-resubmit.js
|
* /usr/local/man/man1/emailrelay*.1.gz
|
||||||
* /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/sbin/emailrelay
|
* /usr/local/sbin/emailrelay
|
||||||
* /usr/local/sbin/emailrelay-passwd
|
* /usr/local/sbin/emailrelay-passwd
|
||||||
* /usr/local/sbin/emailrelay-submit
|
* /usr/local/sbin/emailrelay-submit
|
||||||
* /usr/local/share/emailrelay/doc/changelog.gz
|
* /usr/local/share/emailrelay/doc/*
|
||||||
* /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/index.html
|
* /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
|
||||||
* /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.*.content
|
||||||
* /usr/local/var/spool/emailrelay/emailrelay.*.envelope
|
* /usr/local/var/spool/emailrelay/emailrelay.*.envelope
|
||||||
|
|
||||||
@ -791,32 +710,11 @@ locations:
|
|||||||
* /usr/sbin/emailrelay
|
* /usr/sbin/emailrelay
|
||||||
* /usr/sbin/emailrelay-passwd
|
* /usr/sbin/emailrelay-passwd
|
||||||
* /usr/sbin/emailrelay-submit
|
* /usr/sbin/emailrelay-submit
|
||||||
* /usr/share/doc/emailrelay/changelog.gz
|
* /usr/share/doc/emailrelay/*
|
||||||
* /usr/share/doc/emailrelay/changelog.html
|
* /usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||||
* /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/index.html
|
* /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
|
||||||
* /usr/share/doc/emailrelay/readme.html
|
* /usr/share/man/man1/emailrelay*.1.gz
|
||||||
* /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
|
|
||||||
* /var/spool/emailrelay/emailrelay.*.content
|
* /var/spool/emailrelay/emailrelay.*.content
|
||||||
* /var/spool/emailrelay/emailrelay.*.envelope
|
* /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".
|
"/usr/local/var/spool/emailrelay".
|
||||||
|
|
||||||
The default spool directory path which is built into the executables and scripts
|
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
|
comes from "configure" via the makefiles.
|
||||||
different spool directory do a "make clean" in at least "src/main" and "bin".
|
|
||||||
|
|
||||||
Even though the "--enable-fhs" switch overrides all other directory specifiers
|
Even though the "--enable-fhs" switch overrides all other directory specifiers
|
||||||
during the build process, it is still possible to change the installation root
|
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".
|
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
|
But note that this will not affect the default spool directory path built into
|
||||||
and executables, so they will have to be explicitly defined at run-time.
|
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 building the configuration GUI then you may need to set the "PKG_CONFIG_PATH"
|
||||||
if the directory exists, or in "/tmp" otherwise.
|
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.
|
Windows.
|
||||||
|
|
||||||
When used as proxy server the E-MailRelay program ("emailrelay") runs in the
|
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
|
background and accepts e-mail from local e-mail client programs (KMail, Outlook
|
||||||
the outside world, using the SMTP protocol. As soon as an e-mail message is
|
etc.) or from the outside world, using the SMTP protocol. As soon as an e-mail
|
||||||
received it is forwarded on to the next SMTP server for onward delivery. This
|
message is received it is forwarded on to the next SMTP server for onward
|
||||||
becomes more useful when you add in your own message processing: as each
|
delivery. This becomes more useful when you add in your own message processing:
|
||||||
message is received it can be passed one of your programs for editing,
|
as each message is received it can be passed one of your programs for editing,
|
||||||
filtering, encrypting etc.
|
filtering, encrypting etc.
|
||||||
|
|
||||||
When used as a store-and-forward transfer agent E-MailRelay runs in two modes:
|
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
|
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
|
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?
|
Why use it?
|
||||||
-----------
|
-----------
|
||||||
@ -56,41 +56,47 @@ Typical applications of E-MailRelay include:
|
|||||||
|
|
||||||
Running E-MailRelay
|
Running E-MailRelay
|
||||||
-------------------
|
-------------------
|
||||||
To run the program as a proxy use the "--as-proxy" command-line switch followed
|
To use E-MailRelay in store-and-forward mode use the "--as-server" switch to
|
||||||
by the address of the target SMTP server. If you want to edit or filter e-mail
|
start the storage daemon in the background, and then trigger delivery of spooled
|
||||||
as it passes through the proxy then specify your pre-processor program with the
|
messages by running with the "--as-client" switch and the address of the target
|
||||||
"--filter" switch. You can optionally change the listening port number using
|
host.
|
||||||
"--port" and the spool directory using "--spool-dir".
|
|
||||||
|
|
||||||
For example, to start up a local proxy that passes messages to some "addsig"
|
For example, to start a storage daemon listening on port 10025 use a command like
|
||||||
script and then forwards them to an MTA running on "smarthost", use a command
|
this:
|
||||||
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
|
And then to forward the spooled mail to "smarthost" run something like this:
|
||||||
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.
|
|
||||||
|
|
||||||
For example, to start a storage daemon listening on port 10025 use a command
|
emailrelay --as-client smarthost:smtp --spool-dir /tmp
|
||||||
like this:
|
|
||||||
|
|
||||||
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
|
emailrelay --pop --no-smtp --log --close-stderr
|
||||||
|
|
||||||
The "emailrelay-submit" utility can be used to put messages straight into the
|
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
|
Note that by default E-MailRelay will always reject connections from remote
|
||||||
allow connections from anywhere use the "--remote-clients" switch.
|
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
|
For more information on the command-line options refer to the reference guide
|
||||||
or run:
|
or run:
|
||||||
@ -188,9 +194,10 @@ If you create "ip-up.local" yourself remember to make it executable.
|
|||||||
|
|
||||||
Notification of failed e-mails
|
Notification of failed e-mails
|
||||||
------------------------------
|
------------------------------
|
||||||
If e-mail messages become corrupted or inaccessible within the spool directory
|
If e-mail messages corrupted or inaccessible within the spool directory
|
||||||
then they will get failed within the E-MailRelay system, with the envelope files
|
(typically becuase the disk is full) then they will get failed within the
|
||||||
in the spool directory ending up with a ".bad" suffix.
|
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
|
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
|
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
|
"--as-server" command-line switch with "--log --no-syslog". Refer to the
|
||||||
reference guide for more information.
|
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
|
Preventing open mail relay
|
||||||
--------------------------
|
--------------------------
|
||||||
If you are running E-MailRelay as a server with a permanent connection to the
|
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
|
Internet it is important to prevent open mail relay because this can be
|
||||||
relaying is not possible because E-MailRelay does not accept IP connections from
|
exploited by spammers. By default open mail relaying is not possible because
|
||||||
remote clients. However, if the "--remote-clients" switch is used then you need
|
E-MailRelay does not accept IP connections from remote clients. However, if the
|
||||||
to be more careful. One option is to require all clients to authenticate, by
|
"--remote-clients" switch is used then you need to be more careful. One option
|
||||||
using the "--server-auth" switch. But if you need local clients, such as your
|
is to require all clients to authenticate, by using the "--server-auth" switch.
|
||||||
own e-mail front-end, to connect without authentication then you will need to
|
But if you need local clients, such as your own e-mail front-end, to connect
|
||||||
put those trusted IP addresses in the secrets file with an authentication
|
without authentication then you will need to put those trusted IP addresses in
|
||||||
mechanism of "NONE". Refer to the reference guide for more information.
|
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
|
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
|
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
|
E-MailRelay Windows installation
|
||||||
================================
|
================================
|
||||||
|
|
||||||
Introduction
|
Setup program
|
||||||
------------
|
-------------
|
||||||
E-MailRelay has been developed on Linux and the documentation relates to
|
Installing E-MailRelay on Windows should be straightfowrard if you have
|
||||||
Unix-like operating systems rather than Microsoft Windows. This document
|
self-extracting archive program "emailrelay-setup.exe". Make sure that the setup
|
||||||
was written from the perspective of setting up E-MailRelay as a
|
program is in a writeable directory with plenty of space on the disk because
|
||||||
store-and-forward MTA on Windows 98 and it may or may not be relevant to more
|
when you run it is will extract an installation GUI program plus dependent DLLs
|
||||||
up-to-date versions of Windows.
|
in into the same directory.
|
||||||
|
|
||||||
Quick start
|
The installation GUI program will take you through the installation options and
|
||||||
------------
|
then install the run-time files into your chosen directory.
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
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 add the
|
"srvany.exe" utility to run emailrelay as a service; you will need to use the
|
||||||
"--hidden" and "--no-daemon" switches to the E-MailRelay command-line for this.
|
"--hidden" and "--no-daemon" switches on the E-MailRelay command-line for this.
|
||||||
|
|
||||||
Unpacking
|
Diagnostics
|
||||||
---------
|
|
||||||
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
|
|
||||||
-----------
|
-----------
|
||||||
To complete the installation you should create a spool directory to hold your
|
* Set the environment variable "GLOGOUTPUT_DIR" to (eg.) "c:\temp" and look for "glog.txt"
|
||||||
e-mail messages while you are off-line. By default E-MailRelay will look for a
|
* Add "--log --log-time --verbose --syslog" to the E-MailRelay command-lines.
|
||||||
directory "<windir>\spool\emailrelay", where "<windir>" is the path of your main
|
* Check the event log (run "eventvwr.exe") for errors and warnings.
|
||||||
windows directory, typically "c:\win98" for Windows 98.
|
* 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
|
Building from source
|
||||||
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".
|
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
|
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.
|
||||||
To uninstall just delete the files under "Program Files\emailrelay" and
|
|
||||||
"<windir>\spool\emailrelay", and remove any taskbar, desktop or
|
|
||||||
"Start->Programs->StartUp" shortcuts.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (C) 2001-2007 Graeme Walker <graeme_walker@users.sourceforge.net>. All rights reserved.
|
||||||
Copyright (C) 2001-2006 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
|
Summary: Simple e-mail message transfer agent and proxy using SMTP
|
||||||
Name: emailrelay
|
Name: emailrelay
|
||||||
Version: 1.4
|
Version: 1.5
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPL
|
License: GPL
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
URL: http://emailrelay.sourceforge.net/
|
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
|
BuildRoot: /tmp/emailrelay-install
|
||||||
|
|
||||||
%description
|
%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
|
only requiring the address of the target SMTP server to be put on the command
|
||||||
line.
|
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.
|
C++ source code is available for Linux, FreeBSD, MacOS X etc, and Windows.
|
||||||
Distribution is under the GNU General Public License.
|
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
|
||||||
/usr/sbin/emailrelay-passwd
|
/usr/sbin/emailrelay-passwd
|
||||||
/usr/sbin/emailrelay-submit
|
/usr/sbin/emailrelay-submit
|
||||||
/usr/share/doc/emailrelay/changelog.gz
|
/usr/share/doc/emailrelay/*
|
||||||
/usr/share/doc/emailrelay/changelog.html
|
/usr/share/doc/emailrelay/examples/emailrelay-*.sh
|
||||||
/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/index.html
|
/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
|
||||||
/usr/share/doc/emailrelay/readme.html
|
/usr/share/man/man1/emailrelay*.1.gz
|
||||||
/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
|
|
||||||
/var/spool/emailrelay/
|
/var/spool/emailrelay/
|
||||||
|
|
||||||
%changelog
|
%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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -14,15 +14,11 @@
|
|||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_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)"
|
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||||
sysconfDATA_INSTALL = $(INSTALL_DATA)
|
sysconfDATA_INSTALL = $(INSTALL_DATA)
|
||||||
DATA = $(sysconf_DATA)
|
DATA = $(sysconf_DATA)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -76,9 +76,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -89,10 +91,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -101,47 +103,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
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
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
install-sysconfDATA: $(sysconf_DATA)
|
install-sysconfDATA: $(sysconf_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
|
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
|
||||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
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'"; \
|
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||||
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
|
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -193,7 +209,7 @@ install-sysconfDATA: $(sysconf_DATA)
|
|||||||
uninstall-sysconfDATA:
|
uninstall-sysconfDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
f=$(am__strip_dir) \
|
||||||
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||||
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
|
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||||
done
|
done
|
||||||
@ -205,22 +221,21 @@ CTAGS:
|
|||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -236,7 +251,7 @@ check: check-am
|
|||||||
all-am: Makefile $(DATA)
|
all-am: Makefile $(DATA)
|
||||||
installdirs:
|
installdirs:
|
||||||
for dir in "$(DESTDIR)$(sysconfdir)"; do \
|
for dir in "$(DESTDIR)$(sysconfdir)"; do \
|
||||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: install-am
|
install: install-am
|
||||||
install-exec: install-exec-am
|
install-exec: install-exec-am
|
||||||
@ -257,7 +272,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -284,12 +299,20 @@ install-data-am:
|
|||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am: install-sysconfDATA
|
install-exec-am: install-sysconfDATA
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -308,16 +331,20 @@ ps: ps-am
|
|||||||
|
|
||||||
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 \
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
install install-am install-data install-data-am install-exec \
|
install install-am install-data install-data-am \
|
||||||
install-exec-am install-info install-info-am install-man \
|
install-data-hook install-dvi install-dvi-am install-exec \
|
||||||
install-strip install-sysconfDATA installcheck installcheck-am \
|
install-exec-am install-html install-html-am install-info \
|
||||||
installdirs maintainer-clean maintainer-clean-generic \
|
install-info-am install-man install-pdf install-pdf-am \
|
||||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
install-ps install-ps-am install-strip install-sysconfDATA \
|
||||||
uninstall-am uninstall-info-am uninstall-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:
|
install-data-hook:
|
||||||
if test -f "$(DESTDIR)$(sysconfdir)/emailrelay.conf" ; then : ; else cp "$(DESTDIR)$(sysconfdir)/emailrelay.conf.template" "$(DESTDIR)$(sysconfdir)/emailrelay.conf" ; fi
|
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>
|
# Format: interface <ip-address>
|
||||||
# Description: Specifies an interface to listen on. The default is to listen
|
# 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
|
# 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
|
#interface 192.168.0.10
|
||||||
|
|
||||||
@ -110,7 +111,8 @@
|
|||||||
|
|
||||||
# Name: poll
|
# Name: poll
|
||||||
# Format: poll <period>
|
# 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
|
#poll 120
|
||||||
|
|
||||||
|
407
install-sh
407
install-sh
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# install - install a program, script, or datafile
|
# 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
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
# 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.
|
# when there is no Makefile.
|
||||||
#
|
#
|
||||||
# This script is compatible with the BSD install script, but was written
|
# 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
|
# from scratch.
|
||||||
# shared with many OS's install programs.
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
doit="${DOITPROG-}"
|
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}"
|
mvprog="${MVPROG-mv}"
|
||||||
cpprog="${CPPROG-cp}"
|
cpprog="${CPPROG-cp}"
|
||||||
@ -58,10 +67,13 @@ stripprog="${STRIPPROG-strip}"
|
|||||||
rmprog="${RMPROG-rm}"
|
rmprog="${RMPROG-rm}"
|
||||||
mkdirprog="${MKDIRPROG-mkdir}"
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
transformbasename=
|
posix_glob=
|
||||||
transform_arg=
|
posix_mkdir=
|
||||||
instcmd="$mvprog"
|
|
||||||
chmodcmd="$chmodprog 0755"
|
# Desired mode of installed file.
|
||||||
|
mode=0755
|
||||||
|
|
||||||
|
chmodcmd=$chmodprog
|
||||||
chowncmd=
|
chowncmd=
|
||||||
chgrpcmd=
|
chgrpcmd=
|
||||||
stripcmd=
|
stripcmd=
|
||||||
@ -70,23 +82,27 @@ mvcmd="$mvprog"
|
|||||||
src=
|
src=
|
||||||
dst=
|
dst=
|
||||||
dir_arg=
|
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 [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 1st form, copy SRCFILE to DSTFILE.
|
||||||
In the second, create the directory path DIR.
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-b=TRANSFORMBASENAME
|
-c (ignored)
|
||||||
-c copy source (using $cpprog) instead of moving (using $mvprog).
|
|
||||||
-d create directories instead of installing files.
|
-d create directories instead of installing files.
|
||||||
-g GROUP $chgrp installed files to GROUP.
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
-m MODE $chmod installed files to MODE.
|
-m MODE $chmodprog installed files to MODE.
|
||||||
-o USER $chown installed files to USER.
|
-o USER $chownprog installed files to USER.
|
||||||
-s strip installed files (using $stripprog).
|
-s $stripprog installed files.
|
||||||
-t=TRANSFORM
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
--help display this help and exit.
|
--help display this help and exit.
|
||||||
--version display version info 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
|
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||||
"
|
"
|
||||||
|
|
||||||
while test -n "$1"; do
|
while test $# -ne 0; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
-c) shift
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-c) instcmd=$cpprog
|
|
||||||
shift
|
|
||||||
continue;;
|
continue;;
|
||||||
|
|
||||||
-d) dir_arg=true
|
-d) dir_arg=true
|
||||||
@ -113,11 +124,17 @@ while test -n "$1"; do
|
|||||||
shift
|
shift
|
||||||
continue;;
|
continue;;
|
||||||
|
|
||||||
--help) echo "$usage"; exit 0;;
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
-m) chmodcmd="$chmodprog $2"
|
-m) mode=$2
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
|
case $mode in
|
||||||
|
*' '* | *' '* | *'
|
||||||
|
'* | *'*'* | *'?'* | *'['*)
|
||||||
|
echo "$0: invalid mode: $mode" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
continue;;
|
continue;;
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2"
|
-o) chowncmd="$chownprog $2"
|
||||||
@ -129,14 +146,30 @@ while test -n "$1"; do
|
|||||||
shift
|
shift
|
||||||
continue;;
|
continue;;
|
||||||
|
|
||||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
-t) dstarg=$2
|
||||||
|
shift
|
||||||
shift
|
shift
|
||||||
continue;;
|
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.
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
test -n "$dir_arg" && break
|
|
||||||
|
--) 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 $@.
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
for arg
|
for arg
|
||||||
do
|
do
|
||||||
@ -148,11 +181,9 @@ while test -n "$1"; do
|
|||||||
shift # arg
|
shift # arg
|
||||||
dstarg=$arg
|
dstarg=$arg
|
||||||
done
|
done
|
||||||
break;;
|
fi
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$1"; then
|
if test $# -eq 0; then
|
||||||
if test -z "$dir_arg"; then
|
if test -z "$dir_arg"; then
|
||||||
echo "$0: no input file specified." >&2
|
echo "$0: no input file specified." >&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -162,6 +193,33 @@ if test -z "$1"; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
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
|
for src
|
||||||
do
|
do
|
||||||
# Protect names starting with `-'.
|
# Protect names starting with `-'.
|
||||||
@ -171,16 +229,12 @@ do
|
|||||||
|
|
||||||
if test -n "$dir_arg"; then
|
if test -n "$dir_arg"; then
|
||||||
dst=$src
|
dst=$src
|
||||||
src=
|
dstdir=$dst
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
else
|
||||||
|
|
||||||
if test -d "$dst"; then
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
instcmd=:
|
|
||||||
chmodcmd=
|
|
||||||
else
|
|
||||||
instcmd=$mkdirprog
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
|
||||||
# might cause directories to be created, which would be especially bad
|
# might cause directories to be created, which would be especially bad
|
||||||
# if $src (and thus $dsttmp) contains '*'.
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
if test ! -f "$src" && test ! -d "$src"; then
|
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 destination is a directory, append the input filename; won't work
|
||||||
# if double slashes aren't ignored.
|
# if double slashes aren't ignored.
|
||||||
if test -d "$dst"; then
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# This sed command emulates the dirname command.
|
obsolete_mkdir_used=false
|
||||||
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
|
||||||
|
|
||||||
# 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.
|
*[0-7])
|
||||||
if test ! -d "$dstdir"; then
|
mkdir_umask=`expr $umask + 22 \
|
||||||
defaultIFS='
|
- $umask % 100 % 40 + $umask % 20 \
|
||||||
'
|
- $umask % 10 % 4 + $umask % 2
|
||||||
IFS="${IFS-$defaultIFS}"
|
`;;
|
||||||
|
*) 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
|
oIFS=$IFS
|
||||||
# Some sh's can't handle IFS=/ for some reason.
|
IFS=/
|
||||||
IFS='%'
|
$posix_glob && set -f
|
||||||
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
set fnord $dstdir
|
||||||
|
shift
|
||||||
|
$posix_glob && set +f
|
||||||
IFS=$oIFS
|
IFS=$oIFS
|
||||||
|
|
||||||
pathcomp=
|
prefixes=
|
||||||
|
|
||||||
while test $# -ne 0 ; do
|
for d
|
||||||
pathcomp=$pathcomp$1
|
do
|
||||||
shift
|
test -z "$d" && continue
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
$mkdirprog "$pathcomp" || lasterr=$?
|
prefix=$prefix$d
|
||||||
# mkdir can fail with a `File exist' error in case several
|
if test -d "$prefix"; then
|
||||||
# install-sh are creating the directory concurrently. This
|
prefixes=
|
||||||
# is OK.
|
else
|
||||||
test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
|
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
|
fi
|
||||||
pathcomp=$pathcomp/
|
fi
|
||||||
|
prefix=$prefix/
|
||||||
done
|
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
|
fi
|
||||||
|
|
||||||
if test -n "$dir_arg"; then
|
if test -n "$dir_arg"; then
|
||||||
$doit $instcmd "$dst" \
|
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
|
||||||
|
|
||||||
else
|
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.
|
# Make a couple of temp file names in the proper directory.
|
||||||
dsttmp=$dstdir/_inst.$$_
|
dsttmp=$dstdir/_inst.$$_
|
||||||
rmtmp=$dstdir/_rm.$$_
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
# Trap to clean up those temp files at exit.
|
# Trap to clean up those temp files at exit.
|
||||||
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
trap '(exit $?); exit' 1 2 13 15
|
|
||||||
|
|
||||||
# Move or copy the file name to the temp name
|
# Copy the file name to the temp name.
|
||||||
$doit $instcmd "$src" "$dsttmp" &&
|
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits.
|
# 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
|
# 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
|
# 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 "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||||
&& { test -z "$stripcmd" || $doit $stripcmd "$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
|
# Now rename the file to the real destination.
|
||||||
# try this two ways since rm can't unlink itself on some systems and
|
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|
||||||
# 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 \
|
|
||||||
|| {
|
|| {
|
||||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
(exit 1); exit
|
# 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
|
else
|
||||||
:
|
:
|
||||||
@ -299,14 +491,13 @@ do
|
|||||||
} &&
|
} &&
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
# Now rename the file to the real destination.
|
||||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
$doit $mvcmd "$dsttmp" "$dst"
|
||||||
fi || { (exit 1); exit; }
|
}
|
||||||
done
|
} || exit 1
|
||||||
|
|
||||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
trap '' 0
|
||||||
{
|
fi
|
||||||
(exit 0); exit
|
done
|
||||||
}
|
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# 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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -13,15 +13,11 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
html-recursive info-recursive install-data-recursive \
|
html-recursive info-recursive install-data-recursive \
|
||||||
install-exec-recursive install-info-recursive \
|
install-dvi-recursive install-exec-recursive \
|
||||||
install-recursive installcheck-recursive installdirs-recursive \
|
install-html-recursive install-info-recursive \
|
||||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
install-pdf-recursive install-ps-recursive install-recursive \
|
||||||
uninstall-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
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -81,9 +78,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -94,10 +93,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -106,47 +105,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
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
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
|
|
||||||
# This directory's subdirectories are mostly independent; you can cd
|
# This directory's subdirectories are mostly independent; you can cd
|
||||||
# into them and run `make' without going through this Makefile.
|
# 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');
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
# (2) otherwise, pass the desired values on the `make' command line.
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
$(RECURSIVE_TARGETS):
|
$(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; \
|
dot_seen=no; \
|
||||||
target=`echo $@ | sed s/-recursive//`; \
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
@ -204,15 +223,20 @@ $(RECURSIVE_TARGETS):
|
|||||||
local_target="$$target"; \
|
local_target="$$target"; \
|
||||||
fi; \
|
fi; \
|
||||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
|| eval $$failcom; \
|
||||||
done; \
|
done; \
|
||||||
if test "$$dot_seen" = "no"; then \
|
if test "$$dot_seen" = "no"; then \
|
||||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
fi; test -z "$$fail"
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
$(RECURSIVE_CLEAN_TARGETS):
|
||||||
maintainer-clean-recursive:
|
@failcom='exit 1'; \
|
||||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
dot_seen=no; \
|
dot_seen=no; \
|
||||||
case "$@" in \
|
case "$@" in \
|
||||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
@ -233,7 +257,7 @@ maintainer-clean-recursive:
|
|||||||
local_target="$$target"; \
|
local_target="$$target"; \
|
||||||
fi; \
|
fi; \
|
||||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
|| eval $$failcom; \
|
||||||
done && test -z "$$fail"
|
done && test -z "$$fail"
|
||||||
tags-recursive:
|
tags-recursive:
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
@ -258,14 +282,16 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
here=`pwd`; \
|
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; \
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
else \
|
else \
|
||||||
include_option=--include; \
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
fi; \
|
fi; \
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -f $$subdir/TAGS && \
|
test ! -f $$subdir/TAGS || \
|
||||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
@ -275,9 +301,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
$$tags $$unique
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique; \
|
||||||
|
fi
|
||||||
ctags: CTAGS
|
ctags: CTAGS
|
||||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
@ -302,22 +330,21 @@ distclean-tags:
|
|||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -328,15 +355,19 @@ distdir: $(DISTFILES)
|
|||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -d "$(distdir)/$$subdir" \
|
test -d "$(distdir)/$$subdir" \
|
||||||
|| mkdir "$(distdir)/$$subdir" \
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
|
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||||
|
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||||
(cd $$subdir && \
|
(cd $$subdir && \
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
top_distdir="../$(top_distdir)" \
|
top_distdir="$$top_distdir" \
|
||||||
distdir="../$(distdir)/$$subdir" \
|
distdir="$$distdir/$$subdir" \
|
||||||
|
am__remove_distdir=: \
|
||||||
|
am__skip_length_check=: \
|
||||||
distdir) \
|
distdir) \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -365,7 +396,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -390,12 +421,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am:
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-recursive
|
||||||
|
|
||||||
install-info: install-info-recursive
|
install-info: install-info-recursive
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-recursive
|
||||||
|
|
||||||
|
install-ps: install-ps-recursive
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive
|
maintainer-clean: maintainer-clean-recursive
|
||||||
@ -414,21 +453,23 @@ ps: ps-recursive
|
|||||||
|
|
||||||
ps-am:
|
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 \
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
clean clean-generic clean-recursive ctags ctags-recursive \
|
all all-am check check-am clean clean-generic ctags \
|
||||||
distclean distclean-generic distclean-recursive distclean-tags \
|
ctags-recursive distclean distclean-generic distclean-tags \
|
||||||
distdir dvi dvi-am html html-am info info-am install \
|
distdir dvi dvi-am html html-am info info-am install \
|
||||||
install-am install-data install-data-am install-exec \
|
install-am install-data install-data-am install-dvi \
|
||||||
install-exec-am install-info install-info-am install-man \
|
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 \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
tags-recursive uninstall uninstall-am
|
||||||
uninstall uninstall-am uninstall-info-am
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# 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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -16,15 +16,11 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ../..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -75,9 +69,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -88,10 +84,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -100,47 +96,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
EXTRA_DIST = iostream limits sstream xlocale
|
EXTRA_DIST = iostream limits sstream xlocale
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
@ -174,7 +185,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
|
|
||||||
@ -183,22 +193,21 @@ CTAGS:
|
|||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -232,7 +241,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -257,12 +266,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am:
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -281,16 +298,19 @@ ps: ps-am
|
|||||||
|
|
||||||
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 \
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
install install-am install-data install-data-am install-exec \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-exec-am install-info install-info-am install-man \
|
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 \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||||
uninstall-info-am
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,16 +17,17 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// iostream
|
/// \file iostream
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_STD_IOSTREAM
|
#ifndef G_STD_IOSTREAM
|
||||||
#define G_STD_IOSTREAM
|
#define G_STD_IOSTREAM
|
||||||
|
|
||||||
// gnu's iostream does only this
|
/// gnu's iostream does only this
|
||||||
#include <iostream.h>
|
#include <iostream.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
typedef ::ios ios_base ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,13 +17,14 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// limits
|
/// \file limits
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_STD_LIMITS_H
|
#ifndef G_STD_LIMITS_H
|
||||||
#define G_STD_LIMITS_H
|
#define G_STD_LIMITS_H
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
#include <limits.h>
|
#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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,11 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// sstream
|
/// \file sstream
|
||||||
//
|
///
|
||||||
// Forwards compatibility from ostrstream to std::ostringstream.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef G_STD_SSTREAM_H
|
#ifndef G_STD_SSTREAM_H
|
||||||
#define G_STD_SSTREAM_H
|
#define G_STD_SSTREAM_H
|
||||||
@ -29,6 +27,7 @@
|
|||||||
#include <strstream.h>
|
#include <strstream.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
class ostringstream : public ostrstream
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,14 +17,14 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// xlocale
|
/// \file xlocale
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_STD_XLOCALE
|
#ifndef G_STD_XLOCALE
|
||||||
#define G_STD_XLOCALE
|
#define G_STD_XLOCALE
|
||||||
|
|
||||||
// empty
|
/// empty
|
||||||
|
|
||||||
#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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -16,15 +16,11 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ../..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -75,9 +69,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -88,10 +84,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -100,47 +96,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
EXTRA_DIST = cstdio cstdlib cstring ctime cmath cstddef
|
EXTRA_DIST = cstdio cstdlib cstring ctime cmath cstddef
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
@ -174,7 +185,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
|
|
||||||
@ -183,22 +193,21 @@ CTAGS:
|
|||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -232,7 +241,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -257,12 +266,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am:
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -281,16 +298,19 @@ ps: ps-am
|
|||||||
|
|
||||||
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 \
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
install install-am install-data install-data-am install-exec \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-exec-am install-info install-info-am install-man \
|
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 \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||||
uninstall-info-am
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,15 +17,16 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// cmath
|
/// \file cmath
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_PORT_CMATH_H
|
#ifndef G_PORT_CMATH_H
|
||||||
#define G_PORT_CMATH_H
|
#define G_PORT_CMATH_H
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
using ::sin ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,15 +17,16 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// cstddef
|
/// \file cstddef
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_PORT_CSTDDEF_H
|
#ifndef G_PORT_CSTDDEF_H
|
||||||
#define G_PORT_CSTDDEF_H
|
#define G_PORT_CSTDDEF_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
using ::size_t ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,15 +17,16 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// cstdio
|
/// \file cstdio
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_PORT_CSTDIO_H
|
#ifndef G_PORT_CSTDIO_H
|
||||||
#define G_PORT_CSTDIO_H
|
#define G_PORT_CSTDIO_H
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
using ::remove ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,15 +17,16 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// cstdlib
|
/// \file cstdlib
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_PORT_CSTDLIB_H
|
#ifndef G_PORT_CSTDLIB_H
|
||||||
#define G_PORT_CSTDLIB_H
|
#define G_PORT_CSTDLIB_H
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
using ::rand ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,15 +17,16 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// cstring
|
/// \file cstring
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_PORT_CSTRING_H
|
#ifndef G_PORT_CSTRING_H
|
||||||
#define G_PORT_CSTRING_H
|
#define G_PORT_CSTRING_H
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
using ::strlen ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,15 +17,16 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// ctime
|
/// \file ctime
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_PORT_CTIME_H
|
#ifndef G_PORT_CTIME_H
|
||||||
#define G_PORT_CTIME_H
|
#define G_PORT_CTIME_H
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
/// \namespace std
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
using ::time_t ;
|
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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## 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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -13,15 +13,11 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ../..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -72,9 +66,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -85,10 +81,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -97,47 +93,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
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
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
|
|
||||||
@ -183,22 +193,21 @@ CTAGS:
|
|||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -232,7 +241,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -257,12 +266,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am:
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -281,16 +298,19 @@ ps: ps-am
|
|||||||
|
|
||||||
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 \
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
install install-am install-data install-data-am install-exec \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-exec-am install-info install-info-am install-man \
|
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 \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
|
||||||
uninstall-info-am
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/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
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
143
missing
143
missing
@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Common stub for a few missing GNU programs while installing.
|
# 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.
|
# Free Software Foundation, Inc.
|
||||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
# 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
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
# 02111-1307, USA.
|
# 02110-1301, USA.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
@ -33,6 +33,8 @@ if test $# -eq 0; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
run=:
|
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
|
# In the cases where this matters, `missing' is being run in the
|
||||||
# srcdir already.
|
# srcdir already.
|
||||||
@ -44,7 +46,7 @@ fi
|
|||||||
|
|
||||||
msg="missing on your system"
|
msg="missing on your system"
|
||||||
|
|
||||||
case "$1" in
|
case $1 in
|
||||||
--run)
|
--run)
|
||||||
# Try to run requested program, and just exit if it succeeds.
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
run=
|
run=
|
||||||
@ -60,11 +62,6 @@ case "$1" in
|
|||||||
msg="probably too old"
|
msg="probably too old"
|
||||||
fi
|
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)
|
-h|--h|--he|--hel|--help)
|
||||||
echo "\
|
echo "\
|
||||||
@ -82,6 +79,7 @@ Supported PROGRAM values:
|
|||||||
aclocal touch file \`aclocal.m4'
|
aclocal touch file \`aclocal.m4'
|
||||||
autoconf touch file \`configure'
|
autoconf touch file \`configure'
|
||||||
autoheader touch file \`config.h.in'
|
autoheader touch file \`config.h.in'
|
||||||
|
autom4te touch the output file, or create a stub one
|
||||||
automake touch all \`Makefile.in' files
|
automake touch all \`Makefile.in' files
|
||||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
flex create \`lex.yy.c', if possible, from existing .c
|
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]
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
|
||||||
Send bug reports to <bug-automake@gnu.org>."
|
Send bug reports to <bug-automake@gnu.org>."
|
||||||
|
exit $?
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
echo "missing $scriptversion (GNU Automake)"
|
echo "missing $scriptversion (GNU Automake)"
|
||||||
|
exit $?
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-*)
|
-*)
|
||||||
@ -104,12 +104,42 @@ Send bug reports to <bug-automake@gnu.org>."
|
|||||||
exit 1
|
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
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
# We have it, but it failed.
|
# We have it, but it failed.
|
||||||
exit 1
|
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
|
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 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
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)
|
autoconf)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
|
||||||
# We have it, but it failed.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
you modified \`${configure_ac}'. You might want to install the
|
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)
|
autoheader)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
|
||||||
# We have it, but it failed.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
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"
|
test -z "$files" && files="config.h"
|
||||||
touch_files=
|
touch_files=
|
||||||
for f in $files; do
|
for f in $files; do
|
||||||
case "$f" in
|
case $f in
|
||||||
*:*) touch_files="$touch_files "`echo "$f" |
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
*) touch_files="$touch_files $f.in";;
|
*) touch_files="$touch_files $f.in";;
|
||||||
@ -157,11 +177,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
automake*)
|
automake*)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
|
||||||
# We have it, but it failed.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||||
@ -173,11 +188,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
autom4te)
|
autom4te)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
|
||||||
# We have it, but it failed.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is needed, but is $msg.
|
WARNING: \`$1' is needed, but is $msg.
|
||||||
You might have modified some files without having the
|
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
|
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||||
archive site."
|
archive site."
|
||||||
|
|
||||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
if test -f "$file"; then
|
if test -f "$file"; then
|
||||||
touch $file
|
touch $file
|
||||||
else
|
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
|
in order for those modifications to take effect. You can get
|
||||||
\`Bison' from any GNU archive site."
|
\`Bison' from any GNU archive site."
|
||||||
rm -f y.tab.c y.tab.h
|
rm -f y.tab.c y.tab.h
|
||||||
if [ $# -ne 1 ]; then
|
if test $# -ne 1; then
|
||||||
eval LASTARG="\${$#}"
|
eval LASTARG="\${$#}"
|
||||||
case "$LASTARG" in
|
case $LASTARG in
|
||||||
*.y)
|
*.y)
|
||||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
if [ -f "$SRCFILE" ]; then
|
if test -f "$SRCFILE"; then
|
||||||
cp "$SRCFILE" y.tab.c
|
cp "$SRCFILE" y.tab.c
|
||||||
fi
|
fi
|
||||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
if [ -f "$SRCFILE" ]; then
|
if test -f "$SRCFILE"; then
|
||||||
cp "$SRCFILE" y.tab.h
|
cp "$SRCFILE" y.tab.h
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if [ ! -f y.tab.h ]; then
|
if test ! -f y.tab.h; then
|
||||||
echo >y.tab.h
|
echo >y.tab.h
|
||||||
fi
|
fi
|
||||||
if [ ! -f y.tab.c ]; then
|
if test ! -f y.tab.c; then
|
||||||
echo 'main() { return 0; }' >y.tab.c
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
fi
|
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
|
in order for those modifications to take effect. You can get
|
||||||
\`Flex' from any GNU archive site."
|
\`Flex' from any GNU archive site."
|
||||||
rm -f lex.yy.c
|
rm -f lex.yy.c
|
||||||
if [ $# -ne 1 ]; then
|
if test $# -ne 1; then
|
||||||
eval LASTARG="\${$#}"
|
eval LASTARG="\${$#}"
|
||||||
case "$LASTARG" in
|
case $LASTARG in
|
||||||
*.l)
|
*.l)
|
||||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
if [ -f "$SRCFILE" ]; then
|
if test -f "$SRCFILE"; then
|
||||||
cp "$SRCFILE" lex.yy.c
|
cp "$SRCFILE" lex.yy.c
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if [ ! -f lex.yy.c ]; then
|
if test ! -f lex.yy.c; then
|
||||||
echo 'main() { return 0; }' >lex.yy.c
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
help2man)
|
help2man)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
|
||||||
# We have it, but it failed.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
you modified a dependency of a manual page. You may need the
|
you modified a dependency of a manual page. You may need the
|
||||||
\`Help2man' package in order for those modifications to take
|
\`Help2man' package in order for those modifications to take
|
||||||
effect. You can get \`Help2man' from any GNU archive site."
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
if test -z "$file"; then
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
if test -f "$file"; then
|
||||||
fi
|
|
||||||
if [ -f "$file" ]; then
|
|
||||||
touch $file
|
touch $file
|
||||||
else
|
else
|
||||||
test -z "$file" || exec >$file
|
test -z "$file" || exec >$file
|
||||||
@ -279,11 +282,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
makeinfo)
|
makeinfo)
|
||||||
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
|
||||||
# We have makeinfo, but it failed.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
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,
|
call might also be the consequence of using a buggy \`make' (AIX,
|
||||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
the \`GNU make' package. Grab either from any GNU archive site."
|
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
|
if test -z "$file"; then
|
||||||
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
# ... or it is the one specified with @setfilename ...
|
||||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
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
|
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
|
touch $file
|
||||||
;;
|
;;
|
||||||
|
|
||||||
tar)
|
tar)
|
||||||
shift
|
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.
|
# We have already tried tar in the generic part.
|
||||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
# 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
|
fi
|
||||||
firstarg="$1"
|
firstarg="$1"
|
||||||
if shift; then
|
if shift; then
|
||||||
case "$firstarg" in
|
case $firstarg in
|
||||||
*o*)
|
*o*)
|
||||||
firstarg=`echo "$firstarg" | sed s/o//`
|
firstarg=`echo "$firstarg" | sed s/o//`
|
||||||
tar "$firstarg" "$@" && exit 0
|
tar "$firstarg" "$@" && exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case "$firstarg" in
|
case $firstarg in
|
||||||
*h*)
|
*h*)
|
||||||
firstarg=`echo "$firstarg" | sed s/h//`
|
firstarg=`echo "$firstarg" | sed s/h//`
|
||||||
tar "$firstarg" "$@" && exit 0
|
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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## modify it under the terms of the GNU General Public License
|
||||||
@ -18,4 +18,4 @@
|
|||||||
##
|
##
|
||||||
#
|
#
|
||||||
EXTRA_DIST = mingw.mak mingw-common.mak emailrelay.dsw
|
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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -13,15 +13,11 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
SOURCES =
|
SOURCES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
html-recursive info-recursive install-data-recursive \
|
html-recursive info-recursive install-data-recursive \
|
||||||
install-exec-recursive install-info-recursive \
|
install-dvi-recursive install-exec-recursive \
|
||||||
install-recursive installcheck-recursive installdirs-recursive \
|
install-html-recursive install-info-recursive \
|
||||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
install-pdf-recursive install-ps-recursive install-recursive \
|
||||||
uninstall-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
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -81,9 +78,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -94,10 +93,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -106,52 +105,67 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
EXTRA_DIST = mingw.mak mingw-common.mak emailrelay.dsw
|
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
|
all: all-recursive
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@ -184,7 +198,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
uninstall-info-am:
|
|
||||||
|
|
||||||
# This directory's subdirectories are mostly independent; you can cd
|
# This directory's subdirectories are mostly independent; you can cd
|
||||||
# into them and run `make' without going through this Makefile.
|
# 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');
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
# (2) otherwise, pass the desired values on the `make' command line.
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
$(RECURSIVE_TARGETS):
|
$(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; \
|
dot_seen=no; \
|
||||||
target=`echo $@ | sed s/-recursive//`; \
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
@ -205,15 +224,20 @@ $(RECURSIVE_TARGETS):
|
|||||||
local_target="$$target"; \
|
local_target="$$target"; \
|
||||||
fi; \
|
fi; \
|
||||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
|| eval $$failcom; \
|
||||||
done; \
|
done; \
|
||||||
if test "$$dot_seen" = "no"; then \
|
if test "$$dot_seen" = "no"; then \
|
||||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
fi; test -z "$$fail"
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
$(RECURSIVE_CLEAN_TARGETS):
|
||||||
maintainer-clean-recursive:
|
@failcom='exit 1'; \
|
||||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
dot_seen=no; \
|
dot_seen=no; \
|
||||||
case "$@" in \
|
case "$@" in \
|
||||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
@ -234,7 +258,7 @@ maintainer-clean-recursive:
|
|||||||
local_target="$$target"; \
|
local_target="$$target"; \
|
||||||
fi; \
|
fi; \
|
||||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
|| eval $$failcom; \
|
||||||
done && test -z "$$fail"
|
done && test -z "$$fail"
|
||||||
tags-recursive:
|
tags-recursive:
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
@ -259,14 +283,16 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
here=`pwd`; \
|
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; \
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
else \
|
else \
|
||||||
include_option=--include; \
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
fi; \
|
fi; \
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -f $$subdir/TAGS && \
|
test ! -f $$subdir/TAGS || \
|
||||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
@ -276,9 +302,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
$$tags $$unique
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique; \
|
||||||
|
fi
|
||||||
ctags: CTAGS
|
ctags: CTAGS
|
||||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
@ -303,22 +331,21 @@ distclean-tags:
|
|||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -329,15 +356,19 @@ distdir: $(DISTFILES)
|
|||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -d "$(distdir)/$$subdir" \
|
test -d "$(distdir)/$$subdir" \
|
||||||
|| mkdir "$(distdir)/$$subdir" \
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
|
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||||
|
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||||
(cd $$subdir && \
|
(cd $$subdir && \
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
top_distdir="../$(top_distdir)" \
|
top_distdir="$$top_distdir" \
|
||||||
distdir="../$(distdir)/$$subdir" \
|
distdir="$$distdir/$$subdir" \
|
||||||
|
am__remove_distdir=: \
|
||||||
|
am__skip_length_check=: \
|
||||||
distdir) \
|
distdir) \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -366,7 +397,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -391,12 +422,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am:
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-recursive
|
||||||
|
|
||||||
install-info: install-info-recursive
|
install-info: install-info-recursive
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-recursive
|
||||||
|
|
||||||
|
install-ps: install-ps-recursive
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive
|
maintainer-clean: maintainer-clean-recursive
|
||||||
@ -415,21 +454,23 @@ ps: ps-recursive
|
|||||||
|
|
||||||
ps-am:
|
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 \
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
clean clean-generic clean-recursive ctags ctags-recursive \
|
all all-am check check-am clean clean-generic ctags \
|
||||||
distclean distclean-generic distclean-recursive distclean-tags \
|
ctags-recursive distclean distclean-generic distclean-tags \
|
||||||
distdir dvi dvi-am html html-am info info-am install \
|
distdir dvi dvi-am html html-am info info-am install \
|
||||||
install-am install-data install-data-am install-exec \
|
install-am install-data install-data-am install-dvi \
|
||||||
install-exec-am install-info install-info-am install-man \
|
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 \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
tags-recursive uninstall uninstall-am
|
||||||
uninstall uninstall-am uninstall-info-am
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# 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.
|
# 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>
|
Project: "passwd"=".\main\passwd.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
Package=<5>
|
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
|
## This program is free software; you can redistribute it and/or
|
||||||
## modify it under the terms of the GNU General Public License
|
## modify it under the terms of the GNU General Public License
|
||||||
@ -26,7 +26,6 @@ EXTRA_DIST=\
|
|||||||
gfs_win32.cpp \
|
gfs_win32.cpp \
|
||||||
gidentity_win32.cpp \
|
gidentity_win32.cpp \
|
||||||
glogoutput_win32.cpp \
|
glogoutput_win32.cpp \
|
||||||
gmd5_aladdin.cpp \
|
|
||||||
gprocess_win32.cpp \
|
gprocess_win32.cpp \
|
||||||
gfile_win32.cpp \
|
gfile_win32.cpp \
|
||||||
gregistry_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@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# 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
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
@ -14,17 +14,11 @@
|
|||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
SOURCES = $(libglib_a_SOURCES)
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
top_builddir = ../..
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
INSTALL = @INSTALL@
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
install_sh_SCRIPT = $(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
|
$(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(mkdir_p)
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
ARFLAGS = cru
|
|
||||||
LIBRARIES = $(noinst_LIBRARIES)
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
ARFLAGS = cru
|
||||||
libglib_a_AR = $(AR) $(ARFLAGS)
|
libglib_a_AR = $(AR) $(ARFLAGS)
|
||||||
libglib_a_LIBADD =
|
libglib_a_LIBADD =
|
||||||
am_libglib_a_OBJECTS = md5.$(OBJEXT) garg.$(OBJEXT) \
|
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) \
|
gprocess_unix.$(OBJEXT) groot.$(OBJEXT) gslot.$(OBJEXT) \
|
||||||
gstr.$(OBJEXT) gtime.$(OBJEXT) gxtext.$(OBJEXT)
|
gstr.$(OBJEXT) gtime.$(OBJEXT) gxtext.$(OBJEXT)
|
||||||
libglib_a_OBJECTS = $(am_libglib_a_OBJECTS)
|
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
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
am__depfiles_maybe = depfiles
|
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) \
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
CXXLD = $(CXX)
|
CXXLD = $(CXX)
|
||||||
@ -99,8 +74,6 @@ ETAGS = etags
|
|||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMDEP_FALSE = @AMDEP_FALSE@
|
|
||||||
AMDEP_TRUE = @AMDEP_TRUE@
|
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -124,9 +97,11 @@ ECHO_N = @ECHO_N@
|
|||||||
ECHO_T = @ECHO_T@
|
ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
GZIP = @GZIP@
|
GZIP = @GZIP@
|
||||||
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
HAVE_DOXYGEN = @HAVE_DOXYGEN@
|
||||||
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
HAVE_MAN2HTML = @HAVE_MAN2HTML@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
@ -137,10 +112,10 @@ LIBOBJS = @LIBOBJS@
|
|||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
LTLIBOBJS = @LTLIBOBJS@
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
|
||||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
|
||||||
MAKE = @MAKE@
|
MAKE = @MAKE@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
MOC = @MOC@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
@ -149,47 +124,62 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
|||||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
POPLIB = @POPLIB@
|
POPLIB = @POPLIB@
|
||||||
|
QT_CFLAGS = @QT_CFLAGS@
|
||||||
|
QT_LIBS = @QT_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
VERSION = @VERSION@
|
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_CC = @ac_ct_CC@
|
||||||
ac_ct_CXX = @ac_ct_CXX@
|
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__include = @am__include@
|
||||||
am__leading_dot = @am__leading_dot@
|
am__leading_dot = @am__leading_dot@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
e_docdir = @e_docdir@
|
e_docdir = @e_docdir@
|
||||||
e_examplesdir = @e_examplesdir@
|
e_examplesdir = @e_examplesdir@
|
||||||
e_initdir = @e_initdir@
|
e_initdir = @e_initdir@
|
||||||
|
e_qtmoc = @e_qtmoc@
|
||||||
e_spooldir = @e_spooldir@
|
e_spooldir = @e_spooldir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -202,7 +192,6 @@ EXTRA_DIST = \
|
|||||||
gfs_win32.cpp \
|
gfs_win32.cpp \
|
||||||
gidentity_win32.cpp \
|
gidentity_win32.cpp \
|
||||||
glogoutput_win32.cpp \
|
glogoutput_win32.cpp \
|
||||||
gmd5_aladdin.cpp \
|
|
||||||
gprocess_win32.cpp \
|
gprocess_win32.cpp \
|
||||||
gfile_win32.cpp \
|
gfile_win32.cpp \
|
||||||
gregistry_win32.cpp \
|
gregistry_win32.cpp \
|
||||||
@ -353,21 +342,18 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
@am__fastdepCXX_TRUE@ $(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@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
@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@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
||||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
.cpp.obj:
|
.cpp.obj:
|
||||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
@am__fastdepCXX_TRUE@ $(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@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
@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@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
||||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
uninstall-info-am:
|
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
@ -389,9 +375,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
$$tags $$unique
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique; \
|
||||||
|
fi
|
||||||
ctags: CTAGS
|
ctags: CTAGS
|
||||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
@ -416,22 +404,21 @@ distclean-tags:
|
|||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; for file in $$list; do \
|
list='$(DISTFILES)'; \
|
||||||
case $$file in \
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
esac; \
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
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 \
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -465,7 +452,7 @@ mostlyclean-generic:
|
|||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@ -492,12 +479,20 @@ info-am:
|
|||||||
|
|
||||||
install-data-am:
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
install-info: install-info-am
|
install-info: install-info-am
|
||||||
|
|
||||||
install-man:
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
@ -517,18 +512,22 @@ ps: ps-am
|
|||||||
|
|
||||||
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 \
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||||
clean-noinstLIBRARIES ctags distclean distclean-compile \
|
clean-noinstLIBRARIES ctags distclean distclean-compile \
|
||||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
distclean-generic distclean-tags distdir dvi dvi-am html \
|
||||||
html-am info info-am install install-am install-data \
|
html-am info info-am install install-am install-data \
|
||||||
install-data-am install-exec install-exec-am install-info \
|
install-data-am install-dvi install-dvi-am install-exec \
|
||||||
install-info-am install-man install-strip installcheck \
|
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 \
|
installcheck-am installdirs maintainer-clean \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
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.
|
# 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.
|
# 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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 ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// garg.h
|
/// \file garg.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_ARG_H
|
#ifndef G_ARG_H
|
||||||
#define G_ARG_H
|
#define G_ARG_H
|
||||||
@ -29,91 +29,92 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class Arg ;
|
class Arg ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::Arg
|
/// \class G::Arg
|
||||||
// Description: A class which holds a represention of the
|
/// A class which holds a represention of the
|
||||||
// argc/argv command line array. Also does simple command line
|
/// argc/argv command line array. Also does simple command line
|
||||||
// parsing, and, under Windows, command line splitting (the
|
/// parsing, and, under Windows, command line splitting (the
|
||||||
// single command line string is split into an argv[] array,
|
/// single command line string is split into an argv[] array,
|
||||||
// including argv[0]).
|
/// including argv[0]).
|
||||||
//
|
///
|
||||||
// See also: G::GetOpt
|
/// \see G::GetOpt
|
||||||
//
|
///
|
||||||
class G::Arg
|
class G::Arg
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Arg( int argc , char *argv[] ) ;
|
Arg( int argc , char *argv[] ) ;
|
||||||
// Constructor taking argc/argv.
|
///< Constructor taking argc/argv.
|
||||||
|
|
||||||
Arg() ;
|
Arg() ;
|
||||||
// Default constructor for Windows.
|
///< Default constructor for Windows.
|
||||||
// Initialise (once) with parse().
|
///< Initialise (once) with parse().
|
||||||
|
|
||||||
void parse( HINSTANCE hinstance , const std::string & command_line ) ;
|
void parse( HINSTANCE hinstance , const std::string & command_line ) ;
|
||||||
// Windows only.
|
///< Windows only.
|
||||||
//
|
///<
|
||||||
// Parses the given command line, splitting
|
///< Parses the given command line, splitting
|
||||||
// it up into an array of tokens.
|
///< it up into an array of tokens.
|
||||||
// The full exe name is automatically
|
///< The full exe name is automatically
|
||||||
// added as the first token (cf. argv[0]).
|
///< added as the first token (cf. argv[0]).
|
||||||
|
|
||||||
void reparse( const std::string & command_line ) ;
|
void reparse( const std::string & command_line ) ;
|
||||||
// Reinitialises the object with the given
|
///< Reinitialises the object with the given
|
||||||
// command-line. The command-line should not
|
///< command-line. The command-line should not
|
||||||
// contain the program name: the v(0) value
|
///< contain the program name: the v(0) value
|
||||||
// and prefix() are unchanged.
|
///< and prefix() are unchanged.
|
||||||
|
|
||||||
~Arg() ;
|
~Arg() ;
|
||||||
// Destructor.
|
///< Destructor.
|
||||||
|
|
||||||
size_t c() const ;
|
size_t c() const ;
|
||||||
// Returns the number of tokens in the
|
///< Returns the number of tokens in the
|
||||||
// command line, including the program
|
///< command line, including the program
|
||||||
// name.
|
///< name.
|
||||||
|
|
||||||
std::string v( size_t i ) const ;
|
std::string v( size_t i ) const ;
|
||||||
// Returns the i'th argument.
|
///< Returns the i'th argument.
|
||||||
// Precondition: i < c()
|
///< Precondition: i < c()
|
||||||
|
|
||||||
std::string prefix() const ;
|
std::string prefix() const ;
|
||||||
// Returns the basename of v(0) without
|
///< Returns the basename of v(0) without
|
||||||
// any extension.
|
///< any extension.
|
||||||
|
|
||||||
static const char * prefix( char * argv[] ) ; // throw()
|
static const char * prefix( char * argv[] ) ; // throw()
|
||||||
// An exception-free version of prefix() which can
|
///< An exception-free version of prefix() which can
|
||||||
// be used in main() outside of the outermost try
|
///< be used in main() outside of the outermost try
|
||||||
// block.
|
///< block.
|
||||||
|
|
||||||
bool contains( const std::string & sw ,
|
bool contains( const std::string & sw ,
|
||||||
size_t sw_args = 0U , bool case_sensitive = true ) const ;
|
size_t sw_args = 0U , bool case_sensitive = true ) const ;
|
||||||
// Returns true if the command line
|
///< Returns true if the command line
|
||||||
// contains the given switch with enough
|
///< contains the given switch with enough
|
||||||
// command line arguments left to satisfy
|
///< command line arguments left to satisfy
|
||||||
// the given number of switch arguments.
|
///< the given number of switch arguments.
|
||||||
|
|
||||||
size_t index( const std::string & sw , size_t sw_args = 0U ) const ;
|
size_t index( const std::string & sw , size_t sw_args = 0U ) const ;
|
||||||
// Returns the index of the given switch.
|
///< Returns the index of the given switch.
|
||||||
// Returns zero if not present.
|
///< Returns zero if not present.
|
||||||
|
|
||||||
void remove( const std::string & sw , size_t sw_args = 0U ) ;
|
void remove( const std::string & sw , size_t sw_args = 0U ) ;
|
||||||
// Removes the given switch and its
|
///< Removes the given switch and its
|
||||||
// arguments.
|
///< arguments.
|
||||||
//
|
///<
|
||||||
// Precondition: contains()
|
///< Precondition: contains()
|
||||||
|
|
||||||
void removeAt( size_t sw_index , size_t sw_args = 0U ) ;
|
void removeAt( size_t sw_index , size_t sw_args = 0U ) ;
|
||||||
// Removes the given argument and the
|
///< Removes the given argument and the
|
||||||
// following 'sw_args' ones.
|
///< following 'sw_args' ones.
|
||||||
|
|
||||||
Arg & operator=( const Arg & ) ;
|
Arg & operator=( const Arg & ) ;
|
||||||
// Assignment operator.
|
///< Assignment operator.
|
||||||
|
|
||||||
Arg( const Arg & ) ;
|
Arg( const Arg & ) ;
|
||||||
// Copy constructor.
|
///< Copy constructor.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::string moduleName( HINSTANCE h ) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -30,3 +30,4 @@ std::string G::Arg::moduleName( HINSTANCE )
|
|||||||
return std::string() ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gassert.h
|
/// \file gassert.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_ASSERT_H
|
#ifndef G_ASSERT_H
|
||||||
#define 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gcleanup.h
|
/// \file gcleanup.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_CLEANUP_H
|
#ifndef G_CLEANUP_H
|
||||||
#define G_CLEANUP_H
|
#define G_CLEANUP_H
|
||||||
@ -28,30 +28,31 @@
|
|||||||
#include "gpath.h"
|
#include "gpath.h"
|
||||||
#include "gexception.h"
|
#include "gexception.h"
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class Cleanup ;
|
class Cleanup ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::Cleanup
|
/// \class G::Cleanup
|
||||||
// Description: An interface for registering cleanup functions
|
/// An interface for registering cleanup functions
|
||||||
// which are called when the process terminates abnormally.
|
/// which are called when the process terminates abnormally.
|
||||||
//
|
///
|
||||||
class G::Cleanup
|
class G::Cleanup
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
G_EXCEPTION( Error , "cleanup error" ) ;
|
G_EXCEPTION( Error , "cleanup error" ) ;
|
||||||
|
|
||||||
static void init() ;
|
static void init() ;
|
||||||
// An optional early-initialisation function.
|
///< An optional early-initialisation function.
|
||||||
// May be called more than once.
|
///< May be called more than once.
|
||||||
|
|
||||||
static void add( void (*fn)(const char*) , const char * arg ) ;
|
static void add( void (*fn)(const char*) , const char * arg ) ;
|
||||||
// Adds the given handler to the list which
|
///< Adds the given handler to the list which
|
||||||
// are to be called when the process
|
///< are to be called when the process
|
||||||
// terminates abnormally. The handler
|
///< terminates abnormally. The handler
|
||||||
// function must be fully reentrant.
|
///< function must be fully reentrant.
|
||||||
// The 'arg' pointer is kept.
|
///< The 'arg' pointer is kept.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Cleanup() ; // not implemeneted
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -39,9 +39,9 @@ namespace G
|
|||||||
class CleanupImp ;
|
class CleanupImp ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::CleanupImp
|
/// \class G::CleanupImp
|
||||||
// Description: A private implementation class used by G::Cleanup.
|
/// A private implementation class used by G::Cleanup.
|
||||||
//
|
///
|
||||||
class G::CleanupImp
|
class G::CleanupImp
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -58,7 +58,8 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
typedef Cleanup::Error Error ;
|
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*) ;
|
void (*fn)(const char*) ;
|
||||||
const char * arg ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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
|
// 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,26 +17,28 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gconvert.h
|
/// \file gconvert.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_CONVERT_H
|
#ifndef G_CONVERT_H
|
||||||
#define G_CONVERT_H
|
#define G_CONVERT_H
|
||||||
|
|
||||||
#include "gdef.h"
|
#include "gdef.h"
|
||||||
#include "gexception.h"
|
#include "gexception.h"
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
|
|
||||||
G_EXCEPTION( ConvertOverflow , "arithmetic overflow" ) ;
|
G_EXCEPTION( ConvertOverflow , "arithmetic overflow" ) ;
|
||||||
|
|
||||||
// Template function: G::Convert
|
/// Template function: G::Convert
|
||||||
// Description: Does arithmetic conversions with
|
/// Does arithmetic conversions with
|
||||||
// overflow checking.
|
/// overflow checking.
|
||||||
// See also: boost::numeric_cast<>()
|
/// \see boost::numeric_cast<>()
|
||||||
//
|
///
|
||||||
template <class Tout, class Tin>
|
template <class Tout, class Tin>
|
||||||
inline
|
inline
|
||||||
Tout Convert( const Tin & in )
|
Tout Convert( const Tin & in )
|
||||||
@ -44,7 +46,11 @@ Tout Convert( const Tin & in )
|
|||||||
Tout out = in ;
|
Tout out = in ;
|
||||||
Tin copy = out ;
|
Tin copy = out ;
|
||||||
if( in != copy )
|
if( in != copy )
|
||||||
throw ConvertOverflow( std::ostringstream() << in ) ;
|
{
|
||||||
|
std::ostringstream ss ;
|
||||||
|
ss << in ;
|
||||||
|
throw ConvertOverflow( ss.str() ) ;
|
||||||
|
}
|
||||||
return out ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gdaemon.h
|
/// \file gdaemon.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_DAEMON_H
|
#ifndef G_DAEMON_H
|
||||||
#define G_DAEMON_H
|
#define G_DAEMON_H
|
||||||
@ -31,42 +31,43 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class Daemon ;
|
class Daemon ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::Daemon
|
/// \class G::Daemon
|
||||||
// Description: A class for deamonising the calling process.
|
/// A class for deamonising the calling process.
|
||||||
// Deamonisation includes fork()ing, detaching from the
|
/// Deamonisation includes fork()ing, detaching from the
|
||||||
// controlling terminal, setting the process umask, etc.
|
/// controlling terminal, setting the process umask, etc.
|
||||||
// The windows implementation does nothing.
|
/// The windows implementation does nothing.
|
||||||
// See also: G::Process
|
/// \see G::Process
|
||||||
//
|
///
|
||||||
class G::Daemon
|
class G::Daemon
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
G_EXCEPTION( CannotFork , "cannot fork" ) ;
|
G_EXCEPTION( CannotFork , "cannot fork" ) ;
|
||||||
|
|
||||||
static void detach() ;
|
static void detach() ;
|
||||||
// Detaches from the parent environment.
|
///< Detaches from the parent environment.
|
||||||
// This typically involves fork()ing,
|
///< This typically involves fork()ing,
|
||||||
// _exit()ing the parent, and calling
|
///< _exit()ing the parent, and calling
|
||||||
// setsid() in the child.
|
///< setsid() in the child.
|
||||||
|
|
||||||
static void detach( PidFile & pid_file ) ;
|
static void detach( PidFile & pid_file ) ;
|
||||||
// An overload which allows for a delayed write
|
///< An overload which allows for a delayed write
|
||||||
// of the new process-id to a file.
|
///< of the new process-id to a file.
|
||||||
//
|
///<
|
||||||
// A delayed write is useful for network daemons
|
///< A delayed write is useful for network daemons
|
||||||
// which open a listening port. A second instance
|
///< which open a listening port. A second instance
|
||||||
// of the process will fail on startup, and should
|
///< of the process will fail on startup, and should
|
||||||
// not overwrite the pid file of the running
|
///< not overwrite the pid file of the running
|
||||||
// server. In this situation PidFile::commit()
|
///< server. In this situation PidFile::commit()
|
||||||
// should be called just before entering the event
|
///< should be called just before entering the event
|
||||||
// loop.
|
///< loop.
|
||||||
//
|
///<
|
||||||
// Throws PidFile::Error on error.
|
///< Throws PidFile::Error on error.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Daemon() ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -54,3 +54,4 @@ void G::Daemon::setsid()
|
|||||||
; // no-op
|
; // 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -37,3 +37,4 @@ void G::Daemon::detach()
|
|||||||
// no-op
|
// 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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 ) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gdate.h
|
/// \file gdate.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_DATE_H
|
#ifndef G_DATE_H
|
||||||
#define G_DATE_H
|
#define G_DATE_H
|
||||||
@ -30,19 +30,21 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class Date ;
|
class Date ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::Date
|
/// \class G::Date
|
||||||
// Description: A date (dd/mm/yyyy) class.
|
/// A date (dd/mm/yyyy) class.
|
||||||
// See also: G::Time, G::DateTime
|
/// \see G::Time, G::DateTime
|
||||||
//
|
///
|
||||||
class G::Date
|
class G::Date
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
class LocalTime // An overload discriminator class for Date constructors.
|
/// An overload discriminator class for Date constructors.
|
||||||
|
class LocalTime
|
||||||
{} ;
|
{} ;
|
||||||
|
|
||||||
enum Weekday
|
enum Weekday
|
||||||
@ -56,79 +58,79 @@ public:
|
|||||||
{ yyyy_mm_dd_slash , yyyy_mm_dd , mm_dd } ;
|
{ yyyy_mm_dd_slash , yyyy_mm_dd , mm_dd } ;
|
||||||
|
|
||||||
static int yearUpperLimit() ;
|
static int yearUpperLimit() ;
|
||||||
// Returns the smallest supported year value.
|
///< Returns the smallest supported year value.
|
||||||
|
|
||||||
static int yearLowerLimit() ;
|
static int yearLowerLimit() ;
|
||||||
// Returns the largest supported year value.
|
///< Returns the largest supported year value.
|
||||||
|
|
||||||
Date() ;
|
Date() ;
|
||||||
// Default constructor the current date
|
///< Default constructor the current date
|
||||||
// in the UTC timezone.
|
///< in the UTC timezone.
|
||||||
|
|
||||||
explicit Date( const LocalTime & ) ;
|
explicit Date( const LocalTime & ) ;
|
||||||
// Constructor for the current date
|
///< Constructor for the current date
|
||||||
// in the local timezone.
|
///< in the local timezone.
|
||||||
|
|
||||||
Date( const G::DateTime::BrokenDownTime & tm ) ;
|
Date( const G::DateTime::BrokenDownTime & tm ) ;
|
||||||
// Constructor for the specified date.
|
///< Constructor for the specified date.
|
||||||
|
|
||||||
explicit Date( G::DateTime::EpochTime t ) ;
|
explicit Date( G::DateTime::EpochTime t ) ;
|
||||||
// Constructor for the date in the UTC
|
///< Constructor for the date in the UTC
|
||||||
// timezone as at the given epoch time.
|
///< timezone as at the given epoch time.
|
||||||
|
|
||||||
Date( G::DateTime::EpochTime t , const LocalTime & ) ;
|
Date( G::DateTime::EpochTime t , const LocalTime & ) ;
|
||||||
// Constructor for the date in the local
|
///< Constructor for the date in the local
|
||||||
// timezone as at the given epoch time.
|
///< timezone as at the given epoch time.
|
||||||
|
|
||||||
Date( int year , Month month , int day_of_month ) ;
|
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 ;
|
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 ;
|
Weekday weekday() const ;
|
||||||
// Returns the day of the week.
|
///< Returns the day of the week.
|
||||||
|
|
||||||
std::string weekdayName( bool brief = false ) const ;
|
std::string weekdayName( bool brief = false ) const ;
|
||||||
// Returns an english string representation of
|
///< Returns an english string representation of
|
||||||
// the day of the week.
|
///< the day of the week.
|
||||||
// (Was weekdayString().)
|
///< (Was weekdayString().)
|
||||||
|
|
||||||
int monthday() const ;
|
int monthday() const ;
|
||||||
// Returns the day of the month.
|
///< Returns the day of the month.
|
||||||
|
|
||||||
std::string dd() const ;
|
std::string dd() const ;
|
||||||
// Returns the day of the month as a two-digit decimal string.
|
///< Returns the day of the month as a two-digit decimal string.
|
||||||
// (Was monthdayString().)
|
///< (Was monthdayString().)
|
||||||
|
|
||||||
Month month() const ;
|
Month month() const ;
|
||||||
// Returns the month.
|
///< Returns the month.
|
||||||
|
|
||||||
std::string monthName( bool brief = false ) const ;
|
std::string monthName( bool brief = false ) const ;
|
||||||
// Returns the month as a string (in english).
|
///< Returns the month as a string (in english).
|
||||||
// (Was monthString().)
|
///< (Was monthString().)
|
||||||
|
|
||||||
std::string mm() const ;
|
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 ;
|
int year() const ;
|
||||||
// Returns the year.
|
///< Returns the year.
|
||||||
|
|
||||||
std::string yyyy() const ;
|
std::string yyyy() const ;
|
||||||
// Returns the year as a four-digit decimal string.
|
///< Returns the year as a four-digit decimal string.
|
||||||
// (Was yearString().)
|
///< (Was yearString().)
|
||||||
|
|
||||||
Date & operator++() ;
|
Date & operator++() ;
|
||||||
// Increments the date by one day.
|
///< Increments the date by one day.
|
||||||
|
|
||||||
Date & operator--() ;
|
Date & operator--() ;
|
||||||
// Decrements the date by one day.
|
///< Decrements the date by one day.
|
||||||
|
|
||||||
bool operator==( const Date & rhs ) const ;
|
bool operator==( const Date & rhs ) const ;
|
||||||
// Comparison operator.
|
///< Comparison operator.
|
||||||
|
|
||||||
bool operator!=( const Date & rhs ) const ;
|
bool operator!=( const Date & rhs ) const ;
|
||||||
// Comparison operator.
|
///< Comparison operator.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void init( const G::DateTime::BrokenDownTime & ) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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 ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gdatetime.h
|
/// \file gdatetime.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_DATE_TIME_H
|
#ifndef G_DATE_TIME_H
|
||||||
#define G_DATE_TIME_H
|
#define G_DATE_TIME_H
|
||||||
@ -29,14 +29,15 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class DateTime ;
|
class DateTime ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::DateTime
|
/// \class G::DateTime
|
||||||
// Description: A low-level static class used by Date and Time.
|
/// A low-level static class used by Date and Time.
|
||||||
//
|
///
|
||||||
class G::DateTime
|
class G::DateTime
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -46,30 +47,30 @@ public:
|
|||||||
typedef std::pair<bool,unsigned int> Offset ;
|
typedef std::pair<bool,unsigned int> Offset ;
|
||||||
|
|
||||||
static EpochTime now() ;
|
static EpochTime now() ;
|
||||||
// Returns the current epoch time.
|
///< Returns the current epoch time.
|
||||||
|
|
||||||
static EpochTime epochTime( const BrokenDownTime & broken_down_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 ) ;
|
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 ) ;
|
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 ) ;
|
static Offset offset( EpochTime epoch_time ) ;
|
||||||
// Returns the offset between UTC and localtime
|
///< Returns the offset between UTC and localtime
|
||||||
// as at 'epoch_time'. The returned pair has
|
///< as at 'epoch_time'. The returned pair has
|
||||||
// 'first' set to true if localtime is
|
///< 'first' set to true if localtime is
|
||||||
// ahead of (ie. east of) UTC.
|
///< ahead of (ie. east of) UTC.
|
||||||
//
|
///<
|
||||||
// (Note that this may be a relatively expensive
|
///< (Note that this may be a relatively expensive
|
||||||
// operation.)
|
///< operation.)
|
||||||
|
|
||||||
static std::string offsetString( Offset offset ) ;
|
static std::string offsetString( Offset offset ) ;
|
||||||
// Converts the given utc/localtime offset into a five-character
|
///< Converts the given utc/localtime offset into a five-character
|
||||||
// "+/-hhmm" string.
|
///< "+/-hhmm" string.
|
||||||
// See also RFC2822.
|
///< See also RFC2822.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool equivalent( EpochTime , const BrokenDownTime & ) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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 ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gdebug.h
|
/// \file gdebug.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_DEBUG_H
|
#ifndef G_DEBUG_H
|
||||||
#define 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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,23 +17,26 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// 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
|
/* This header is always the first header included in source
|
||||||
// files. It takes care of some portability issues, and
|
* files. It takes care of some portability issues, and
|
||||||
// is a good candidate for precompilation. It requires
|
* is a good candidate for precompilation. It requires
|
||||||
// either G_UNIX or G_WIN32 to be defined on the compiler
|
* either G_UNIX or G_WIN32 to be defined on the compiler
|
||||||
// command line, although G_UNIX may also be inferred from
|
* command line, although G_UNIX may also be inferred from
|
||||||
// autoconf's HAVE_CONFIG_H.
|
* autoconf's HAVE_CONFIG_H.
|
||||||
//
|
*/
|
||||||
|
|
||||||
#ifndef G_DEF_H
|
#ifndef G_DEF_H
|
||||||
#define G_DEF_H
|
#define G_DEF_H
|
||||||
|
|
||||||
// Autoconf, part 1
|
/* Autoconf, part 1
|
||||||
//
|
*/
|
||||||
#if defined( HAVE_CONFIG_H )
|
#if defined( HAVE_CONFIG_H )
|
||||||
|
|
||||||
#if ! defined( G_UNIX )
|
#if ! defined( G_UNIX )
|
||||||
@ -48,17 +51,20 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ! HAVE_GMTIME_R || ! HAVE_LOCALTIME_R
|
#if ! HAVE_GMTIME_R || ! HAVE_LOCALTIME_R
|
||||||
|
#ifdef __cplusplus
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ! HAVE_SOCKLEN_T
|
#if ! HAVE_SOCKLEN_T
|
||||||
typedef int socklen_t ;
|
typedef int socklen_t ;
|
||||||
#endif
|
#endif
|
||||||
|
#else
|
||||||
|
#define HAVE_ZLIB_H 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Check operating-system switches
|
/* Check operating-system switches
|
||||||
//
|
*/
|
||||||
#if !defined( G_WIN32 ) && !defined( G_UNIX )
|
#if !defined( G_WIN32 ) && !defined( G_UNIX )
|
||||||
#error invalid compilation switches
|
#error invalid compilation switches
|
||||||
#endif
|
#endif
|
||||||
@ -66,14 +72,14 @@
|
|||||||
#error invalid compilation switches
|
#error invalid compilation switches
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Define supplementary o/s compilation switches
|
/* Define supplementary o/s compilation switches
|
||||||
//
|
*/
|
||||||
#if defined( G_WIN32 ) && ! defined( G_WINDOWS )
|
#if defined( G_WIN32 ) && ! defined( G_WINDOWS )
|
||||||
#define G_WINDOWS
|
#define G_WINDOWS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Define the compiler
|
/* Define the compiler
|
||||||
//
|
*/
|
||||||
#if defined( _MSC_VER )
|
#if defined( _MSC_VER )
|
||||||
#define G_COMPILER_IS_MICROSOFT 1
|
#define G_COMPILER_IS_MICROSOFT 1
|
||||||
#endif
|
#endif
|
||||||
@ -81,8 +87,8 @@
|
|||||||
#define G_COMPILER_IS_GNU 1
|
#define G_COMPILER_IS_GNU 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Include main o/s headers
|
/* Include main o/s headers
|
||||||
//
|
*/
|
||||||
#if defined( G_WINDOWS ) && defined( G_MINGW )
|
#if defined( G_WINDOWS ) && defined( G_MINGW )
|
||||||
#define __USE_W32_SOCKETS
|
#define __USE_W32_SOCKETS
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@ -101,9 +107,9 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Define Windows-style types (only used for
|
/* Define Windows-style types (only used for
|
||||||
// unimplemented declarations under unix)
|
* unimplemented declarations under unix)
|
||||||
//
|
*/
|
||||||
#if ! defined( G_WINDOWS )
|
#if ! defined( G_WINDOWS )
|
||||||
typedef unsigned char BOOL ;
|
typedef unsigned char BOOL ;
|
||||||
typedef unsigned int HWND ;
|
typedef unsigned int HWND ;
|
||||||
@ -111,9 +117,10 @@
|
|||||||
typedef unsigned int HANDLE ;
|
typedef unsigned int HANDLE ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Include commonly-used system headers (good for
|
/* Include commonly-used system headers (good for
|
||||||
// pre-compilation)
|
* pre-compilation)
|
||||||
//
|
*/
|
||||||
|
#ifdef __cplusplus
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
@ -122,80 +129,89 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#endif
|
||||||
|
|
||||||
// Define fixed-size types
|
/* Define fixed-size types
|
||||||
//
|
*/
|
||||||
typedef unsigned long g_uint32_t ;
|
typedef unsigned long g_uint32_t ;
|
||||||
typedef unsigned short g_uint16_t ;
|
typedef unsigned short g_uint16_t ;
|
||||||
typedef long g_int32_t ;
|
typedef long g_int32_t ;
|
||||||
typedef short g_int16_t ;
|
typedef short g_int16_t ;
|
||||||
|
|
||||||
// Define short-name types
|
/* Define short-name types
|
||||||
//
|
*/
|
||||||
typedef unsigned char uchar_t ;
|
typedef unsigned char uchar_t ;
|
||||||
|
|
||||||
// Define missing standard types
|
/* Define missing standard types
|
||||||
//
|
*/
|
||||||
#if defined( G_WINDOWS )
|
#if defined( G_WINDOWS )
|
||||||
typedef int ssize_t ;
|
|
||||||
typedef int uid_t ;
|
typedef int uid_t ;
|
||||||
typedef int gid_t ;
|
typedef int gid_t ;
|
||||||
#if ! defined( G_MINGW )
|
#if ! defined( G_MINGW )
|
||||||
|
typedef int ssize_t ;
|
||||||
typedef unsigned int pid_t ;
|
typedef unsigned int pid_t ;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Pull some std types into the global namespace
|
/* Pull some std types into the global namespace
|
||||||
//
|
*/
|
||||||
|
#ifdef __cplusplus
|
||||||
using std::size_t ;
|
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
|
#endif
|
||||||
|
|
||||||
// A macro to explicitly ignore a function's return value.
|
/* Modify compiler error handling
|
||||||
// Some compilers complain when return values are ignored, and
|
*/
|
||||||
// others complain when using a c-style cast...
|
#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
|
#if 1
|
||||||
#define G_IGNORE
|
#define G_IGNORE
|
||||||
#else
|
#else
|
||||||
#define G_IGNORE (void)
|
#define G_IGNORE (void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Autoconf, part 2
|
/* Autoconf, part 2
|
||||||
//
|
*/
|
||||||
#if defined( HAVE_CONFIG_H )
|
#if defined( HAVE_CONFIG_H )
|
||||||
#if ! HAVE_GMTIME_R
|
#if ! HAVE_GMTIME_R
|
||||||
|
#ifdef __cplusplus
|
||||||
inline std::tm * gmtime_r( const std::time_t * tp , std::tm * tm_p )
|
inline std::tm * gmtime_r( const std::time_t * tp , std::tm * tm_p )
|
||||||
{
|
{
|
||||||
* tm_p = * std::gmtime( tp ) ;
|
* tm_p = * std::gmtime( tp ) ;
|
||||||
return tm_p ;
|
return tm_p ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#if ! HAVE_LOCALTIME_R
|
#if ! HAVE_LOCALTIME_R
|
||||||
|
#ifdef __cplusplus
|
||||||
inline std::tm * localtime_r( const std::time_t * tp , std::tm * tm_p )
|
inline std::tm * localtime_r( const std::time_t * tp , std::tm * tm_p )
|
||||||
{
|
{
|
||||||
* tm_p = * std::localtime( tp ) ;
|
* tm_p = * std::localtime( tp ) ;
|
||||||
return tm_p ;
|
return tm_p ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#if HAVE_SETGROUPS
|
#if HAVE_SETGROUPS
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
#else
|
#else
|
||||||
|
#ifdef __cplusplus
|
||||||
inline int setgroups( size_t , const gid_t * )
|
inline int setgroups( size_t , const gid_t * )
|
||||||
{
|
{
|
||||||
return 0 ;
|
return 0 ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -73,3 +73,4 @@ G::Path G::Directory::path() const
|
|||||||
return m_path ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gdirectory.h
|
/// \file gdirectory.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_DIRECTORY_H
|
#ifndef G_DIRECTORY_H
|
||||||
#define G_DIRECTORY_H
|
#define G_DIRECTORY_H
|
||||||
@ -30,6 +30,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class DirectoryIteratorImp ;
|
class DirectoryIteratorImp ;
|
||||||
@ -37,105 +38,107 @@ namespace G
|
|||||||
class DirectoryIterator ;
|
class DirectoryIterator ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::Directory
|
/// \class G::Directory
|
||||||
// Description: An encapsulation of a file system directory
|
/// An encapsulation of a file system directory
|
||||||
// which allows for iterating through the set of contained
|
/// which allows for iterating through the set of contained
|
||||||
// files.
|
/// files.
|
||||||
// See also: G::Path, G::FileSystem, G::File
|
/// \see G::Path, G::FileSystem, G::File
|
||||||
//
|
///
|
||||||
class G::Directory
|
class G::Directory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Directory() ;
|
Directory() ;
|
||||||
// Default constructor for the current directory.
|
///< Default constructor for the current directory.
|
||||||
|
|
||||||
explicit Directory( const char * path ) ;
|
explicit Directory( const char * path ) ;
|
||||||
// Constructor.
|
///< Constructor.
|
||||||
|
|
||||||
explicit Directory( const Path & path ) ;
|
explicit Directory( const Path & path ) ;
|
||||||
// Constructor.
|
///< Constructor.
|
||||||
|
|
||||||
explicit Directory( const std::string & path ) ;
|
explicit Directory( const std::string & path ) ;
|
||||||
// Constructor.
|
///< Constructor.
|
||||||
|
|
||||||
virtual ~Directory() ;
|
virtual ~Directory() ;
|
||||||
// Virtual destructor.
|
///< Virtual destructor.
|
||||||
|
|
||||||
bool valid( bool for_creating_files = false ) const ;
|
bool valid( bool for_creating_files = false ) const ;
|
||||||
// Returns true if the object represents a valid
|
///< Returns true if the object represents a valid
|
||||||
// directory.
|
///< directory.
|
||||||
//
|
///<
|
||||||
// Does additional checks if the 'for-creating-files'
|
///< Does additional checks if the 'for-creating-files'
|
||||||
// parameter is true. But note that the answer is not
|
///< parameter is true. But note that the answer is not
|
||||||
// definitive -- file creation may fail, even if
|
///< definitive -- file creation may fail, even if
|
||||||
// valid() returns true. For a more accurate test
|
///< valid() returns true. For a more accurate test
|
||||||
// use writeable().
|
///< use writeable().
|
||||||
|
|
||||||
bool writeable( std::string probe_filename = tmp() ) const ;
|
bool writeable( std::string probe_filename = tmp() ) const ;
|
||||||
// Tries to create and then delete an empty test file
|
///< Tries to create and then delete an empty test file
|
||||||
// in the directory. Returns true on success.
|
///< in the directory. Returns true on success.
|
||||||
// Precondition: valid()
|
///< Precondition: valid()
|
||||||
|
|
||||||
Path path() const ;
|
Path path() const ;
|
||||||
// Returns the directory's path.
|
///< Returns the directory's path.
|
||||||
|
|
||||||
Directory( const Directory & other ) ;
|
Directory( const Directory & other ) ;
|
||||||
// Copy constructor.
|
///< Copy constructor.
|
||||||
|
|
||||||
Directory &operator=( const Directory & ) ;
|
Directory &operator=( const Directory & ) ;
|
||||||
// Assignment operator.
|
///< Assignment operator.
|
||||||
|
|
||||||
static Directory root() ;
|
static Directory root() ;
|
||||||
// Returns a root directory object. For DOSy file
|
///< Returns a root directory object. For DOSy file
|
||||||
// systems this will not contain a drive part.
|
///< systems this will not contain a drive part.
|
||||||
|
|
||||||
static std::string tmp() ;
|
static std::string tmp() ;
|
||||||
// A convenience function for constructing a
|
///< A convenience function for constructing a
|
||||||
// filename for writeable(). This is factored out
|
///< filename for writeable(). This is factored out
|
||||||
// so that client code can minimise the time spent
|
///< so that client code can minimise the time spent
|
||||||
// with a privileged effective userid.
|
///< with a privileged effective userid.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Path m_path ;
|
Path m_path ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
// Class: G::DirectoryIterator
|
/// \class G::DirectoryIterator
|
||||||
// Description: An iterator for Directory.
|
/// An iterator for Directory.
|
||||||
// The iteration model is
|
/// The iteration model is
|
||||||
|
/// \code
|
||||||
/// while(iter.more()) { (void)iter.filePath() ; }
|
/// while(iter.more()) { (void)iter.filePath() ; }
|
||||||
//
|
/// \endcode
|
||||||
|
///
|
||||||
class G::DirectoryIterator
|
class G::DirectoryIterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit DirectoryIterator( const Directory & dir , const std::string & wc = std::string() ) ;
|
explicit DirectoryIterator( const Directory & dir , const std::string & wc = std::string() ) ;
|
||||||
// Constructor taking a directory reference
|
///< Constructor taking a directory reference
|
||||||
// and an optional wildcard specification.
|
///< and an optional wildcard specification.
|
||||||
|
|
||||||
~DirectoryIterator() ;
|
~DirectoryIterator() ;
|
||||||
// Destructor.
|
///< Destructor.
|
||||||
|
|
||||||
bool error() const ;
|
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() ;
|
bool more() ;
|
||||||
// Returns true if more.
|
///< Returns true if more.
|
||||||
|
|
||||||
bool isDir() const ;
|
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 ;
|
std::string modificationTimeString() const ;
|
||||||
// Returns the last-modified time for the file in an undefined
|
///< Returns the last-modified time for the file in an undefined
|
||||||
// format -- used for comparison.
|
///< format -- used for comparison.
|
||||||
|
|
||||||
std::string sizeString() const ;
|
std::string sizeString() const ;
|
||||||
// Returns the file size as a decimal string. The value
|
///< Returns the file size as a decimal string. The value
|
||||||
// may be more than 32 bits. See also class G::Number.
|
///< may be more than 32 bits. See also class G::Number.
|
||||||
|
|
||||||
Path filePath() const ;
|
Path filePath() const ;
|
||||||
// Returns the path of the current item.
|
///< Returns the path of the current item.
|
||||||
|
|
||||||
Path fileName() const ;
|
Path fileName() const ;
|
||||||
// Returns the name of the current item.
|
///< Returns the name of the current item.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DirectoryIterator( const DirectoryIterator & ) ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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
|
/// \class G::DirectoryIteratorImp
|
||||||
// Description: A pimple-pattern implementation class for DirectoryIterator.
|
/// A pimple-pattern implementation class for DirectoryIterator.
|
||||||
//
|
///
|
||||||
class G::DirectoryIteratorImp
|
class G::DirectoryIteratorImp
|
||||||
{
|
{
|
||||||
private:
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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
|
/// \class G::DirectoryIteratorImp
|
||||||
// Description: A pimple-pattern implementation class for DirectoryIterator.
|
/// A pimple-pattern implementation class for DirectoryIterator.
|
||||||
//
|
///
|
||||||
class G::DirectoryIteratorImp
|
class G::DirectoryIteratorImp
|
||||||
{
|
{
|
||||||
private:
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// 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' )
|
if( more != NULL && *more != '\0' )
|
||||||
{
|
{
|
||||||
m_what += ": " ;
|
m_what += std::string(": ") ;
|
||||||
m_what += more ;
|
m_what += std::string(more) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void G::Exception::append( const std::string & more )
|
void G::Exception::append( const std::string & more )
|
||||||
{
|
{
|
||||||
m_what += ": " ;
|
m_what += std::string(": ") ;
|
||||||
m_what += more ;
|
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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -17,9 +17,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// ===
|
// ===
|
||||||
//
|
///
|
||||||
// gexception.h
|
/// \file gexception.h
|
||||||
//
|
///
|
||||||
|
|
||||||
#ifndef G_EXCEPTION_H
|
#ifndef G_EXCEPTION_H
|
||||||
#define G_EXCEPTION_H
|
#define G_EXCEPTION_H
|
||||||
@ -28,15 +28,16 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
/// \namespace G
|
||||||
namespace G
|
namespace G
|
||||||
{
|
{
|
||||||
class Exception ;
|
class Exception ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Class: G::Exception
|
/// \class G::Exception
|
||||||
// Description: A general-purpose exception class derived from std::exception
|
/// A general-purpose exception class derived from std::exception
|
||||||
// and containing a std::string.
|
/// and containing a std::string.
|
||||||
//
|
///
|
||||||
class G::Exception : public std::exception
|
class G::Exception : public std::exception
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
@ -44,45 +45,45 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Exception() ;
|
Exception() ;
|
||||||
// Default constructor.
|
///< Default constructor.
|
||||||
|
|
||||||
explicit Exception( const char * what ) ;
|
explicit Exception( const char * what ) ;
|
||||||
// Constructor.
|
///< Constructor.
|
||||||
|
|
||||||
explicit Exception( const std::string & what ) ;
|
explicit Exception( const std::string & what ) ;
|
||||||
// Constructor.
|
///< Constructor.
|
||||||
|
|
||||||
virtual ~Exception() throw() ;
|
virtual ~Exception() throw() ;
|
||||||
// Destructor.
|
///< Destructor.
|
||||||
|
|
||||||
virtual const char * what() const throw() ;
|
virtual const char * what() const throw() ;
|
||||||
// Override from std::exception.
|
///< Override from std::exception.
|
||||||
|
|
||||||
void prepend( const char * context ) ;
|
void prepend( const char * context ) ;
|
||||||
// Prepends context to the what string.
|
///< Prepends context to the what string.
|
||||||
// Inserts a separator as needed.
|
///< Inserts a separator as needed.
|
||||||
|
|
||||||
void append( const char * more ) ;
|
void append( const char * more ) ;
|
||||||
// Appends 'more' to the what string.
|
///< Appends 'more' to the what string.
|
||||||
// Inserts a separator as needed.
|
///< Inserts a separator as needed.
|
||||||
|
|
||||||
void append( const std::string & more ) ;
|
void append( const std::string & more ) ;
|
||||||
// Appends 'more' to the what string.
|
///< Appends 'more' to the what string.
|
||||||
// Inserts a separator as needed.
|
///< Inserts a separator as needed.
|
||||||
|
|
||||||
void append( std::ostream & s ) ;
|
void append( std::ostream & s ) ;
|
||||||
// Appends the contents of the given std::ostringstream
|
///< Appends the contents of the given std::ostringstream
|
||||||
// (sic) to the what string. Does nothing if the
|
///< (sic) to the what string. Does nothing if the
|
||||||
// dynamic type of 's' is not a std::ostringstream.
|
///< dynamic type of 's' is not a std::ostringstream.
|
||||||
// Inserts a separator as needed.
|
///< Inserts a separator as needed.
|
||||||
//
|
///<
|
||||||
// This method allows a derived-class exception
|
///< This method allows a derived-class exception
|
||||||
// to be constructed and thrown on one line using
|
///< to be constructed and thrown on one line using
|
||||||
// iostream formatting.
|
///< iostream formatting.
|
||||||
// Eg. throw Error( std::ostringstream() << a << b ) ;
|
///< 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
|
#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
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
@ -64,3 +64,4 @@ G::Strings G::Executable::args() const
|
|||||||
return m_args ;
|
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