liblinux++

A hosted C++ runtime without any libc.
git clone git://henryandlizzy.uk/liblinux++
Log | Files | Refs

Tupfile (1254B)


      1 CXXFLAGS = -std=c++23 -Wall -Werror -Wextra -Wpedantic -g -fno-exceptions -fno-rtti -fno-asynchronous-unwind-tables -fno-builtin -fno-pic -fno-pie -fno-stack-protector -fdiagnostics-color=always -nostdinc -nostdlibinc -nostdinc++
      2 LDFLAGS = --gc-sections
      3 
      4 : |> ./errno.sh > %o |> errno.hpp
      5 
      6 !cpp.aarch64 = | errno.hpp |> ^j^ clang++ --target=aarch64 $(CXXFLAGS) -c -o %o %f |>
      7 !cpp.x86_64 = | errno.hpp |> ^j^ clang++ --target=x86_64 $(CXXFLAGS) -c -o %o %f |>
      8 
      9 : foreach *.cpp ^cxa.cpp |> !cpp.aarch64 |> obj/%B.aarch64.o {objs-aarch64}
     10 : foreach *.cpp ^cxa.cpp |> !cpp.x86_64 |> obj/%B.x86_64.o {objs-x86_64}
     11 : cxa.cpp |> !cpp.aarch64 |> obj/%B.aarch64.o
     12 : cxa.cpp |> !cpp.x86_64 |> obj/%B.x86_64.o
     13 
     14 : foreach *.S |> clang --target=%B -c -o %o %f |> obj/%B.o 
     15 
     16 !ld.aarch64 = | obj/cxa.aarch64.o obj/aarch64.o aarch64.ld |> ld.lld -m aarch64elf $(LDFLAGS) -o %o --script aarch64.ld %f obj/cxa.aarch64.o obj/aarch64.o |>
     17 !ld.x86_64 = | obj/cxa.x86_64.o obj/x86_64.o x86_64.ld |> ld.lld -m elf_x86_64 $(LDFLAGS) -o %o --script x86_64.ld %f obj/cxa.x86_64.o obj/x86_64.o |>
     18 
     19 : foreach {objs-aarch64} |> !ld.aarch64 |> bin/%B {bin-aarch64}
     20 : foreach {objs-x86_64} |> !ld.x86_64 |> bin/%B {bin-x86_64}
     21 
     22 run ./gen.sh
     23 
     24 : bin/writer.aarch64 |> %f |>
     25 
     26 .gitignore