aboutsummaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorMuhammad Moinur Rahman <bofh@FreeBSD.org>2022-12-30 17:49:45 +0000
committerMuhammad Moinur Rahman <bofh@FreeBSD.org>2022-12-30 17:54:39 +0000
commit8231864a3b0376f9df37cc3904c4e217efc6110d (patch)
tree1527743df58dab8dec2dc27426e051818ed96898 /Mk
parentc87a22b7f399da0a3446fb75c57eaba8dc7769ca (diff)
downloadports-8231864a3b0376f9df37cc3904c4e217efc6110d.tar.gz
ports-8231864a3b0376f9df37cc3904c4e217efc6110d.zip
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Uses/octave.mk90
-rw-r--r--Mk/bsd.octave.mk41
2 files changed, 90 insertions, 41 deletions
diff --git a/Mk/Uses/octave.mk b/Mk/Uses/octave.mk
new file mode 100644
index 000000000000..e5c6be62df25
--- /dev/null
+++ b/Mk/Uses/octave.mk
@@ -0,0 +1,90 @@
+# Support for octave based ports
+#
+# Feature: octave
+# Usage: USES=octave
+# Valid ARGS: (none), env
+# - env : Loads only one environmental variable OCTAVE_VERSION
+# MAINTAINER: stephen@FreeBSD.org
+#
+# Common code to install octave-forge packages.
+# It is, in effect, a wrapper using the package handling already built
+# into math/octave.
+
+.if !defined(_INCLUDE_USES_OCTAVE_MK)
+_INCLUDE_USES_OCTAVE_MK= yes
+
+_valid_octave_ARGS= env
+
+# Sanity check
+. for arg in ${octave_ARGS}
+. if empty(_valid_octave_ARGS:M${arg})
+IGNORE= Incorrect 'USES+= octave:${octave_ARGS}' usage: argument [${arg}] is not recognized
+. endif
+. endfor
+
+OCTAVE_VERSION= 7.3.0
+
+. if empty(octave_ARGS:Menv)
+BUILD_DEPENDS+= octave:math/octave
+RUN_DEPENDS+= octave:math/octave \
+ ${LOCALBASE}/libexec/octave/load-octave-pkg:math/octave-forge-base
+LIB_DEPENDS+= libpcre.so:devel/pcre
+
+. if ! ${USES:Mcompiler}
+_USES_POST+= compiler:c++14-lang
+. endif
+
+. if ! ${USES:Mfortran}
+_USES_POST+= fortran
+. endif
+
+. if ! ${USES:Mgmake}
+_USES_POST+= gmake
+. endif
+
+CXXFLAGS+= -I${LOCALBASE}/include/octave-${OCTAVE_VERSION}
+CFLAGS+= -I${LOCALBASE}/include/octave-${OCTAVE_VERSION}
+CPPFLAGS+= -I${LOCALBASE}/include/octave-${OCTAVE_VERSION}
+
+DIST_SUBDIR?= octave-forge
+OCTAVE_PKGNAME= ${PORTNAME:S/octave-forge-//}
+OCTAVE_DISTNAME= ${OCTAVE_PKGNAME}-${DISTVERSION}
+OCTAVE_TARBALLS_DIR= ${LOCALBASE}/share/octave/tarballs
+OCTAVE_INSTALL_TARBALLS_DIR= ${STAGEDIR}${PREFIX}/share/octave/tarballs
+OCTAVE_SRC?= ${DISTNAME}
+WRKSRC?= ${WRKDIR}/${OCTAVE_SRC}/src
+
+MAKE_ENV+= PACKAGE=${OCTAVE_DISTNAME}.tar.gz
+MAKE_ARGS= CC="${CC}" CXX="${CXX}" LD_CXX="${CXX}" DL_LD="${CXX}" MKOCTFILE="${LOCALBASE}/bin/mkoctfile" OCTAVE_VERSION=-${OCTAVE_VERSION}
+
+LOAD_OCTAVE_PKG_CMD= ${LOCALBASE}/libexec/octave/load-octave-pkg
+
+. if !target(pre-install)
+pre-install: octave-pre-install
+. endif # !target(pre-install)
+
+. if !target(do-install)
+do-install: octave-do-install
+. endif # !target(do-install)
+
+. if !target(post-install)
+post-install: octave-post-install
+. endif # !target(post-install)
+
+octave-pre-install:
+ ${RM} ${WRKSRC}/Makefile ${WRKSRC}/configure
+ cd ${WRKDIR} && ${TAR} cfz ${OCTAVE_DISTNAME}.tar.gz ${OCTAVE_SRC}
+
+octave-do-install:
+ ${MKDIR} ${OCTAVE_INSTALL_TARBALLS_DIR}
+ ${INSTALL_DATA} ${WRKDIR}/${OCTAVE_DISTNAME}.tar.gz ${OCTAVE_INSTALL_TARBALLS_DIR}/.
+ ${LN} -s -f ${OCTAVE_DISTNAME}.tar.gz ${OCTAVE_INSTALL_TARBALLS_DIR}/${OCTAVE_PKGNAME}.tar.gz
+
+octave-post-install:
+ @${ECHO_CMD} "share/octave/tarballs/${OCTAVE_DISTNAME}.tar.gz" >> ${TMPPLIST}
+ @${ECHO_CMD} "share/octave/tarballs/${OCTAVE_PKGNAME}.tar.gz" >> ${TMPPLIST}
+ @${ECHO_CMD} "@postunexec if [ -x ${LOAD_OCTAVE_PKG_CMD} ]; then ${LOAD_OCTAVE_PKG_CMD}; fi" >> ${TMPPLIST}
+ @${ECHO_CMD} "@postexec if [ -x ${LOAD_OCTAVE_PKG_CMD} ]; then ${LOAD_OCTAVE_PKG_CMD}; fi" >> ${TMPPLIST}
+. endif # empty(octave_ARGS:Menv)
+
+.endif # !defined(_INCLUDE_USES_OCTAVE_MK)
diff --git a/Mk/bsd.octave.mk b/Mk/bsd.octave.mk
deleted file mode 100644
index a4c58c4476aa..000000000000
--- a/Mk/bsd.octave.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-#-*- tab-width: 4; -*-
-# ex:ts=4
-#
-# bsd.octave.mk - Octave related macro
-# Common code to install octave-forge packages.
-# It is, in effect, a wrapper using the package handling already built
-# into math/octave.
-
-bsd_octave_mk_MAINTAINER= stephen@FreeBSD.org
-
-BUILD_DEPENDS+= octave:math/octave
-RUN_DEPENDS+= octave:math/octave \
- ${LOCALBASE}/libexec/octave/load-octave-pkg:math/octave-forge-base
-LIB_DEPENDS+= libpcre.so:devel/pcre
-
-USES+= fortran gmake compiler:c++14-lang
-CXXFLAGS+= -std=gnu++11
-
-DIST_SUBDIR?= octave-forge
-OCTAVE_PKGNAME= ${PORTNAME:S/octave-forge-//}
-OCTAVE_DISTNAME= ${OCTAVE_PKGNAME}-${DISTVERSION}
-TARBALLS_DIR= ${LOCALBASE}/share/octave/tarballs
-INSTALL_TARBALLS_DIR= ${STAGEDIR}${PREFIX}/share/octave/tarballs
-
-.include "${.CURDIR}/../../math/octave/Makefile.version"
-
-MAKE_ENV+= PACKAGE=${OCTAVE_DISTNAME}.tar.gz
-MAKE_ARGS= CC="${CC}" CXX="${CXX}" LD_CXX="${CXX}" DL_LD="${CXX}" MKOCTFILE="${LOCALBASE}/bin/mkoctfile" OCTAVE_VERSION=-${OCTAVE_VERSION}
-
-LOAD_OCTAVE_PKG_CMD= ${LOCALBASE}/libexec/octave/load-octave-pkg
-
-do-install:
- ${MKDIR} ${INSTALL_TARBALLS_DIR}
- ${INSTALL_DATA} ${WRKDIR}/${OCTAVE_DISTNAME}.tar.gz ${INSTALL_TARBALLS_DIR}/.
- ${LN} -s -f ${OCTAVE_DISTNAME}.tar.gz ${INSTALL_TARBALLS_DIR}/${OCTAVE_PKGNAME}.tar.gz
-
-post-install:
- @${ECHO_CMD} "share/octave/tarballs/${OCTAVE_DISTNAME}.tar.gz" >> ${TMPPLIST}
- @${ECHO_CMD} "share/octave/tarballs/${OCTAVE_PKGNAME}.tar.gz" >> ${TMPPLIST}
- @${ECHO_CMD} "@postunexec if [ -x ${LOAD_OCTAVE_PKG_CMD} ]; then ${LOAD_OCTAVE_PKG_CMD}; fi" >> ${TMPPLIST}
- @${ECHO_CMD} "@postexec if [ -x ${LOAD_OCTAVE_PKG_CMD} ]; then ${LOAD_OCTAVE_PKG_CMD}; fi" >> ${TMPPLIST}