commit: f0fb0e517737860133352382ec082e4690be9b3a
parent cdf748ea39cb023b364240569a57ad5bc3e00171
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 25 May 2020 21:01:32 -0700
Start to support configurable prefix
Diffstat:
14 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/config.def.lua b/config.def.lua
@@ -4,6 +4,9 @@ return {
-- build output directory
builddir='out',
+ -- install prefix
+ prefix='',
+
-- package/file selection
fs={
-- Each entry contains a list of packages, a list of patterns to
diff --git a/pkg/binutils/gen.lua b/pkg/binutils/gen.lua
@@ -162,7 +162,7 @@ sub('bfd.ninja', function()
'$cflags',
string.format([[-D 'SELECT_ARCHITECTURES=&%s']], table.concat(table.keys(selarchs), ',&')),
}})
- cc('bfd/dwarf2.c', nil, {cflags={'$cflags', [[-D 'DEBUGDIR="/lib/debug"']]}})
+ cc('bfd/dwarf2.c', nil, {cflags={'$cflags', string.format([[-D 'DEBUGDIR="%s/lib/debug"']], config.prefix)}})
lib('libbfd.a', {
-- src/bfd/Makefile.am:/^BFD32_LIBS_CFILES
-- src/bfd/Makefile.am:/^BFD64_LIBS_CFILES
@@ -199,7 +199,7 @@ end)
sub('binutils.ninja', function()
cflags{
- [[-D 'LOCALEDIR="/share/locale"']],
+ string.format([[-D 'LOCALEDIR="%s/share/locale"']], config.prefix),
'-D bin_dummy_emulation=bin_vanilla_emulation',
'-I $dir/binutils',
'-I $srcdir/binutils',
@@ -309,9 +309,9 @@ sub('ld.ninja', function()
'-D ELF_LIST_OPTIONS=TRUE',
'-D ELF_SHLIB_LIST_OPTIONS=TRUE',
'-D ELF_PLT_UNWIND_LIST_OPTIONS=TRUE',
- [[-D 'BINDIR="/bin"']],
- string.format([[-D 'SCRIPTDIR="/%s/lib"']], config.target.platform),
- string.format([[-D 'TOOLBINDIR="/%s/bin"']], config.target.platform),
+ string.format([[-D 'BINDIR="%s/bin"']], config.prefix),
+ string.format([[-D 'SCRIPTDIR="%s/%s/lib"']], config.prefix, config.target.platform),
+ string.format([[-D 'TOOLBINDIR="%s/%s/bin"']], config.prefix, config.target.platform),
'-I $dir/ld',
'-I $outdir/ld',
'-I $srcdir/ld',
diff --git a/pkg/file/gen.lua b/pkg/file/gen.lua
@@ -2,7 +2,7 @@ local version = '5.37'
cflags{
'-Wall',
'-D HAVE_CONFIG_H',
- [[-D 'MAGIC="/share/file/magic"']],
+ string.format([[-D 'MAGIC="%s/share/file/magic"']], config.prefix),
'-D _GNU_SOURCE',
'-I $dir',
'-I $outdir/include',
diff --git a/pkg/kbd/gen.lua b/pkg/kbd/gen.lua
@@ -1,5 +1,5 @@
cflags{
- [[-D 'DATADIR="/share/kbd"']],
+ string.format([[-D 'DATADIR="%s/share/kbd"']], config.prefix),
'-I $dir',
'-I $srcdir',
'-I $srcdir/src',
diff --git a/pkg/libdrm/gen.lua b/pkg/libdrm/gen.lua
@@ -67,7 +67,7 @@ if config.video_drivers and config.video_drivers['nouveau'] then
end
if config.video_drivers and config.video_drivers['amdgpu'] then
- cflags{[[-D 'AMDGPU_ASIC_ID_TABLE="/share/libdrm/amdgpu.ids"']]}
+ cflags{string.format([[-D 'AMDGPU_ASIC_ID_TABLE="%s/share/libdrm/amdgpu.ids"']], config.prefix)}
lib('libdrm_amdgpu.a', [[
amdgpu/(
amdgpu_asic_id.c
diff --git a/pkg/libnl/gen.lua b/pkg/libnl/gen.lua
@@ -1,6 +1,6 @@
cflags{
'-D _GNU_SOURCE',
- [[-D 'SYSCONFDIR="/etc/libnl"']],
+ string.format([[-D 'SYSCONFDIR="%s/etc/libnl"']], config.prefix),
'-I $dir',
'-I $outdir/include',
'-I $srcdir/include',
diff --git a/pkg/msmtp/gen.lua b/pkg/msmtp/gen.lua
@@ -1,6 +1,6 @@
cflags{
'-D HAVE_CONFIG_H',
- [[-D 'SYSCONFDIR="/etc"']],
+ string.format([[-D 'SYSCONFDIR="%s/etc"']], config.prefix),
'-I $dir',
'-I $builddir/pkg/libressl/include',
}
diff --git a/pkg/sinit/config.h b/pkg/sinit/config.h
@@ -1,5 +1,5 @@
/* See LICENSE file for copyright and license details. */
-static char *const rcinitcmd[] = { "/etc/rc.init", NULL };
-static char *const rcrebootcmd[] = { "/etc/rc.shutdown", "reboot", NULL };
-static char *const rcpoweroffcmd[] = { "/etc/rc.shutdown", "poweroff", NULL };
+static char *const rcinitcmd[] = { PREFIX "/etc/rc.init", NULL };
+static char *const rcrebootcmd[] = { PREFIX "/etc/rc.shutdown", "reboot", NULL };
+static char *const rcpoweroffcmd[] = { PREFIX "/etc/rc.shutdown", "poweroff", NULL };
diff --git a/pkg/sinit/gen.lua b/pkg/sinit/gen.lua
@@ -1,4 +1,8 @@
-cflags{'-Wall', '-Wextra', '-I $dir'}
+cflags{
+ '-Wall', '-Wextra',
+ string.format([[-D 'PREFIX="%s"']], config.prefix),
+ '-I $dir',
+}
file('bin/sinit', '755', exe('sinit', {'sinit.c'}))
man{'sinit.8'}
diff --git a/pkg/velox/gen.lua b/pkg/velox/gen.lua
@@ -1,5 +1,5 @@
cflags{
- [[-D 'VELOX_LIBEXEC="/libexec/velox"']],
+ string.format([[-D 'VELOX_LIBEXEC="%s/libexec/velox"']], config.prefix),
'-I $outdir',
'-I $basedir/pkg/fontconfig/src',
'-I $basedir/pkg/libinput/src/src',
diff --git a/pkg/vis/gen.lua b/pkg/vis/gen.lua
@@ -12,7 +12,7 @@ cflags{
'-D _POSIX_C_SOURCE=200809L',
'-D _XOPEN_SOURCE=700',
[[-D 'VERSION="$version"']],
- [[-D 'VIS_PATH="/share/vis"']],
+ string.format([[-D 'VIS_PATH="%s/share/vis"']], config.prefix),
'-D NDEBUG',
'-I $outdir',
'-I $basedir/pkg/libtermkey/src',
diff --git a/setup.lua b/setup.lua
@@ -17,6 +17,9 @@ end
dofile(basedir..'/ninja.lua')
config = dofile 'config.lua'
+if not config.prefix then
+ config.prefix = ''
+end
local recurse = not arg[1]
diff --git a/src/devd.c b/src/devd.c
@@ -24,8 +24,11 @@ triggering "add" uevents for each one.
#include <linux/netlink.h>
-#define HOTPLUG "/etc/hotplug"
-#define TRIGGER "/libexec/devd-trigger"
+#ifndef PREFIX
+#define PREFIX
+#endif
+#define HOTPLUG PREFIX "/etc/hotplug"
+#define TRIGGER PREFIX "/libexec/devd-trigger"
#define LEN(a) (sizeof(a) / sizeof((a)[0]))
diff --git a/src/gen.lua b/src/gen.lua
@@ -3,7 +3,11 @@ cflags{
'-std=c11', '-Wall', '-Wextra', '-Wpedantic', '-Wno-unused-parameter',
}
-cc('devd.c', 'pkg/linux-headers/headers', {cflags='$cflags -I $builddir/pkg/linux-headers/include'})
+cc('devd.c', 'pkg/linux-headers/headers', {cflags={
+ '$cflags',
+ '-I $builddir/pkg/linux-headers/include',
+ string.format([[-D 'PREFIX="%s"']], config.prefix),
+}})
file('libexec/applyperms', '755', exe('applyperms', {'applyperms.c'}))
file('libexec/devd-trigger', '755', exe('devd-trigger', {'devd-trigger.c'}))