require 'pathname' require 'rake/clean' require_relative 'rakelib/shared' CLOBBER.include TMP task :default do sh 'make -C build' sh './build/bin/elna' end desc 'Build the bootstrap compiler' task :boot do # MacOS: # --- # CC=gcc-14 CXX=g++-14 \ # CFLAGS="-I/opt/homebrew/Cellar/flex/2.6.4_2/include" \ # CXXFLAGS="-I/opt/homebrew/Cellar/flex/2.6.4_2/include" \ # ../gcc-14.2.0/configure \ # --disable-bootstrap \ # --enable-languages=c,c++,elna \ # --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX15.2.sdk \ # --prefix=$(realpath ../gcc-install) end desc 'Build cross toolchain' task :cross, [:target] do |_, args| args.with_defaults target: 'riscv32-unknown-linux-gnu' Rake::Task['cross:binutils'].invoke args[:target] Rake::Task['cross:gcc1'].invoke args[:target] Rake::Task['cross:headers'].invoke args[:target] Rake::Task['cross:kernel'].invoke args[:target] Rake::Task['cross:glibc'].invoke args[:target] Rake::Task['cross:gcc2'].invoke args[:target] Rake::Task['cross:init'].invoke args[:target] end