65 lines
1.4 KiB
Python
65 lines
1.4 KiB
Python
arch = "x86_64"
|
|
libc = "glibc"
|
|
|
|
if libc == "glibc":
|
|
env = "gnu"
|
|
elif libc == "musl":
|
|
env = "musl"
|
|
else:
|
|
fail(f"Unknown libc: {libc}")
|
|
|
|
prefix = path("/usr")
|
|
|
|
host_cflags = ["-O2", "-pipe"]
|
|
host_cxxflags = host_cflags + []
|
|
host_ldflags = ["-Wl,-O1", "-Wl,--sort-common", "-Wl,--as-needed"]
|
|
|
|
target_cflags = host_cflags + []
|
|
target_cxxflags = host_cxxflags + []
|
|
target_ldflags = host_ldflags + ["-Wl,-z,now"]
|
|
|
|
if arch == "x86_64":
|
|
flags = [
|
|
"-march=x86-64-v3",
|
|
"-mtune=generic",
|
|
"-fstack-clash-protection",
|
|
"-fstack-protector-strong",
|
|
"-fcf-protection",
|
|
]
|
|
|
|
target_cflags += flags
|
|
target_cxxflags += flags
|
|
target_ldflags += ["-Wl,-z,pack-relative-relocs"]
|
|
|
|
config(
|
|
arch = arch,
|
|
recipes_dir = path("./recipes"),
|
|
host_recipes_dir = path("./host-recipes"),
|
|
container = podman(
|
|
image = "local/builder:latest",
|
|
dockerfile = path("./Dockerfile"),
|
|
),
|
|
|
|
target_arch = arch,
|
|
target_triple = f"{arch}-orchid-linux-{env}",
|
|
|
|
libc = libc,
|
|
|
|
prefix = prefix,
|
|
bindir = prefix / "bin",
|
|
sbindir = prefix / "bin",
|
|
libdir = prefix / "lib",
|
|
libexecdir = prefix / "libexec",
|
|
includedir = prefix / "include",
|
|
sysconfdir = path("/etc"),
|
|
localstatedir = path("/var"),
|
|
|
|
host_cflags = " ".join(host_cflags),
|
|
host_cxxflags = " ".join(host_cxxflags),
|
|
host_ldflags = " ".join(host_ldflags),
|
|
|
|
cflags = " ".join(target_cflags),
|
|
cxxflags = " ".join(target_cxxflags),
|
|
ldflags = " ".join(target_ldflags),
|
|
)
|