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), )