add anoia.net.constants for SOCK_{STREAM,DGRAM} etc

we use an ugly bit of C preprocessor to get the values from
header files, because certain constants are different on MIPS
than on other architectures
This commit is contained in:
Daniel Barlow 2024-04-26 16:43:09 +01:00
parent 9795f03da4
commit 74cf3e0711
3 changed files with 19 additions and 3 deletions

View file

@ -1,10 +1,14 @@
default: fs.lua init.lua nl.lua svc.lua default: fs.lua init.lua nl.lua svc.lua net/constants.lua
test: test:
ln -s . anoia ln -s . anoia
fennel test.fnl fennel test.fnl
fennel test-svc.fnl fennel test-svc.fnl
net/constants.lua: net/constants.c
$(CC) -imacros sys/socket.h -imacros linux/netlink.h -E -P - < net/constants.c | sed 's/ *$$//g' | cat -s > net/constants.lua
%.lua: %.fnl %.lua: %.fnl
fennel --compile $< > $@ fennel --compile $< > $@

View file

@ -4,13 +4,14 @@
, linotify , linotify
, lua , lua
, lualinux , lualinux
, cpio
}: }:
let pname = "anoia"; let pname = "anoia";
in stdenv.mkDerivation { in stdenv.mkDerivation {
inherit pname; inherit pname;
version = "0.1"; version = "0.1";
src = ./.; src = ./.;
nativeBuildInputs = [ fennel ]; nativeBuildInputs = [ fennel cpio ];
buildInputs = with lua.pkgs; [ linotify lualinux ]; buildInputs = with lua.pkgs; [ linotify lualinux ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -18,7 +19,7 @@ in stdenv.mkDerivation {
installPhase = '' installPhase = ''
mkdir -p "$out/share/lua/${lua.luaversion}/${pname}" mkdir -p "$out/share/lua/${lua.luaversion}/${pname}"
cp *.lua "$out/share/lua/${lua.luaversion}/${pname}" find . -name \*.lua | cpio -p -d "$out/share/lua/${lua.luaversion}/${pname}"
mkdir -p "$dev/share/lua/${lua.luaversion}/${pname}" mkdir -p "$dev/share/lua/${lua.luaversion}/${pname}"
cp assert.fnl "$dev/share/lua/${lua.luaversion}/${pname}" cp assert.fnl "$dev/share/lua/${lua.luaversion}/${pname}"

View file

@ -0,0 +1,11 @@
#define MACRO(c) [#c] = c,
return {
MACRO(SOCK_STREAM)
MACRO(SOCK_DGRAM)
MACRO(SOCK_RAW)
MACRO(AF_LOCAL)
MACRO(AF_NETLINK)
MACRO(NETLINK_KOBJECT_UEVENT)
}