Thursday 2010-09-23

Mucked around with debian and sendmail today (don't ask), for some reason apt didn't install the sasl2 modules when it installed sasl2. In this instance sendmail depends on sasl and those modules however the standard build system for sendmail doesn't check this stuff.

m4 certainly supports basic error and sanity checking, so to avoid building sendmail configs that don't have the relevant files (and sendmail may or may not tell you depending on which loglevel it runs at), these following macros are mighty helpful.

define(`fatal_error', `
errprint(__line__`: fatal error: $* 
')
m4exit(`1')
')
define(`file_check', `
syscmd(`ls  $1 >/dev/null ')
ifelse(sysval, `0', `', `fatal_error(`file not found "$1" for $2')' )
')

file_check(confCW_FILE, `confCW_FILE')

Which will cause your make to fail with a usable error when you don't have that file.

Which I submitted as debian bug 597807. Odds on it being included? ;)