kindle/build.zig
2025-05-21 16:52:12 +02:00

47 lines
1.5 KiB
Zig

const std = @import("std");
const kindle_target_query: std.Target.Query = .{
.cpu_arch = .arm,
.cpu_model = std.Target.Query.CpuModel{
.explicit = &std.Target.arm.cpu.cortex_a8,
},
.abi = .gnueabihf,
.os_tag = .linux,
.glibc_version = std.SemanticVersion.parse("2.12.0") catch unreachable,
.dynamic_linker = std.Target.DynamicLinker.init("/lib/ld-linux.so.3"),
};
pub fn build(b: *std.Build) void {
const kindle_target = b.resolveTargetQuery(kindle_target_query);
const optimize = b.standardOptimizeOption(.{});
const libkindle_sys = buildLibkindleSys(b, kindle_target, optimize);
b.installArtifact(libkindle_sys);
const lib_mod = b.createModule(.{
.root_source_file = b.path("src/root.zig"),
.target = kindle_target,
.optimize = optimize,
});
const lib = b.addLibrary(.{
.linkage = .static,
.name = "kindle",
.root_module = lib_mod,
});
_ = lib;
}
fn buildLibkindleSys(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) *std.Build.Step.Compile {
const getauxval_backport_dep = b.dependency("getauxval_backport", .{
.target = target,
.optimize = optimize,
.elf64 = false,
});
const libgetauxval_backport = getauxval_backport_dep.artifact("getauxval_backport");
const libkindle_sys = @import("libs/kindle_sys.zig").create(b, target, optimize);
libkindle_sys.linkLibrary(libgetauxval_backport);
return libkindle_sys;
}