ICFP 2007 Contest: https://web.archive.org/web/20090301164728/https://save-endo.cs.uu.nl/
1import sys
2
3# 'lib' or 'bin'
4crate_type = sys.argv[1]
5crate_name = sys.argv[2]
6if crate_type == "bin":
7 input_rs = f"{crate_name}/src/main.rs"
8 outfile = f"out/bin/{crate_name}"
9else:
10 input_rs = f"{crate_name}/src/lib.rs"
11 outfile = f"out/lib/lib{crate_name}.rlib"
12
13dep_crates = sys.argv[3:]
14dep_inputs = " ".join([f"out/lib/lib{dep}.rlib" for dep in dep_crates])
15externs = " ".join([f"--extern {dep}=out/lib/lib{dep}.rlib" for dep in dep_crates])
16
17flags = "--edition=2024 -C opt-level=3 -C embed-bitcode=no -C strip=debuginfo --emit=link"
18
19inputs = f"{crate_name}/src/*.rs"
20print(f": {crate_name}/src/*.rs {dep_inputs} |> rustc --crate-name {crate_name} --crate-type={crate_type} {input_rs} -o %o {externs} {flags} |> {outfile}")