project prostringy is type Mode_Type is ("debug", "release"); -- all possible values Mode : Mode_Type := external ("mode", "debug"); -- a typed variable for Source_Dirs use ("src/**"); case Mode is when "debug" => for Object_Dir use "debug/obj"; when "release" => for Object_Dir use "release/obj"; end case; case Mode is when "debug" => for Exec_Dir use "debug"; when "release" => for Exec_Dir use "release"; -- "." means this directory end case; for Main use ("packdemo"); package Compiler is case Mode is when "debug" => for Default_Switches ("ada") use ("-gnat12", "-g"); when "release" => for Switches ("Ada") use ("-O2"); --s ? -- s generate assembler end case; --for Local_Configuration_Pragmas use "src/pragmas"; end Compiler; package Builder is case Mode is when "debug" => for Default_Switches ("ada") use ("-gnat12", "-g"); when "release" => for Switches ("Ada") use ("-O2"); end case; end Builder; package Linker is case Mode is when "debug" => for Default_Switches ("ada") use ("-gnat12", "-g"); when "release" => for Switches ("Ada") use ("-O2"); end case; end Linker; end prostringy;