41 lines
1.4 KiB
Zig
41 lines
1.4 KiB
Zig
const std = @import("std");
|
|
|
|
pub 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 kindle_mod = b.addModule("kindle", .{
|
|
.root_source_file = b.path("src/root.zig"),
|
|
.target = kindle_target,
|
|
.optimize = optimize,
|
|
});
|
|
kindle_mod.linkLibrary(libkindle_sys);
|
|
}
|
|
|
|
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;
|
|
}
|