# # use gmake instead BSD make # CONFIGURE_DIR=.. ACCESS_DIR=.. DNSBLLIST_DIR=.. ACLS_DIR=../acls FEATURES_DIR=../features SITE_DIR=../site SYSTEMFILTERS_DIR=../system_filters DELIVERIES_DIR=../deliveries VIRT_DOMAINS_DIR=../virt_domains all : configure system_filter all_aliases all_virtusertables mailertable.db ##### configure ##### configure : ${CONFIGURE_DIR}/configure ${CONFIGURE_DIR}/configure : configure.mc conf conf.default ${ACLS_DIR}/* ${FEATURES_DIR}/* ${SITE_DIR}/* ${DELIVERIES_DIR}/* dnsbls.lists m4 -DconfACLS_DIR="${ACLS_DIR}" -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfDELIVERIES_DIR="${DELIVERIES_DIR}" \ configure.mc > ${CONFIGURE_DIR}/configure chown mailnull ${CONFIGURE_DIR}/configure chgrp mail ${CONFIGURE_DIR}/configure chmod 640 ${CONFIGURE_DIR}/configure ##### DNSBL list ##### #dnsbls.lists : ${ACLS_DIR}/dnsbls.* dnsbls.lists : ${ACLS_DIR}/dnsbls.defer.dialup ${ACLS_DIR}/dnsbls.pass.dialup ${ACLS_DIR}/dnsbls.defer ${ACLS_DIR}/dnsbls.pass ${ACLS_DIR}/dnsbls.warn ${ACLS_DIR}/dnsbls.defer.dialup : ${DNSBLLIST_DIR}/dnsbls.list cat ../dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*defer\s*:\s*dialup/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.pass.dialup : ${DNSBLLIST_DIR}/dnsbls.list cat ../dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*pass\s*:\s*dialup/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.defer : ${DNSBLLIST_DIR}/dnsbls.list cat ../dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*defer\s*$$/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.pass : ${DNSBLLIST_DIR}/dnsbls.list cat ../dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*pass\s*$$/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.warn : ${DNSBLLIST_DIR}/dnsbls.list cat ../dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*warn/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ##### system filters ##### system_filter : ${CONFIGURE_DIR}/system_filter ${CONFIGURE_DIR}/system_filter : system_filter.mc ${SYSTEMFILTERS_DIR}/warnings ${SYSTEMFILTERS_DIR}/drweb-quarantine ${SYSTEMFILTERS_DIR}/site m4 -DconfACLS_DIR="${ACLS_DIR}" -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ system_filter.mc > ${CONFIGURE_DIR}/system_filter ${SYSTEMFILTERS_DIR}/warnings : ${SYSTEMFILTERS_DIR}/warnings.list perl -ni -e 'print if (/^\s*#/)' ${SYSTEMFILTERS_DIR}/warnings perl -ne 'chomp; s/\|/###/g; @f=split(/\s*###\s*/); \ print("if \$$h_$$f[$$[]: is not \"\" then\n\tlogwrite \"\$$tod_log \$$message_id saved because of ".\ $$f[$$[+2]."\"\n\tunseen save /usr/local/mail/".\ $$f[$$[+1]."/\$$tod_zulu-\$$\{message_id\} 640\nendif\n")' \ ${SYSTEMFILTERS_DIR}/warnings.list >> ${SYSTEMFILTERS_DIR}/warnings ##### STARTTLS key/certificate ##### exim.pem : ../exim.pem ../exim.pem : /usr/local/bin/openssl req -newkey rsa:1024 -x509 -nodes -days 365 -out $@ -keyout $@ chown mailnull $@ ; \ chmod 600 $@ ##### DBM files ##### %.db : % exim_dbmbuild $< $@ ../%.db : ../% exim_dbmbuild $< $@ ##### aliases ##### all_aliases : aliases.db virt_aliases.db virt_domains_aliases aliases.db : ../aliases.db virt_aliases.db : ../virt_aliases.db virt_domains_aliases : ls ${VIRT_DOMAINS_DIR}/*.aliases | \ xargs -L 1 -I aliases_file exim_dbmbuild aliases_file aliases_file.db ##### virtusertables ##### all_virtusertables : virtusertable.db virt_domains_virtusertables virtusertable.db : ../virtusertable.db virt_domains_virtusertables : ls ${VIRT_DOMAINS_DIR}/*.virtusertable | \ xargs -L 1 -I virtuser_file exim_dbmbuild virtuser_file virtuser_file.db ##### mailertable ##### mailertable.db : ../mailertable.db ##### cache files ##### PROXYCHECK_DBM=/var/spool/exim/db/proxycheck.dbm PROXYCHECK_TMP=/tmp/proxycheck init_proxycheck : if [ -f ${PROXYCHECK_TMP} ]; then rm ${PROXYCHECK_TMP} 2>/dev/null; fi touch ${PROXYCHECK_TMP} exim_dbmbuild ${PROXYCHECK_TMP} ${PROXYCHECK_DBM} rm ${PROXYCHECK_TMP} 2>/dev/null chown mailnull ${PROXYCHECK_DBM} chgrp mail ${PROXYCHECK_DBM} chmod 640 ${PROXYCHECK_DBM} GREYLIST_DBM=/var/spool/exim/db/greylist.dbm GREYLIST_TMP=/tmp/greylist init_greylist : if [ -f ${GREYLIST_TMP} ]; then rm ${GREYLIST_TMP} 2>/dev/null; fi touch ${GREYLIST_TMP} exim_dbmbuild ${GREYLIST_TMP} ${GREYLIST_DBM} rm ${GREYLIST_TMP} 2>/dev/null chown mailnull ${GREYLIST_DBM} chgrp mail ${GREYLIST_DBM} chmod 640 ${GREYLIST_DBM}