# New ports collection makefile for: elm ME+ (unofficial Elm) # Date created: 26 June 1995 # Whom: ache # # $FreeBSD$ # PORTNAME= elm+ME PORTVERSION= ${ELM_VERSION}.${ELM_REVISION}${ELM_PATCHLEVEL:S/_//} CATEGORIES= mail MASTER_SITES= http://www.elmme-mailer.org/ \ ftp://ftp.elmme-mailer.org/elmme-mailer.org/src/elm-2.4ME+/ \ ftp://ftp.funet.fi/pub/unix/mail/elm/elm-2.4ME+/ DISTNAME= elm-${ELM_VERSION}ME+${ELM_REVISION} PATCH_SITES= ${MASTER_SITES} PATCHFILES= # see below. PATCH_DIST_STRIP= -p1 MAINTAINER= johans@stack.nl COMMENT= Modern branch of an old mail user agent # not needed since config.sh is generated by scripts/pre-configure. # BUILD_DEPENDS= ispell:${PORTSDIR}/textproc/ispell # BUILD_DEPENDS= metamail:${PORTSDIR}/mail/metamail # BUILD_DEPENDS= pgp:${PORTSDIR}/security/pgp # BUILD_DEPENDS= gpg:${PORTSDIR}/security/gnupg # Global variables # WRKSRC= ${WRKDIR}/${DISTNAME:S/-//:S/ME+/.ME+./} HAS_CONFIGURE= yes USE_OPENSSL= yes CONFIGURE_SCRIPT= Configure SCRIPTS_ENV= CONFIG_PATH="${CONFIG_PATH}" CFLAGS="${CFLAGS}" \ PREFIX="${PREFIX}" LOCALBASE="${LOCALBASE}" \ MAN1PREFIX="${MAN1PREFIX}" CONF_DIR="${CONF_DIR}" \ LIB_DIR="${LIB_DIR}" SHLIB_DIR="${SHLIB_DIR}" \ STAGE_DIR="${STAGE_DIR}" ELM_SHLIBS="${ELM_SHLIBS}" \ OPENSSLLIB="${OPENSSLLIB}" OPENSSLINC="${OPENSSLINC}" \ OPENSSLBASE="${OPENSSLBASE}" CONFIGURE_ARGS= -b -S -P ${PREFIX} -c ../${CONFIG_PATH:T} MAKE_ENV= MJ="FORMATTER=groff FORMATTER_OPTS=-Tlatin1" ALL_TARGET= all INSTALLS_SHLIB= yes LDCONFIG_DIRS= %%PREFIX%%/%%SHLIB_DIR%% PLIST_SUB= SO_REV="${SO_REV}" \ MAIL_DIR="${MAIL_DIR:S,^${PREFIX}/,,}" \ CONF_DIR="${CONF_DIR:S,^${PREFIX}/,,}" \ LIB_DIR="${LIB_DIR:S,^${PREFIX}/,,}" \ SHLIB_DIR="${SHLIB_DIR:S,^${PREFIX}/,,}" \ ELM_SHLIBS="${ELM_SHLIBS}" \ ${ELM_SHLIBS:U:S/^/ELM_/:S/$/=""/} \ ${ELM_UNSHLIBS:U:S/^/ELM_/:S/$/="@comment "/} MAN1= answer.1 checkalias.1 elm.1 elmalias.1 elmbindata.1 \ elmcharset.1 elmlibregister.1 elmmimetypes.1 \ elmrc-write.1 elmregister.1 \ elmstringconvert.1 elmterminal.1 elmunidata.1 elmuninstall.1 \ fastmail.1 frm.1 listalias.1 messages.1 newalias.1 newmail.1 \ printmail.1 prlong.1 readmsg.1 MLINKS= frm.1 nfrm.1 newmail.1 wnewmail.1 .if !defined(ELM_USER_SHLIBS) OPTIONS= ELM_ICONV "libiconv support" on \ ELM_SMTP "SMTP submission protocol (RFC2746) support" on \ ELM_TLS "POP STLS and IMAP STARTTLS support" on \ OPENSSL_BASE "use the base system OpenSSL (required by TLS)" on \ OPENSSL_PORT "use OpenSSL from ports (requires by TLS)" off .endif .include # Local variables # ELM_VERSION= 2.4 ELM_REVISION= 123 ELM_PATCHLEVEL= e # a...z = patch-level, _ means no patch-level. ELM_PATCHDONE= false .for level in _ a b c d e f g h i j k l m n o p q r s t u v w x y z _level=${level} . if ${_level} != _ && ${ELM_PATCHDONE} == false PATCHFILES+= ${DISTNAME:S/+/+PL/}${level}.patch.gz . endif . if ${ELM_PATCHLEVEL} == ${_level} ELM_PATCHDONE= true . endif .endfor ELM_SYSTEM_SHLIBS= iconv smtp tls .if !defined(ELM_USER_SHLIBS) . for shlib in ${ELM_SYSTEM_SHLIBS} . if !defined(${shlib:U:S/^/WITHOUT_ELM_/}) ELM_USER_SHLIBS+=${shlib} . endif . endfor .endif ELM_USER_SHLIBS?= ${ELM_SYSTEM_SHLIBS} # or none ELM_SHLIBS= .if ${ELM_USER_SHLIBS} == none ELM_UNSHLIBS= ${ELM_SYSTEM_SHLIBS} .else ELM_UNSHLIBS= . for shlib1 in ${ELM_SYSTEM_SHLIBS} _shlib1=${shlib1} _define= false . for shlib2 in ${ELM_USER_SHLIBS} _shlib2=${shlib2} . if ${_shlib1} == ${_shlib2} _define= true . endif . endfor . if ${_define} == true ELM_SHLIBS+= ${shlib1} . else ELM_UNSHLIBS+= ${shlib1} . endif . endfor .endif .if ${ELM_SHLIBS:Miconv} == iconv USE_ICONV= yes .endif # evaluation should be protected 'til extraction to avoid noisy messages. SO_REV= $$([ -f ${WRKSRC}/hdrs/patchlevel.h ] && \ ${AWK} '/SHAREDTAG:/{print $$2}' ${WRKSRC}/hdrs/patchlevel.h) MSECS= 1 STAGE_DIR= ${WRKDIR}/stage MAIL_DIR= ${PREFIX}/etc/mail CONF_DIR= ${MAIL_DIR}/elm LIB_DIR= ${PREFIX}/lib/elm SHLIB_DIR= ${PREFIX}/lib CONFIG_PATH= ${WRKDIR}/config.sh MIME_TYPES= elm.mimetypes MIME_CSETS= elm.mimecharsets TERM_INFO= elm.terminalinfo ELM_RC= elm.rc LOCAL_CONF_FILES= ${MIME_TYPES} ${MIME_CSETS} ${TERM_INFO} ${ELM_RC} DOC_FILES= MIME.txt README.ME+ .for shlib in ${ELM_SHLIBS} DOC_FILES+= shared_libs/${shlib:L}/README.${shlib:U} .endfor # Post-patch # post-patch: fix-permissions patch-setgid patch-nls-files fix-permissions: @${CHMOD} -R u+w ${WRKSRC} # from : # Although we have saved user/group IDs, we do not use them in setuid # as described in POSIX 1003.1, because the feature does not work for # root. We use the saved IDs in seteuid/setegid, which are not currently # part of the POSIX 1003.1 specification. XXX revisit for 1003.1-2001 # as this is now mandatory. patch-setgid: @if [ "$$(/sbin/sysctl -n kern.saved_ids)" -eq 0 ]; then \ ${REINPLACE_CMD} -e 's|setgid|setegid|' \ ${WRKSRC}/lib/mbox/localmbx.c \ ${WRKSRC}/src/init.c ${WRKSRC}/src/lock.c; \ ${REINPLACE_CMD} -e 's|have_saved_ids = 0|have_saved_ids = 1|' \ ${WRKSRC}/lib/read_rc.c; \ fi patch-nls-files: @${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|' ${WRKSRC}/nls/LANGS # Pre-configure # pre-configure: configure-shlibs TEE?= tee configure-shlibs: @${CP} /dev/null ${CONFIG_PATH} .for shlib in ${ELM_SYSTEM_SHLIBS} @${ECHO_CMD} "\# Support for ${shlib:U}" \ > ${WRKSRC}/shared_libs/${shlib:L}/config.res .endfor .for shlib in ${ELM_SHLIBS} @${ECHO_CMD} "${shlib:L}_ok='define'" \ | ${TEE} -a ${CONFIG_PATH} \ >> ${WRKSRC}/shared_libs/${shlib:L}/config.res .endfor .for shlib in ${ELM_UNSHLIBS} @${ECHO_CMD} "${shlib:L}_ok='undef'" \ | ${TEE} -a ${CONFIG_PATH} \ >> ${WRKSRC}/shared_libs/${shlib:L}/config.res .endfor # Post-configure # post-configure: rename-readmes rename-readmes: .for shlib in ${ELM_SHLIBS} @if [ -f ${WRKSRC}/shared_libs/${shlib:L}/README.ME+ ]; then \ ${MV} ${WRKSRC}/shared_libs/${shlib:L}/README.ME+ \ ${WRKSRC}/shared_libs/${shlib:L}/README.${shlib:U}; \ fi .endfor # Pre-install # pre-install: create-install-dirs backup-conf-files create-install-dirs: @${MKDIR} ${CONF_DIR} ${LIB_DIR} ${SHLIB_DIR} backup-conf-files: .for file in ${LOCAL_CONF_FILES} @if [ -f ${LIB_DIR}/${file} ]; then \ ${MV} ${LIB_DIR}/${file} ${CONF_DIR}/${file}.orig; \ elif [ -f ${CONF_DIR}/${file} ]; then \ ${MV} ${CONF_DIR}/${file} ${CONF_DIR}/${file}.orig; \ fi .endfor # Post-install # post-install: install-nls-files \ install-doc-files install-mime-types \ install-conf-files restore-conf-files \ merge-global-rc-file \ remove-catman-files remove-catman-links install-nls-files: @cd ${WRKSRC}/nls; ${MAKE} install install-doc-files: .if !defined(NOPORTDOCS) @${MKDIR} ${DOCSDIR} . for file in ${DOC_FILES} @${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR} @${GZIP_CMD} ${DOCSDIR}/${file:T} . endfor .endif install-mime-types: @${INSTALL_DATA} ${FILESDIR}/${MIME_TYPES} ${CONF_DIR}/${MIME_TYPES} install-conf-files: .for file in ${LOCAL_CONF_FILES} @${INSTALL_DATA} ${CONF_DIR}/${file} ${CONF_DIR}/${file}-dist .endfor # for instance, don't restore obsolete files :( except elm.rc :) restore-conf-files: .for file in ${ELM_RC} # ${LOCAL_CONF_FILES} @if [ -f ${CONF_DIR}/${file}.orig ]; then \ ${MV} ${CONF_DIR}/${file}.orig ${CONF_DIR}/${file}; \ fi .endfor merge-global-rc-file: @${LIB_DIR}/elmrc-write -G -I @${LIB_DIR}/elmlibregister -G -I ${ELM_SHLIBS} @${INSTALL_DATA} ${CONF_DIR}/${ELM_RC} ${CONF_DIR}/${ELM_RC}-dist @${RM} -f ${CONF_DIR}/${ELM_RC}.old-values remove-catman-files: .for sect in ${MSECS} . for page in ${MAN${sect}} @${RM} -f ${MAN${sect}PREFIX}/man/cat${sect}/${page} . endfor .endfor remove-catman-links: .for sect in ${MSECS} . for page in ${MLINKS} . if ${MAN${sect}:M${page}} == "" @${RM} -f ${MAN${sect}PREFIX}/man/cat${sect}/${page} . endif . endfor .endfor # some sketchy hackery FETCH_CMD_INTERIOR= ${FETCH_CMD:M*fetch*} # only enable the hack if FETCH_CMD is fetch .if !empty(FETCH_CMD_INTERIOR) # some ftp servers dislike $USER@localhost... FETCH_ENV= FTP_PASSWORD=${FTP_PASSWORD} IFCONFIG?= ifconfig HOSTIPADDR= ${IFCONFIG} | ${AWK} '/inet /{print $$2; exit}' FTP_PASSWORD?= ${USER}@`${HOSTIPADDR}` .endif .include