mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-05 01:55:52 +00:00
7114c4f834
which depend on it. Letting the boehm-gc to install it will effectively touch the filesystem in pre-build stage. Reported by: kris
203 lines
6.0 KiB
Makefile
203 lines
6.0 KiB
Makefile
# ex:ts=8
|
|
# Ports collection makefile for: Sather
|
|
# Date created: Mon Oct 31 22:04:12 PST 1994
|
|
# Whom: hsu
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
PORTNAME= sather
|
|
PORTVERSION= 1.2.2
|
|
PORTREVISION= 0
|
|
CATEGORIES= lang
|
|
MASTER_SITES= ${MASTER_SITE_GNU}
|
|
MASTER_SITE_SUBDIR= ${PORTNAME}
|
|
|
|
MAINTAINER= stas@FreeBSD.org
|
|
COMMENT= Sather compiler
|
|
|
|
#
|
|
# NOTE: currently build fails with threaded Tk
|
|
#
|
|
LIB_DEPENDS= tk84.1:${PORTSDIR}/x11-toolkits/tk84
|
|
BUILD_DEPENDS= ${LOCALBASE}/bin/libtool:${PORTSDIR}/devel/libtool15
|
|
|
|
USE_BZIP2= yes
|
|
USE_GMAKE= yes
|
|
ALL_TARGET= full optional
|
|
MAN1= sabrowse.1 sacomp.1
|
|
|
|
INFO= sather sather-mode sather-tutorial
|
|
|
|
SAT_CFLAGS= ${CFLAGS} -I. -I${BC_DIR}/include \
|
|
-I../System/Common \
|
|
-I${LOCALBASE}/include -I${X11BASE}/include \
|
|
-I${LOCALBASE}/include/tcl8.4 -I${LOCALBASE}/include/tk8.4
|
|
SAT_LIBS= -L${BC_DIR}/.libs -L${LOCALBASE}/lib -lgc -lm
|
|
SAT_LIBDIR= ${PREFIX}/lib/sather
|
|
|
|
OPTIONS= EMACS "Install Emacs syntax files" off
|
|
|
|
.if !defined(NOPORTDOCS)
|
|
PORTDOCS= *
|
|
.endif
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${ARCH} == "ia64"
|
|
BROKEN= boehm-gc is broken on ia64
|
|
.endif
|
|
|
|
BC_DIR!= cd ${PORTSDIR}/devel/boehm-gc && ${MAKE} -V WRKSRC
|
|
|
|
# XXX: exists untill it will be committed to bsd.port.mk
|
|
COPYTREE_SHARE= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \
|
|
2>&1) && \
|
|
${CHOWN} -R ${SHAREOWN}:${SHAREGRP} $$1 && \
|
|
${FIND} $$1/ -type d -exec ${CHMOD} 755 {} \; && \
|
|
${FIND} $$1/ -type f -exec ${CHMOD} ${SHAREMODE} {} \;' --
|
|
|
|
post-extract:
|
|
#
|
|
# Precompiled binaries are for Linux only
|
|
#
|
|
${RM} -f ${WRKSRC}/Boot/sacomp.code/*.o
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} -E \
|
|
-e "s,/usr/lib/sather,${SAT_LIBDIR}," \
|
|
-e "s,/usr/X11R6,${X11BASE}," \
|
|
-e "s,/usr/X11R6,${X11BASE}," \
|
|
${WRKSRC}/Boot/sacomp.code/strings.c \
|
|
${WRKSRC}/Doc/Installation.html \
|
|
${WRKSRC}/Doc/man/man1/sabrowse.1 \
|
|
${WRKSRC}/Doc/man/man1/sacomp.1 \
|
|
${WRKSRC}/Library/System/unix.sa \
|
|
${WRKSRC}/System/Platforms/X/Platform.module \
|
|
${WRKSRC}/System/Platforms/tcltk/startup.tcl \
|
|
${WRKSRC}/debian/bin-wrapper
|
|
|
|
@${REINPLACE_CMD} -E \
|
|
-e "s,(TK_LIB_NAME[[:space:]]*=[[:space:]]*).*,\1tk84," \
|
|
-e "s,(TCL_LIB_NAME[[:space:]]*=[[:space:]]*).*,\1tcl84," \
|
|
${WRKSRC}/System/Platforms/tcltk/Make.target.inc
|
|
|
|
@${REINPLACE_CMD} -E \
|
|
-e 's,(VERSION:[[:space:]]*).*,\1"${PORTVERSION}";,' \
|
|
-e 's,(C_COMPILER:[[:space:]]*).*,\1"${CC}";,' \
|
|
-e 's,(CC_OPTIONS:[[:space:]]*).*,\1"${SAT_CFLAGS}";,' \
|
|
-e 's,(GC_LINK:[[:space:]]*).*,\1"${SAT_LIBS}";,' \
|
|
-e 's,(CC_OPTIMIZE_FLAG:[[:space:]]*).*,\1""\,"${CFLAGS}";,' \
|
|
-e 's,(MAKE_COMMAND:[[:space:]]*).*,\1"${GMAKE}";,' \
|
|
-e 's,(FORTRAN_APPEND_UNDERSCORE:[[:space:]]*).*,\1"true";,' \
|
|
-e 's,CONFIG_PLATFORMS,unix,' \
|
|
-e 's,CONFIG_DEFAULT_PLATFORM,freebsd,' \
|
|
${WRKSRC}/System/Common/CONFIG.proto \
|
|
${WRKSRC}/System/Platforms/freebsd/CONFIG
|
|
|
|
@${REINPLACE_CMD} -E \
|
|
-e "s,(DEFAULT_PLATFORM[[:space:]]*=[[:space:]]*).*,\1freebsd,"\
|
|
-e "s,(CPP[[:space:]]*=[[:space:]]*).*,\1/usr/bin/cpp -P," \
|
|
-e "s,(CC[[:space:]]*=[[:space:]]*).*,\1${CC}," \
|
|
-e "s,(CFLAGS[[:space:]]*=[[:space:]]*).*,\1${SAT_CFLAGS}," \
|
|
-e "s,(LIBS[[:space:]]*=[[:space:]]*).*,\1${SAT_LIBS}," \
|
|
${WRKSRC}/Makefile ${WRKSRC}/Boot/sacomp.code/Makefile
|
|
|
|
@${REINPLACE_CMD} -E \
|
|
-e 's,/usr/bin/tclsh,${LOCALBASE}/bin/tclsh8.4,' \
|
|
${WRKSRC}/Browser/Web/*
|
|
#
|
|
# Don't generate cpp comments - Sather won't like it
|
|
#
|
|
@${REINPLACE_CMD} -E \
|
|
-e 's,#(CPP[[:space:]]*=[[:space:]]*).*,\1/usr/bin/cpp -P,' \
|
|
${WRKSRC}/System/Common/Makefile
|
|
#
|
|
# We have this function in stdlib
|
|
#
|
|
@${ECHO_CMD} \"abort2\" >> ${WRKSRC}/System/FORBID
|
|
|
|
pre-build:
|
|
#
|
|
# We need to clean since REDIRECT is required
|
|
#
|
|
@(cd ${PORTSDIR}/devel/boehm-gc && \
|
|
${MAKE} BATCH=yes WITH_REDIRECT=yes clean all)
|
|
#
|
|
# We're wanting static linking
|
|
#
|
|
@${RM} -f ${BC_DIR}/.libs/*.so*
|
|
|
|
post-build:
|
|
.for file in sather-tutorial.texinfo sather-mode.texinfo sather.texinfo
|
|
cd ${WRKSRC}/Emacs && /usr/bin/makeinfo --no-split ${file}
|
|
.endfor
|
|
|
|
do-install:
|
|
@${MKDIR} ${SAT_LIBDIR}/Bin
|
|
.for file in sabrowse sacomp
|
|
${INSTALL_PROGRAM} ${WRKSRC}/Bin/${file} ${SAT_LIBDIR}/Bin
|
|
.endfor
|
|
.for file in PP gen_html saprep
|
|
${INSTALL_SCRIPT} ${WRKSRC}/Bin/${file} ${SAT_LIBDIR}/Bin
|
|
.endfor
|
|
${INSTALL_SCRIPT} ${WRKSRC}/debian/bin-wrapper ${SAT_LIBDIR}/Bin
|
|
.for link in sabrowse sacomp
|
|
${LN} -sf ${SAT_LIBDIR}/Bin/bin-wrapper ${PREFIX}/bin/${link}
|
|
.endfor
|
|
.for obj in Browser Library System/Common System/Debug System/FORBID \
|
|
System/Platforms/X System/Platforms/dualgui System/Platforms/f77 \
|
|
System/Platforms/freebsd System/Platforms/gui System/Platforms/tcltk
|
|
${TAR} -C ${WRKSRC} -cf - \
|
|
--exclude "ActiveThreads" --exclude "Brahma" \
|
|
--exclude "CONFIG.proto" --exclude "Siva" \
|
|
--exclude "dual_gui_server.code" --exclude "*.bak" \
|
|
--exclude "*.config" --exclude "*.orig" \
|
|
--exclude "*Makefile*" ${obj} | \
|
|
${TAR} -C ${SAT_LIBDIR} --unlink -xf -
|
|
.endfor
|
|
|
|
#
|
|
# Permissions safety
|
|
#
|
|
@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${SAT_LIBDIR}
|
|
@${FIND} ${SAT_LIBDIR}/ -type f ! -perm +111 -exec ${CHMOD} \
|
|
${SHAREMODE} {} \;
|
|
@${FIND} ${SAT_LIBDIR}/ -type f -perm +111 -exec ${CHMOD} \
|
|
${BINMODE} {} \;
|
|
@${FIND} ${SAT_LIBDIR}/ -type d -exec ${CHMOD} 755 {} \;
|
|
|
|
#
|
|
# Generate PLIST
|
|
#
|
|
@${FIND} -d ${SAT_LIBDIR}/ -type f | \
|
|
${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
|
|
@${FIND} -d ${SAT_LIBDIR}/ -type d | \
|
|
${SED} 's,^${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
|
|
.for FILE in sabrowse sacomp
|
|
@${ECHO_CMD} \
|
|
"@exec ${LN} -sf %D/lib/sather/Bin/bin-wrapper %D/bin/${FILE}"\
|
|
>> ${TMPPLIST}
|
|
@${ECHO_CMD} "bin/${FILE}" >> ${TMPPLIST}
|
|
.endfor
|
|
|
|
.for file in sabrowse.1 sacomp.1
|
|
${INSTALL_MAN} ${WRKSRC}/Doc/man/man1/${file} ${MANPREFIX}/man/man1
|
|
.endfor
|
|
.for file in ${INFO}
|
|
${INSTALL_DATA} ${WRKSRC}/Emacs/${file}.info ${PREFIX}/info
|
|
.endfor
|
|
.if defined(WITH_EMACS)
|
|
. for file in hl319.el sather-lib.el sather-module.el sather.el
|
|
${INSTALL_DATA} ${WRKSRC}/Emacs/${file} ${PREFIX}/share/emacs/site-lisp
|
|
@${ECHO_CMD} "share/emacs/site-lisp/${file}" >> ${TMPPLIST}
|
|
. endfor
|
|
.endif
|
|
.if !defined(NOPORTDOCS)
|
|
@${MKDIR} ${DOCSDIR}
|
|
@(cd ${WRKSRC}/Doc && ${COPYTREE_SHARE} "*" ${DOCSDIR} \
|
|
"! -regex .*man.* ! -regex .*GPL ! -regex .*\.bak")
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|