(rule (target byterun.exe) (deps (:include (source_tree include)) (:main src/cli.cpp) (:parser src/parser.cpp) (:analyzer src/analyzer.cpp) (:module_manager src/module_manager.cpp) (:obj types.o interpreter.o) (:runtime ../runtime/runtime.a)) (mode (promote (until-clean))) (action (run g++ -Wall -Wextra -std=c++20 -DWITH_CHECK -Iinclude/ %{main} %{parser} %{analyzer} %{module_manager} %{runtime} %{obj} -o %{target}))) (rule (target types.o) (deps (:include (source_tree include)) (:src src/types.c) (:runtime ../runtime/runtime.a)) (mode (promote (until-clean))) (action (run gcc -Wall -Wextra -Iinclude/ -DWITH_CHECK -c %{src} -o %{target}))) (rule (target interpreter.o) (deps (:include (source_tree include)) (:src src/interpreter.c) (:runtime ../runtime/runtime.a)) (mode (promote (until-clean))) (action (run gcc -Wall -Wextra -Iinclude/ -DWITH_CHECK -c %{src} -o %{target})))