openbsd-ports/lang/erlang/Makefile.inc
sthen c63703e54a - set PKGNAME to erlang-$V, this is a noop package-wise (the actual
produced packages are named according to PKGNAME-main/PKGNAME-wx) but
means that the port work directory has 'erlang' in the name rather
than 'otp', making it easier to identify the responsible port when
searching a big tree of source unpacked with "make extract".

- pick some <space><tab> nits while there
2018-06-02 14:03:24 +00:00

98 lines
3.2 KiB
Makefile

# $OpenBSD: Makefile.inc,v 1.17 2018/06/02 14:03:24 sthen Exp $
COMMENT ?= real-time, concurrent and distributed functional language
CATEGORIES = lang
# Erlang 16/17: Erlang Public License
# http://www.erlang.org/EPLICENSE
# Erlang 18: Apachev2
PERMIT_PACKAGE_CDROM = Yes
HOMEPAGE = http://www.erlang.org/
MASTER_SITES ?= ${HOMEPAGE}download/
DISTFILES ?= ${DISTNAME}.tar.gz \
otp_doc_man_${V}.tar.gz
EXTRACT_ONLY ?= ${DISTNAME}.tar.gz
CONFIGURE_STYLE ?= autoconf no-autoheader
CONFIGURE_ENV ?= LDFLAGS="${LDFLAGS} -pthread"
AUTOCONF_VERSION ?= 2.59
AUTOCONF_DIR ?= ${WRKSRC} \
${WRKSRC}/erts \
${WRKSRC}/lib/wx/
MODGNU_CONFIG_GUESS_DIRS ?= ${WRKSRC}/erts/autoconf \
${WRKSRC}/lib/erl_interface/src/auxdir \
${WRKSRC}/lib/wx/autoconf
# "error: No native atomic implementation found"
# Erlang 20 does not support enable/disable-smp-support
.if ${MACHINE_ARCH} == arm || ${MACHINE_ARCH} == hppa
CONFIGURE_ARGS += --disable-smp-support
.elif ${MACHINE_ARCH} == i386
CONFIGURE_ARGS += --enable-ethread-pre-pentium4-compatibility
.elif ${MACHINE_ARCH} == mips64 || ${MACHINE_ARCH} == mips64el
CFLAGS += -mxgot
.elif ${MACHINE_ARCH} == sparc64
CFLAGS += -fno-pie
LDFLAGS += -nopie
.endif
USE_GMAKE= Yes
MAKE_ENV += DESTDIR=$(DESTDIR)
NO_TEST ?= Yes
.for _n _v in ${ERL_VERSIONS}
${_n}=${_v}
${_n:S/_VSN//}=${_n:S/_VSN//:L}-${_v}
SUBST_VARS+=${_n:S/_VSN//}
.endfor
# XXX COMPILER var clashes with the clang selection mechanism
# fortunately erlang doesn't care, so just set CHOSEN_COMPILER to something
# to avoid the mechanism entirely
CHOSEN_COMPILER = irrelevant
SUBST_VARS+=SYSTEM_VSN MAJ_V
# special cases
EI= erl_interface-${EI_VSN}
COSEVENT= cosEvent-${COSEVENT_VSN}
COSEVENTDOMAIN= cosEventDomain-${COSEVENTDOMAIN_VSN}
COSFILETRANSFER=cosFileTransfer-${COSFILETRANSFER_VSN}
COSNOTIFICATION=cosNotification-${COSNOTIFICATION_VSN}
COSPROPERTY= cosProperty-${COSPROPERTY_VSN}
COSTIME= cosTime-${COSTIME_VSN}
COSTRANSACTIONS=cosTransactions-${COSTRANSACTIONS_VSN}
# Special maintainer target, scan through vsn.mk files and build 'ERL_VERSIONS'
# list
gen-versions: extract
@find ${WRKSRC} -name 'vsn.mk' -exec awk '/_VSN +=/ { print $$1"\t"$$3 " \\" }' {} \; | grep -v 'PRE_' | grep -v 'APP_' | sed 's/DOCB_VSN/DOCBUILDER_VSN/' | sort
@find ${WRKSRC} -name 'vsn.mk' -exec awk -F'=' '/_VSN=/ { print $$1"\t"$$2 " \\" }' {} \; | grep -v 'PRE_' | grep -v 'APP_' | sort
@grep VSN ${WRKSRC}/erts/vsn.mk |awk '/^VSN/ { print "ERTS_VSN\t" $$3 }' | sort
pre-configure:
${SUBST_CMD} ${WRKSRC}/make/install_bin \
${WRKSRC}/Makefile.in \
${WRKSRC}/erts/etc/common/ct_run.c \
${WRKSRC}/erts/etc/common/dialyzer.c \
${WRKSRC}/erts/etc/common/erlc.c \
${WRKSRC}/erts/etc/common/escript.c \
${WRKSRC}/erts/etc/common/typer.c \
${WRKSRC}/lib/dialyzer/src/dialyzer_plt.erl \
${WRKSRC}/lib/wx/configure.in
post-install:
ln -sf ../lib/erlang${MAJ_V}/lib/${EI}/bin/erl_call ${PREFIX}/bin/erl_call${MAJ_V}
tar zxf ${FULLDISTDIR}/otp_doc_man_${V}.tar.gz -C ${DOC_DIR}
rm -r ${DOC_DIR}/man/man7/*MIB.7
rm -r ${DOC_DIR}/man/man7/*TM.7
if [ ! -x ${PREFIX}/lib/erlang${MAJ_V}/${ERTS}/bin/beam.smp ]; then \
cp -v ${PREFIX}/lib/erlang${MAJ_V}/${ERTS}/bin/beam \
${PREFIX}/lib/erlang${MAJ_V}/${ERTS}/bin/beam.smp; fi