summaryrefslogtreecommitdiff
path: root/devtools/M4/UNIX
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/M4/UNIX')
-rw-r--r--devtools/M4/UNIX/all.m4121
-rw-r--r--devtools/M4/UNIX/check.m428
-rw-r--r--devtools/M4/UNIX/defines.m4169
-rw-r--r--devtools/M4/UNIX/executable.m442
-rw-r--r--devtools/M4/UNIX/footer.m419
-rw-r--r--devtools/M4/UNIX/library.m436
-rw-r--r--devtools/M4/UNIX/links.m429
-rw-r--r--devtools/M4/UNIX/manpage.m479
-rw-r--r--devtools/M4/UNIX/sm-test.m428
-rw-r--r--devtools/M4/UNIX/smlib.m427
10 files changed, 578 insertions, 0 deletions
diff --git a/devtools/M4/UNIX/all.m4 b/devtools/M4/UNIX/all.m4
new file mode 100644
index 0000000000000..327c2bd0618f0
--- /dev/null
+++ b/devtools/M4/UNIX/all.m4
@@ -0,0 +1,121 @@
+divert(-1)
+#
+# Copyright (c) 1999-2000, 2006 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: all.m4,v 8.21 2006/06/14 20:18:27 ca Exp $
+#
+divert(0)dnl
+ALL=${BEFORE} ${LINKS} bldTARGETS
+
+all: ${ALL}
+
+clean: bldCLEAN_TARGETS
+
+define(`bldADD_SRC', ${$1SRCS} )dnl
+SRCS=bldFOREACH(`bldADD_SRC(', bldC_PRODUCTS)
+define(`bldADD_OBJS', ${$1OBJS} )dnl
+OBJS=bldFOREACH(`bldADD_OBJS(', bldC_PRODUCTS)
+
+ifdef(`bldCHECK_PROGRAMS',`dnl
+check_PROGRAMS=bldCHECK_PROGRAMS')
+
+ifdef(`bldCHECK_TARGETS',`dnl
+TESTS=bldCHECK_TARGETS')
+
+VPATH=${srcdir}
+changequote([[, ]])
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; \
+ list='$(TESTS)'; \
+ srcdir=$(srcdir); export srcdir; \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *" $$tst "*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ echo "XPASS: $$tst"; \
+ ;; \
+ *) \
+ echo "PASS: $$tst"; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *" $$tst "*) \
+ xfail=`expr $$xfail + 1`; \
+ echo "XFAIL: $$tst"; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ echo "FAIL: $$tst"; \
+ ;; \
+ esac; \
+ fi; \
+ done; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="All $$all tests passed"; \
+ else \
+ banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all tests failed"; \
+ else \
+ banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+ fi; \
+ fi; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"; \
+ test "$$failed" -eq 0; \
+ fi
+changequote(`, ')
+
+check-am: all
+ $(MAKE) $(check_PROGRAMS)
+ $(MAKE) check-TESTS
+check: check-am
+
+
+define(`bldADD_SRC_CHK', ${$1SRCS_CHK} )dnl
+SRCS_CHK=bldFOREACH(`bldADD_SRC_CHK(', bldC_CHECKS)
+define(`bldADD_OBJS_CHK', ${$1OBJS_CHK} )dnl
+OBJS_CHK=bldFOREACH(`bldADD_OBJS(', bldC_CHECKS)
+
+ifdef(`bldNO_INSTALL', `divert(-1)')
+install: bldINSTALL_TARGETS
+
+install-strip: bldINSTALL_TARGETS ifdef(`bldSTRIP_TARGETS', `bldSTRIP_TARGETS')
+ifdef(`bldNO_INSTALL', `divert(0)')
+
+ifdef(`confREQUIRE_SM_OS_H',`
+ifdef(`confSM_OS_HEADER',
+`sm_os.h: ${SRCDIR}/inc`'lude/sm/os/confSM_OS_HEADER.h
+ ${RM} ${RMOPTS} sm_os.h
+ ${LN} ${LNOPTS} ${SRCDIR}/inc`'lude/sm/os/confSM_OS_HEADER.h sm_os.h',
+`sm_os.h:
+ ${CP} /dev/null sm_os.h')')
+
+divert(bldDEPENDENCY_SECTION)
+################ Dependency scripts
+include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE',
+`generic').m4)dnl
+################ End of dependency scripts
+divert(0)
diff --git a/devtools/M4/UNIX/check.m4 b/devtools/M4/UNIX/check.m4
new file mode 100644
index 0000000000000..581a5aa889c7f
--- /dev/null
+++ b/devtools/M4/UNIX/check.m4
@@ -0,0 +1,28 @@
+divert(-1)
+#
+# Copyright (c) 2006 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+# Compile/run a test program.
+#
+# $Id: check.m4,v 8.5 2006/08/28 23:48:54 ca Exp $
+#
+define(`smcheck', `dnl
+ifelse(X`'$2, `X', `', `ifelse(index($2, `run'), `-1', `', `dnl
+bldLIST_PUSH_ITEM(`bldCHECK_TARGETS', $1)dnl
+')')
+ifelse(X`'$2, `X', `', `ifelse(index($2, `compile'), `-1', `', `dnl
+bldLIST_PUSH_ITEM(`bldC_CHECKS', $1)dnl
+bldLIST_PUSH_ITEM(`bldCHECK_PROGRAMS', $1)dnl
+bldPUSH_CLEAN_TARGET($1`-clean')dnl
+divert(bldTARGETS_SECTION)
+$1`'SRCS=$1.c
+$1: ${BEFORE} $1.o ifdef(`confCHECK_LIBS', `confCHECK_LIBS')
+ ${CC} -o $1 ${LDOPTS} ${LIBDIRS} $1.o ifdef(`confCHECK_LIBS', `confCHECK_LIBS') ${LIBS}
+$1-clean:
+ rm -f $1 $1.o')')
+divert(0)')
diff --git a/devtools/M4/UNIX/defines.m4 b/devtools/M4/UNIX/defines.m4
new file mode 100644
index 0000000000000..a4a04c6cc35b9
--- /dev/null
+++ b/devtools/M4/UNIX/defines.m4
@@ -0,0 +1,169 @@
+divert(-1)
+#
+# Copyright (c) 1999-2001, 2006 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: defines.m4,v 8.47 2006/10/06 05:44:44 ca Exp $
+#
+# temporary hack: if confREQUIRE_LIBSM is set then also set confREQUIRE_SM_OS_H
+ifdef(`confREQUIRE_LIBSM',`
+ifdef(`confREQUIRE_SM_OS_H',`', `define(`confREQUIRE_SM_OS_H', `1')')')
+#
+divert(0)dnl
+
+# C compiler
+CC= confCC
+CCOPTS= ifdef(`confCCOPTS', `confCCOPTS', ` ') ifdef(`confMT', ifdef(`confMTCCOPTS', `confMTCCOPTS', `'), `')
+
+# Linker for executables
+CCLINK = ifdef(`confCCLINK', `confCCLINK', `confCC')
+# Linker for libraries
+LD= ifdef(`confLD', `confLD', `confCC')
+LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') ifdef(`confMT', ifdef(`confMTLDOPTS', `confMTLDOPTS', `'), `')
+LDOPTS_SO= ${LDOPTS} ifdef(`confLDOPTS_SO', `confLDOPTS_SO', `-shared')
+
+# Shell
+SHELL= confSHELL
+
+# use O=-O (usual) or O=-g (debugging)
+O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O')
+
+# Object archiver
+AR= ifdef(`confAR', `confAR', `ar')
+AROPTS= ifdef(`confAROPTS', `confAROPTS', `crv')
+
+# Remove command
+RM= ifdef(`confRM', `confRM', `rm')
+RMOPTS= ifdef(`confRMOPTS', `confRMOPTS', `-f')
+
+# Link command
+LN= ifdef(`confLN', `confLN', `ln')
+LNOPTS= ifdef(`confLNOPTS', `confLNOPTS', `-f -s')
+
+# Ranlib (or echo)
+RANLIB= ifdef(`confRANLIB', `confRANLIB', `ranlib')
+RANLIBOPTS= ifdef(`confRANLIBOPTS', `confRANLIBOPTS', `')
+
+# Object stripper
+STRIP= ifdef(`confSTRIP', `confSTRIP', `strip')
+STRIPOPTS= ifdef(`confSTRIPOPTS', `confSTRIPOPTS', `')
+
+# environment definitions (e.g., -D_AIX3)
+ENVDEF= ifdef(`confENVDEF', `confENVDEF') ifdef(`conf_'bldCURRENT_PRD`_ENVDEF', `conf_'bldCURRENT_PRD`_ENVDEF')
+
+# location of the source directory
+SRCDIR= ifdef(`confSRCDIR', `confSRCDIR', `_SRC_PATH_')
+
+# inc`'lude directories
+INCDIRS= confINCDIRS
+
+# library directories
+LIBDIRS=confLIBDIRS
+
+# Additional libs needed
+LIBADD= ifdef(`conf_'bldCURRENT_PRD`_LIBS', `conf_'bldCURRENT_PRD`_LIBS')
+
+# libraries required on your system
+LIBS= ${LIBADD} ifdef(`confLIBS', `confLIBS') ifdef(`conf_'bldCURRENT_PRD`_LIB_POST', `conf_'bldCURRENT_PRD`_LIB_POST')
+
+# location of sendmail binary (usually /usr/sbin or /usr/lib)
+BINDIR= ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin')
+
+# location of "user" binaries (usually /usr/bin or /usr/ucb)
+UBINDIR=ifdef(`confUBINDIR', `confUBINDIR', `/usr/bin')
+
+# location of "root" binaries (usually /usr/sbin or /usr/etc)
+SBINDIR=ifdef(`confSBINDIR', `confSBINDIR', `/usr/sbin')
+
+# location of "root" binaries (usually /usr/sbin or /usr/etc)
+MBINDIR=ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin')
+
+# location of "libexec" binaries (usually /usr/libexec or /usr/etc)
+EBINDIR=ifdef(`confEBINDIR', `confEBINDIR', `/usr/libexec')
+
+# where to install inc`'lude files (usually /usr/inc`'lude)
+INCLUDEDIR=ifdef(`confINCLUDEDIR', `confINCLUDEDIR', `/usr/inc`'lude')
+
+# where to install library files (usually /usr/lib)
+LIBDIR=ifdef(`confLIBDIR', `confLIBDIR', `/usr/lib')
+
+# additional .c files needed
+SRCADD= ifdef(`confSRCADD', `confSRCADD')
+
+ifdef(`conf_'bldCURRENT_PRD`_SRCADD', `bldLIST_PUSH_ITEM(`bldSOURCES', `conf_'bldCURRENT_PRD`_SRCADD')')
+
+# additional .o files needed
+OBJADD= ifdef(`confOBJADD', `confOBJADD')
+bldCURRENT_PRODUCT`OBJADD'= ifdef(`conf_'bldCURRENT_PRD`_OBJADD', `conf_'bldCURRENT_PRD`_OBJADD') ifdef(`confLIBADD', `bldADD_EXTENSIONS(`a', confLIBADD)', `')
+
+# copy files
+CP= ifdef(`confCOPY', `confCOPY', `cp')
+
+# In some places windows wants nmake where unix would just want make
+NMAKE=ifdef(`confNMAKE', `confNMAKE', `${MAKE}')
+
+################### end of user configuration flags ######################
+
+BUILDBIN=confBUILDBIN
+COPTS= -I. ${INCDIRS} ${ENVDEF} ${CCOPTS}
+CFLAGS= $O ${COPTS} ifdef(`confMT', ifdef(`confMTCFLAGS', `confMTCFLAGS -DXP_MT', `-DXP_MT'), `')
+
+
+BEFORE= confBEFORE ifdef(`confREQUIRE_SM_OS_H',`sm_os.h')
+
+LINKS=ifdef(`bldLINK_SOURCES', `bldLINK_SOURCES', `')
+
+bldCURRENT_PRODUCT`SRCS'= bldSOURCES ${SRCADD}
+bldCURRENT_PRODUCT`OBJS'= bldSUBST_EXTENSIONS(`o', bldSOURCES) ifdef(`bldLINK_SOURCES', `bldSUBST_EXTENSIONS(`o', bldLINK_SOURCES)') ${OBJADD} ${bldCURRENT_PRODUCT`OBJADD'}
+bldCURRENT_PRODUCT`SMDEPLIBS'= ifdef(`bldSMDEPLIBS', `bldSMDEPLIBS', `')
+bldCURRENT_PRODUCT`TARGET_LINKS'= ifdef(`bldTARGET_LINKS', `bldTARGET_LINKS', `')
+
+bldPUSH_ALL_SRCS(bldCURRENT_PRODUCT`SRCS')dnl
+
+ifdef(`bldBIN_TYPE', , `define(`bldBIN_TYPE', `U')')dnl
+ifdef(`bldINSTALL_DIR', , `define(`bldINSTALL_DIR', `U')')dnl
+
+NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii')
+MANDOC= ifdef(`confMANDOC', `confMANDOC', `-man')
+
+INSTALL=ifdef(`confINSTALL', `confINSTALL', `install')
+
+# User binary ownership/permissions
+UBINOWN=ifdef(`confUBINOWN', `confUBINOWN', `bin')
+UBINGRP=ifdef(`confUBINGRP', `confUBINGRP', `bin')
+UBINMODE=ifdef(`confUBINMODE', `confUBINMODE', `555')
+
+# Setuid binary ownership/permissions
+SBINOWN=ifdef(`confSBINOWN', `confSBINOWN', `root')
+SBINGRP=ifdef(`confSBINGRP', `confSBINGRP', `bin')
+SBINMODE=ifdef(`confSBINMODE', `confSBINMODE', `4555')
+
+# Setgid binary ownership/permissions
+GBINOWN=ifdef(`confGBINOWN', `confGBINOWN', `root')
+GBINGRP=ifdef(`confGBINGRP', `confGBINGRP', `smmsp')
+GBINMODE=ifdef(`confGBINMODE', `confGBINMODE', `2555')
+
+# owner of MSP queue
+MSPQOWN=ifdef(`confMSPQOWN', `confMSPQOWN', `smmsp')
+
+# MTA binary ownership/permissions
+MBINOWN=ifdef(`confMBINOWN', `confMBINOWN', `root')
+MBINGRP=ifdef(`confMBINGRP', `confMBINGRP', `bin')
+MBINMODE=ifdef(`confMBINMODE', `confMBINMODE', `550')
+
+# Library ownership/permissions
+LIBOWN=ifdef(`confLIBOWN', `confLIBOWN', `root')
+LIBGRP=ifdef(`confLIBGRP', `confLIBGRP', `bin')
+LIBMODE=ifdef(`confLIBMODE', `confLIBMODE', `0444')
+
+# Include file ownership/permissions
+INCOWN=ifdef(`confINCOWN', `confINCOWN', `root')
+INCGRP=ifdef(`confINCGRP', `confINCGRP', `bin')
+INCMODE=ifdef(`confINCMODE', `confINCMODE', `0444')
diff --git a/devtools/M4/UNIX/executable.m4 b/devtools/M4/UNIX/executable.m4
new file mode 100644
index 0000000000000..44d255890c38b
--- /dev/null
+++ b/devtools/M4/UNIX/executable.m4
@@ -0,0 +1,42 @@
+divert(-1)
+#
+# Copyright (c) 1999, 2001, 2006 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: executable.m4,v 8.24 2006/10/06 05:44:44 ca Exp $
+#
+divert(0)dnl
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
+bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
+bldPUSH_TARGET(bldCURRENT_PRODUCT)dnl
+bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
+bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
+bldPUSH_ALL_SRCS(bldCURRENT_PRODUCT`SRCS')dnl
+bldPUSH_STRIP_TARGET(`strip-'bldCURRENT_PRODUCT)dnl
+
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
+divert(bldTARGETS_SECTION)
+bldCURRENT_PRODUCT: ${bldCURRENT_PRODUCT`OBJS'} ${bldCURRENT_PRODUCT`SMDEPLIBS'}
+ ${CCLINK} -o bldCURRENT_PRODUCT ${LDOPTS} ${LIBDIRS} ${bldCURRENT_PRODUCT`OBJS'} ${LIBS}
+
+ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
+
+ifdef(`bldNO_INSTALL', ,
+`install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT ifdef(`bldTARGET_INST_DEP', `bldTARGET_INST_DEP')
+ ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${bldINSTALL_DIR`'BINDIR} ]; then confMKDIR -p ${DESTDIR}${bldINSTALL_DIR`'BINDIR}; else :; fi ')
+ ${INSTALL} -c -o ${bldBIN_TYPE`'BINOWN} -g ${bldBIN_TYPE`'BINGRP} -m ${bldBIN_TYPE`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${bldINSTALL_DIR`'BINDIR}
+ifdef(`bldTARGET_LINKS', `bldMAKE_TARGET_LINKS(${bldINSTALL_DIR`'BINDIR}/bldCURRENT_PRODUCT, ${bldCURRENT_PRODUCT`'TARGET_LINKS})')')
+
+strip-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT
+ ${STRIP} ${STRIPOPTS} ${DESTDIR}${bldINSTALL_DIR`'BINDIR}`'/bldCURRENT_PRODUCT
+
+bldCURRENT_PRODUCT-clean:
+ rm -f ${OBJS} bldCURRENT_PRODUCT ${MANPAGES}
+divert(0)
diff --git a/devtools/M4/UNIX/footer.m4 b/devtools/M4/UNIX/footer.m4
new file mode 100644
index 0000000000000..18b386eb34a49
--- /dev/null
+++ b/devtools/M4/UNIX/footer.m4
@@ -0,0 +1,19 @@
+divert(-1)
+#
+# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: footer.m4,v 8.2 1999/05/13 16:16:35 gshapiro Exp $
+#
+divert(0)dnl
+################ Dependency scripts
+include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE',
+`generic').m4)dnl
+################ End of dependency scripts
diff --git a/devtools/M4/UNIX/library.m4 b/devtools/M4/UNIX/library.m4
new file mode 100644
index 0000000000000..77ed2104e9052
--- /dev/null
+++ b/devtools/M4/UNIX/library.m4
@@ -0,0 +1,36 @@
+divert(-1)
+#
+# Copyright (c) 1999-2001, 2006 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: library.m4,v 8.11 2006/09/05 22:56:53 ca Exp $
+#
+divert(0)dnl
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
+bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
+bldPUSH_TARGET(bldCURRENT_PRODUCT`.a')dnl
+bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
+bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
+
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
+divert(bldTARGETS_SECTION)
+bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
+ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
+ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
+
+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.a
+ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${bldINSTALL_DIR`'LIBDIR} ]; then confMKDIR -p ${DESTDIR}${bldINSTALL_DIR`'LIBDIR}; else :; fi ')
+ ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bldCURRENT_PRODUCT.a ${DESTDIR}${LIBDIR}')
+
+bldCURRENT_PRODUCT-clean:
+ rm -f ${OBJS} bldCURRENT_PRODUCT.a ${MANPAGES}
+
+divert(0)
diff --git a/devtools/M4/UNIX/links.m4 b/devtools/M4/UNIX/links.m4
new file mode 100644
index 0000000000000..d47eb5b2dc3b3
--- /dev/null
+++ b/devtools/M4/UNIX/links.m4
@@ -0,0 +1,29 @@
+divert(-1)
+#
+# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: links.m4,v 8.5 1999/07/25 03:53:08 gshapiro Exp $
+#
+divert(0)dnl
+define(`bldMAKE_SOURCE_LINK',
+`$1: ${SRCDIR}/$1
+ -ln -s ${SRCDIR}/$1 $1'
+)dnl
+define(`bldMAKE_SOURCE_LINKS',
+`bldFOREACH(`bldMAKE_SOURCE_LINK(', $1)'dnl
+)dnl
+define(`bldMAKE_TARGET_LINKS',
+` for i in $2; do \
+ rm -f $$i; \
+ ln -s $1 $$i; \
+ done'
+)dnl
+
diff --git a/devtools/M4/UNIX/manpage.m4 b/devtools/M4/UNIX/manpage.m4
new file mode 100644
index 0000000000000..c46cf6fb49bbe
--- /dev/null
+++ b/devtools/M4/UNIX/manpage.m4
@@ -0,0 +1,79 @@
+divert(-1)
+#
+# Copyright (c) 1999-2001 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: manpage.m4,v 8.15 2006/09/07 22:13:07 ca Exp $
+#
+divert(0)dnl
+
+define(`bldGET_MAN_SOURCE_NUM',
+`substr($1, eval(len($1) - 1))'dnl
+)dnl
+define(`bldGET_MAN_BASE_NAME',
+`substr($1, 0, eval(len($1) - 2))'dnl
+)dnl
+ifdef(`confNO_MAN_BUILD',, `
+bldPUSH_TARGET(`${MANPAGES}')
+bldPUSH_INSTALL_TARGET(`install-docs')')
+bldLIST_PUSH_ITEM(`bldMAN_PAGES', `bldSOURCES')dnl
+
+MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin')
+MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin')
+MANMODE=ifdef(`confMANMODE', `confMANMODE', `444')
+MANROOT=ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat')
+MANROOTMAN=ifdef(`confMANROOTMAN', `confMANROOTMAN', `/usr/share/man/man')
+MAN1= ${MANROOT}ifdef(`confMAN1', `confMAN1', `1')
+MAN1MAN=${MANROOTMAN}ifdef(`confMAN1', `confMAN1', `1')
+MAN1EXT=ifdef(`confMAN1EXT', `confMAN1EXT', `1')
+MAN1SRC=ifdef(`confMAN1SRC', `confMAN1SRC', `0')
+MAN3= ${MANROOT}ifdef(`confMAN3', `confMAN3', `3')
+MAN3MAN=${MANROOTMAN}ifdef(`confMAN3', `confMAN3', `3')
+MAN3EXT=ifdef(`confMAN3EXT', `confMAN3EXT', `3')
+MAN3SRC=ifdef(`confMAN3SRC', `confMAN3SRC', `0')
+MAN4= ${MANROOT}ifdef(`confMAN4', `confMAN4', `4')
+MAN4MAN=${MANROOTMAN}ifdef(`confMAN4', `confMAN4', `4')
+MAN4EXT=ifdef(`confMAN4EXT', `confMAN4EXT', `4')
+MAN4SRC=ifdef(`confMAN4SRC', `confMAN4SRC', `0')
+MAN5= ${MANROOT}ifdef(`confMAN5', `confMAN5', `5')
+MAN5MAN=${MANROOTMAN}ifdef(`confMAN5', `confMAN5', `5')
+MAN5EXT=ifdef(`confMAN5EXT', `confMAN5EXT', `5')
+MAN5SRC=ifdef(`confMAN5SRC', `confMAN5SRC', `0')
+MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8')
+MAN8MAN=${MANROOTMAN}ifdef(`confMAN8', `confMAN8', `8')
+MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8')
+MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0')
+
+define(`bldMAN_TARGET_NAME',
+`bldGET_MAN_BASE_NAME($1).${MAN`'bldGET_MAN_SOURCE_NUM($1)`SRC}' 'dnl
+)dnl
+MANPAGES= bldFOREACH(`bldMAN_TARGET_NAME(', `bldMAN_PAGES')
+
+divert(bldTARGETS_SECTION)
+define(`bldMAN_BUILD_CMD',
+`bldGET_MAN_BASE_NAME($1).${MAN`'bldGET_MAN_SOURCE_NUM($1)`SRC}': bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1)
+ ${NROFF} ${MANDOC} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) > bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' || ${CP} bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}'.dist bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}''
+
+)dnl
+bldFOREACH(`bldMAN_BUILD_CMD(', `bldMAN_PAGES')
+
+install-docs: ${MANPAGES}
+ifdef(`confNO_MAN_INSTALL', `divert(-1)', `dnl')
+define(`bldMAN_INSTALL_CMD',
+`ifdef(`confDONT_INSTALL_CATMAN', `dnl',
+` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}; else :; fi ')
+ ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'')
+ifdef(`confINSTALL_RAWMAN',
+` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}; else :; fi ')
+ ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'', `dnl')'
+)dnl
+bldFOREACH(`bldMAN_INSTALL_CMD(', `bldMAN_PAGES')
+ifdef(`confNO_MAN_INSTALL', `divert(0)', `dnl')
+divert(0)
diff --git a/devtools/M4/UNIX/sm-test.m4 b/devtools/M4/UNIX/sm-test.m4
new file mode 100644
index 0000000000000..71ce3c6e3f3fc
--- /dev/null
+++ b/devtools/M4/UNIX/sm-test.m4
@@ -0,0 +1,28 @@
+divert(-1)
+#
+# Copyright (c) 2001-2002 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+# Compile/run a test program for libsm.
+#
+# $Id: sm-test.m4,v 1.7 2002/02/01 17:38:07 ca Exp $
+#
+define(`smtest',
+`bldPUSH_TARGET($1)dnl
+bldLIST_PUSH_ITEM(`bldC_PRODUCTS', $1)dnl
+bldPUSH_CLEAN_TARGET($1`-clean')dnl
+divert(bldTARGETS_SECTION)
+$1`'SRCS=$1.c
+$1: ${BEFORE} $1.o ifdef(`confREQUIRE_LIBSM', `libsm.a')
+ ${CC} -o $1 ${LDOPTS} ${LIBDIRS} $1.o ifdef(`confREQUIRE_LIBSM', `libsm.a') ${LIBS}
+ifelse(len(X`'$2), `1', `', `
+ @echo ============================================================
+ ./$1
+ @echo ============================================================')
+$1-clean:
+ rm -f $1 $1.o
+divert(0)')
diff --git a/devtools/M4/UNIX/smlib.m4 b/devtools/M4/UNIX/smlib.m4
new file mode 100644
index 0000000000000..9720d7d7427c2
--- /dev/null
+++ b/devtools/M4/UNIX/smlib.m4
@@ -0,0 +1,27 @@
+divert(-1)
+#
+# Copyright (c) 1999-2000 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+# $Id: smlib.m4,v 8.3 2000/07/07 18:52:23 dmoen Exp $
+#
+divert(0)dnl
+
+define(`confLIBEXT', `a')dnl
+
+define(`bldPUSH_SMLIB',
+ `bldPUSH_TARGET(bldABS_OBJ_DIR`/lib$1/lib$1.a')
+bldPUSH_SMDEPLIB(bldABS_OBJ_DIR`/lib$1/lib$1.a')
+PREPENDDEF(`confLIBS', bldABS_OBJ_DIR`/lib$1/lib$1.a')
+divert(bldTARGETS_SECTION)
+bldABS_OBJ_DIR/lib$1/lib$1.a:
+ (cd ${SRCDIR}/lib$1; sh Build ${SENDMAIL_BUILD_FLAGS})
+divert
+')dnl