diff --git a/.gitignore b/.gitignore index 7ae1a83..8921232 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.ali *.o build +obj testrunner xmlrunner diff --git a/Makefile b/Makefile index 6b16642..c01cdca 100644 --- a/Makefile +++ b/Makefile @@ -4,19 +4,22 @@ TESTRUNNER=testrunner PROJECTGPR=async.gpr +release: pre syntax + $(GPRBUILD) -p $(PROJECTGPR) -Xmode=release + lib: pre $(GPRBUILD) -p $(PROJECTGPR) -syntax: pre +syntax: pre lib gnatmake -gnatc -gnat05 -P $(PROJECTGPR) clean: pre for d in tests/*; do echo "> $$d"; (cd $$d && make clean); done $(GPRCLEAN) $(PROJECTGPR) - rm -rf build + rm -rf obj pre: - mkdir -p build + mkdir -p obj/debug obj/release test: pre lib for d in tests/*; do echo "> $$d"; (cd $$d && make run); done diff --git a/async.gpr b/async.gpr index 72682ac..1d17ff8 100644 --- a/async.gpr +++ b/async.gpr @@ -1,12 +1,22 @@ project Async is + for Languages use ("Ada"); for Source_Dirs use ("src"); - for Object_Dir use "build"; + for Object_Dir use "obj/" & external ("mode", "debug"); for Exec_Dir use "."; + type Mode_Type is ("debug", "release"); + Mode : Mode_Type := external ("mode", "debug"); + package Compiler is - for Default_Switches("ada") use - ("-O2", "-gnat05"); + case Mode is + when "debug" => + for Default_Switches ("Ada") use + ("-g", "-gnat05"); + when "release" => + for Default_Switches ("Ada") use + ("-O2", "-gnat05"); + end case; end Compiler; end Async;