pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

stirmake: Add stirmake-0.4.4



Module Name:	pkgsrc-wip
Committed By:	Juha-Matti Tilli <juha-matti.tilli%iki.fi@localhost>
Pushed By:	juhis
Date:		Mon Nov 9 19:04:01 2026 +0200
Changeset:	1cf612490a8b3ba85f36f34500f7ac04df2cd1cd

Modified Files:
	Makefile
Added Files:
	stirmake/COMMIT_MSG
	stirmake/DESCR
	stirmake/Makefile
	stirmake/PLIST
	stirmake/TODO
	stirmake/distinfo
	stirmake/options.mk

Log Message:
stirmake: Add stirmake-0.4.4

Stirmake is a fast build tool intended to make recursive build systems
with possible git submodules easy to create. It is programmable in the
custom programming language Amyplan. The intention is that with
stirmake, one never has to do the equivalent of "make clean" to fix a
broken build.

Might benefit from testing on non-NetBSD platforms.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=1cf612490a8b3ba85f36f34500f7ac04df2cd1cd

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile            |  1 +
 stirmake/COMMIT_MSG | 35 +++++++++++++++++++++++++++++++++++
 stirmake/DESCR      |  6 ++++++
 stirmake/Makefile   | 34 ++++++++++++++++++++++++++++++++++
 stirmake/PLIST      |  9 +++++++++
 stirmake/TODO       |  7 +++++++
 stirmake/distinfo   |  5 +++++
 stirmake/options.mk | 28 ++++++++++++++++++++++++++++
 8 files changed, 125 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index e200a805bf..20591a1beb 100644
--- a/Makefile
+++ b/Makefile
@@ -5594,6 +5594,7 @@ SUBDIR+=	stalwart
 SUBDIR+=	stardict
 SUBDIR+=	stardict-tools
 SUBDIR+=	starfighter
+SUBDIR+=	stirmake
 SUBDIR+=	stksolver
 SUBDIR+=	stmd-git
 SUBDIR+=	stmpclean
diff --git a/stirmake/COMMIT_MSG b/stirmake/COMMIT_MSG
new file mode 100644
index 0000000000..af42e5d812
--- /dev/null
+++ b/stirmake/COMMIT_MSG
@@ -0,0 +1,35 @@
+devel/stirmake: Add stirmake version 0.4.4
+
+Packaged in wip by Juha-Matti Tilli
+
+This package provides stirmake version 0.4.4
+
+Stirmake is a fast build tool intended to make recursive build systems
+with possible git submodules easy to create. It is programmable in the
+custom programming language Amyplan. The intention is that with
+stirmake, one never has to do the equivalent of "make clean" to fix a
+broken build.
+
+Stirmake can be built without dependencies, with Lua, or with LuaJIT.
+Using Lua has no benefit over the embedded language Amyplan (unless one
+is familiar with Lua already, or unless one uses a Stirfile developed on
+a machine with LuaJIT that needs to be later used on a platform without
+LuaJIT support), but using LuaJIT has a speed benefit.
+
+Peculiarities of the provided package:
+
+1. Stirmake can be built with a prior installed version of stirmake,
+with GNU make or with a bootstrap shell script. It cannot be built with
+BSD make. Since GNU make would be a heavyweight build dependency, here
+the bootstrap script is used. Unfortunately, the bootstrap script is
+single-threaded. Fortunately, stirmake still builds in an acceptable
+time.
+
+2. The CC, CFLAGS and LDFLAGS variables need to be passed in the
+environment.
+
+3. If STIR_WITH_LUA is set to 1, both STIR_LUAINCS and STIR_LUALIBS need
+to be set, or else the build system of stirmake uses pkg-config to
+deduce their values. However, pkgsrc buildlink already sets the include
+paths in CFLAGS. So, place a dummy "-I." to STIR_LUAINCS to suppress the
+pkg-config.
diff --git a/stirmake/DESCR b/stirmake/DESCR
new file mode 100644
index 0000000000..3814b1714f
--- /dev/null
+++ b/stirmake/DESCR
@@ -0,0 +1,6 @@
+Stirmake is a fast build tool intended to allow easily developing
+correct build systems with one global directed acyclic graph for
+projects spanning multiple directories and potentially including Git
+submodules. It is fully programmable in the embedded Amyplan programming
+language. The intention is that with Stirmake, one never has to type the
+equivalent of "make clean" to fix a build.
diff --git a/stirmake/Makefile b/stirmake/Makefile
new file mode 100644
index 0000000000..e8705aac2b
--- /dev/null
+++ b/stirmake/Makefile
@@ -0,0 +1,34 @@
+# $NetBSD$
+
+DISTNAME=	stirmake-v0.4.4
+PKGNAME=	${DISTNAME:S,-v,-,}
+CATEGORIES=	devel
+MASTER_SITES=	${MASTER_SITE_GITHUB:=Aalto5G/}
+GITHUB_PROJECT=	stirmake
+GITHUB_RELEASE=	v0.4.4
+
+MAINTAINER=	juha-matti.tilli%iki.fi@localhost
+HOMEPAGE=	https://github.com/Aalto5G/stirmake/
+COMMENT=	Fast build tool with better support for recursion than make
+LICENSE=	mit
+
+INSTALLATION_DIRS=	bin ${PKGMANDIR}/man1
+
+do-build:
+	cd ${WRKSRC}/stirc && CC=${CC:Q} CFLAGS=${CFLAGS:Q} LDFLAGS=${LDFLAGS:Q} STIR_WITH_LUA=${STIR_WITH_LUA:Q} STIR_LUAINCS=${STIR_LUAINCS:Q} STIR_LUALIBS=${STIR_LUALIBS:Q} ./bootstrapnomake.sh
+
+do-test:
+	cd ${WRKSRC}/stirc/autotest && ${SETENV} ${TEST_ENV} ./suite.sh
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/stirc/stirmake ${DESTDIR}${PREFIX}/bin/stirmake
+	${INSTALL_MAN} ${WRKSRC}/stirc/stirmake.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/stirmake.1
+	${LN} -sf stirmake ${DESTDIR}${PREFIX}/bin/smka
+	${LN} -sf stirmake ${DESTDIR}${PREFIX}/bin/smkt
+	${LN} -sf stirmake ${DESTDIR}${PREFIX}/bin/smkp
+	${LN} -sf stirmake.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/smka.1
+	${LN} -sf stirmake.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/smkt.1
+	${LN} -sf stirmake.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/smkp.1
+
+.include "options.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/stirmake/PLIST b/stirmake/PLIST
new file mode 100644
index 0000000000..df6ee8a8d5
--- /dev/null
+++ b/stirmake/PLIST
@@ -0,0 +1,9 @@
+@comment $NetBSD$
+bin/smka
+bin/smkp
+bin/smkt
+bin/stirmake
+man/man1/smka.1
+man/man1/smkp.1
+man/man1/smkt.1
+man/man1/stirmake.1
diff --git a/stirmake/TODO b/stirmake/TODO
new file mode 100644
index 0000000000..be42814dfb
--- /dev/null
+++ b/stirmake/TODO
@@ -0,0 +1,7 @@
+- Test build on non-NetBSD platforms. At least manual compilation from
+  source works with NetBSD, FreeBSD, OpenBSD and DragonflyBSD, and
+  cross-compilation to MacOS works with zig cc and the resulting amd64
+  Mac binary runs on MacOS emulator "darling". The code should be
+  POSIX compliant, but what POSIX doesn't specify is linker arguments
+  so on some POSIX systems, it might require linking to some other
+  libraries than libc and libm.
diff --git a/stirmake/distinfo b/stirmake/distinfo
new file mode 100644
index 0000000000..d08402d601
--- /dev/null
+++ b/stirmake/distinfo
@@ -0,0 +1,5 @@
+$NetBSD$
+
+BLAKE2s (stirmake-v0.4.4.tar.gz) = d95505b0a62b2712d5325dfa830fe0a9b112797b2dde9296a59b0030f631d4cb
+SHA512 (stirmake-v0.4.4.tar.gz) = bf0918f70f1b2872c443de58f05af0cc58ee0421c58a0ca03a862faf60761321dee1379ed7b83c195705072b14c2c5afd611a31406415495794de10d721cdb26
+Size (stirmake-v0.4.4.tar.gz) = 1448525 bytes
diff --git a/stirmake/options.mk b/stirmake/options.mk
new file mode 100644
index 0000000000..27f03f3669
--- /dev/null
+++ b/stirmake/options.mk
@@ -0,0 +1,28 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR=		PKG_OPTIONS.stirmake
+PKG_SUPPORTED_OPTIONS=
+
+PKG_OPTIONS_OPTIONAL_GROUPS=	luaconf
+PKG_OPTIONS_GROUP.luaconf=	lua luajit
+
+PKG_SUGGESTED_OPTIONS=
+
+.include "../../mk/bsd.options.mk"
+
+STIR_WITH_LUA=		0
+STIR_LUAINCS=
+STIR_LUALIBS=
+
+.if !empty(PKG_OPTIONS:Mlua)
+LUA_VERSIONS_ACCEPTED=	55 54 53 52 51
+.include "../../lang/lua/buildlink3.mk"
+STIR_WITH_LUA=		1
+STIR_LUAINCS=		-I.
+STIR_LUALIBS=		-llua
+.elif !empty(PKG_OPTIONS:Mluajit)
+.include "../../lang/LuaJIT2/buildlink3.mk"
+STIR_WITH_LUA=		1
+STIR_LUAINCS=		-I.
+STIR_LUALIBS=		-lluajit-5.1
+.endif


Home | Main Index | Thread Index | Old Index