build(Makefile): LLD linker, objects/ dir, LTO+linker opts
- Compiler selection: Remove TCC, default to Clang, GCC fallback
- LLD linker: -fuse-ld=lld for all builds (peachwm + peachmsg)
- Object relocation: .o files output to objects/{src,parser,protocols,peachmsg}/
- Clean target: rm -rf objects + transitional stale .o cleanup
- Release: -flto=thin, linker opts (gc-sections, icf=safe, z now, etc.)
- Release: strip both peachwm and peachmsg binaries
- README + CONTRIBUTING: Add LLD dependency, update build docs
- .gitignore: Add objects/ directory
This commit is contained in:
@@ -38,7 +38,8 @@ PeachWM is maintained by [HuntedByTheIRS](https://github.com/HuntedByTheIRS).
|
||||
- xkbcommon
|
||||
- wayland-protocols (compile-time only)
|
||||
- pkg-config (compile-time only)
|
||||
- a C23 compiler — GCC 14+ or Clang 18+ (clang recommended)
|
||||
- a C23 compiler — Clang 18+ (default) or GCC 14+
|
||||
- LLD linker (for linking; part of LLVM)
|
||||
|
||||
Install these (and their `-devel` versions if your distro has separate
|
||||
development packages) and run `make` followed by `doas/sudo make install`,
|
||||
|
||||
Reference in New Issue
Block a user