Commit Graph

11 Commits

Author SHA1 Message Date
Michael Forney 2eddb78d1b Store dist files in config.distdir
This makes it easy to remove old distfiles with `git clean -f dist`.
2026-03-12 16:40:37 -07:00
Michael Forney 182313295d perp: Build with warning flags 2024-03-17 00:27:08 -07:00
Michael Forney 08cca5431f Move toolchain config into config.lua 2020-01-29 22:14:33 -08:00
Michael Forney f4720910b9 Update ninja requirement to 1.8.0 and don't bother with atomic outputs
Since ninja 1.8.0[0] and samurai 0.2[1], output mtime is always
recorded after a job succeeds, and outputs are considered dirty if
the recorded mtime is older than any input. This means that even
if a command partially writes its output then fails (for example,
if run with stdout redirected to a file), it will still get re-run
during the next build.

This means that outputs no longer have to be written atomically
(i.e. renamed into place) in order to ensure a correct build, and
we can drop the idiom `command >$out.tmp && mv $out.tmp $out`.

[0] https://github.com/ninja-build/ninja/commit/04d886b11041bb59d01df794cce7a1e8cad2250d
[1] https://github.com/michaelforney/samurai/commit/799bc5a4719b90a1026c129b55b92c0bccf97eeb
2019-11-17 15:24:25 -08:00
Michael Forney 4332740046 Rename rev to ver, and keep track of package versions as well 2019-03-19 00:14:12 -07:00
Michael Forney a633e7508f perp: Add a few cleanup patches 2019-03-03 22:45:39 -08:00
Michael Forney ba94a8513d Rewrite ninja generation scripts in Lua 2017-09-25 19:23:06 -07:00
Michael Forney dace9cee3b perp: Use clock_gettime for tain_now, and restore umask after perpd_control_init 2017-03-26 19:43:34 -07:00
Michael Forney 2420bcc6b1 Compress man pages 2016-12-19 00:05:57 -08:00
Michael Forney cdb65e99c7 Move {cc,cxx,ld}flags settings from toolchain to config 2016-12-13 23:10:30 -08:00
Michael Forney 293f5a93b7 Move to flat package hierarchy
Note to self: never try to move submodules again

To migrate your existing submodules (more or less):

	set -x
	set -e

	mkdir .git/modules/pkg
	for old in */*/src ; do
	        new="pkg/${old#*/}"
	        if ! [ -f "$old/.git" ] || [ "${old%%/*}" = pkg ] ; then
			continue
		fi
		git -C ".git/modules/$old" config core.worktree "../../../../../$new"
		rmdir "$new"
		mv "$old" "$new"
	        sed -e "s,$old,$new," "$new/.git" > "$new/.git.tmp"
	        mv "$new/.git.tmp" "$new/.git"
		mkdir ".git/modules/${new%/src}"
	        mv ".git/modules/$old" ".git/modules/$new"

		rm "${old%/src}"/*.ninja
		mv "${old%/src}"/*.tar.{gz,xz,bz2} "${new%/src}/"
		rmdir "${old%/src}" || true
	done
	sed -e 's,^\[submodule "[^/]*/,[submodule "pkg/,' .git/config > .git/config.tmp
	mv .git/config.tmp .git/config
2016-12-13 23:10:30 -08:00