NOTES: For solaris and irix compilation, i removed BSD and LINUX from the module list. I did not feel it worthwhile to get those modules to compile on these platforms, since the required devices are not accessible in the same manner. im_unix does now compile on these platforms, but should be useless, as they use streams devices, not unix domain sockets. So don't try using the UNIX module unless you remember the major and minor numbers of /dev/log. If you need the BSD or LINUX modules, add them; if you don't need the UNIX module, remove it. GNU make should be used. The make which comes with solaris will try making the programs before the objects. Solaris requires libdl, libnsl, libresolv, and libsocket. To link with these, use the argument 'LIBS="-ldl -lnsl -lresolv -lsocket"' on the make command line (i.e. gmake LIBS="-ldl -lnsl -lresolv -lsocket"). Solaris sh and GNU test don't seem to work together. Using bash on solaris with GNU test yields no problem, and using solaris sh with solaris test also yields no problem. Using solaris sh with GNU test gives the message "test: argument expected" for something like: if test -e "bleh"; then echo hi; fi ... however, using test -f works fine. I have changed any instances of -e which are to check a regular file to -f. CHANGES: * aclocal.m4: removed quotes for calling MSYSLOG_GREP (quotes there result in double-quotes being used in configure) * aclocal.m4: changed 'test -e' to 'test -f' for all instances (all instances were meant to check for a regular file) * for all modules which listed "../modules.h" before "../syslogd.h" for inclusion, moved "../syslogd.h" include before "../modules.h" include. modules.h uses MAXHOSTNAMELEN, which is defined by netdb.h, which is included by syslogd.h. * added UT_NAMESIZE define in syslogd.h if it's not already defined * syslogd.c: changed wording 'Using _PATH_CONSOLE as "/dev/console"' to 'Using "/dev/console" for _PATH_CONSOLE' (was confusing) * ttymsg.c: use "/dev/" for _PATH_DEV if _PATH_DEV is not defined * conditionally (if solaris or irix) added typedefs for u_int32_t and u_int64_t to conditional.h and included ../conditional.h from peo/md5.h and peo/sha1.h * modules/om_peo.c: don't include err.h for irix or solaris * peo/peochk.c: don't include err.h for irix or solaris * added definition of __P to conditional.h if it isn't already defined * changed syslogd.c to only include sys/sysctl.h if we aren't using solaris * syslogd.c: changed sys_errlist[errno] to strerror(errno) to make more portable * conditional.h: added SYSLOG_NAMES section for solaris, with added LOG_MAKEPRI, LOG_PRI, and LOG_FAC definitions * syslogd.c: added conditional.h to includes (just after system-wide syslogd.h) * syslogd.c: commented out the current inclusion of limits.h, and added the inclusion of limits.h unconditionally * syslogd.c: if NAME_MAX is not defined, define it as MAXNAMLEN. If MAXNAMLEN isn't defined either, use 255. A better solution would be to use the POSIX-compliant pathconf() function (long pathconf("/path" _PC_NAME_MAX)). * conditional.h: added define of _PATH_UTMP if it isn't already defined * peo/rmd160.h: added include for ../conditional.h * peo/peochk.c: changed all instances of err() calls to perror()+exit() calls, and all instances of errx() calls to fprintf()+exit() calls. the err() family (from err.h) is very unportable. * added -Wall to CFLAGS in Makefile.in * syslogd.c: added and to includes (for recvfrom) * ttymsg.c: added to includes (for bcopy and bzero) * man/GNUmakefile.in: altered to not remove makefiles on a simple make clean * conditional.h: added typedef for socklen_t for irix * syslogd.c: replaced (void)daemon(0, 0) with a portable method, which should mimic its behavior verbatim. * syslogd.c: replaced sigsetmask with the more portable sigprocmask * added executable bit to install-sh * static_modules.c: properly spaced lines in function module_load (why was it like that?) * syslogd.c: added new alarm catcher in domark() -- after a signal is caught, it's not handled anymore on SYSV machines... and it won't hurt to do this on BSD-style systems as well. If the signal is no longer handled, the next alarm() will kill the process. Note that a better (and portable) solution here would be to use sigaction(). * syslogd.h: added sys/param.h include * added ../conditional.h include to all modules that use socklen_t COMMENTS/GRIPES: * --with-msyslog-lib-dir should default to ${prefix}/lib/alat, not /usr/local/lib/alat * most preprocessor checks should be done with configure instead, aside from the preprocessor checks used to check defines in config.h. During compile, one should not need to see #warning messages. * proper libraries for linking should be decided in configure. * syslogd.c: systems with getutent() and related functions should use them instead of reading utmp directly. This includes linux, solaris, and irix, at least. * the CFLAGS environment variable should have its proper effect during configure. at the moment, it is ignored. If other related environment variables are also ignored, configure should be modified for them as well, so they may have their designated effects.