project Steelcrypt is type Build_Modes is ("Release", "Debug"); Mode : Build_Modes := external ("BUILD", "Debug"); for Main use ( "main.adb", "test_pi16cipher.adb", "test_pi32cipher.adb", "test_pi64cipher.adb", "test_aes_nessie.adb", "test_des_nessie.adb", "test_tdes_nessie.adb", "test_sha2_nessie.adb", "test_sha3_nessie.adb", "test_sha2_nist.adb", "test_sha3_nist.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", "-O2", "-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 for Compiler_Command ("ada") use "gnatmake"; for Compiler_Command ("c") use "gcc"; end Ide; end Steelcrypt;