project Steelcrypt is type Build_Modes is ("Release", "Debug"); Mode : Build_Modes := external ("BUILD", "Debug"); for Main use ("main.adb", "test_sha2.adb", "test_sha3.adb", "test_sha224.adb", "test_sha256.adb", "test_sha384.adb", "test_sha512.adb", "test_keccak.adb"); case Mode is when "Release" => for Source_Dirs use ("src/**"); for Object_Dir use "obj_release"; when "Debug" => for Source_Dirs use ("src/**"); for Object_Dir use "obj_debug"; end case; package Compiler is case Mode is when "Release" => for Default_Switches ("ada") use ("-gnatQ", "-gnatn", "-O2", "-gnat05"); when "Debug" => for Default_Switches ("ada") use ("-g", "-gnato", "-gnatwa", "-gnatQ", "-gnat05"); end case; end Compiler; package Builder is case Mode is when "Release" => for Default_Switches ("ada") use (); when "Debug" => for Default_Switches ("ada") use ("-g"); end case; end Builder; package Ide is end Ide; end Steelcrypt;