project Test_Repl is
  for Object_Dir use "obj";
  
  type Mode_Type is ("debug", "release");
  Mode : Mode_Type := external ("mode", "release");
    
  for Languages use ("Ada");
  for Source_Dirs use ("src");
  for Exec_Dir use "bin";
  for Main use ("test_repl.adb");
  
  package Compiler is
     case Mode is
        when "debug" =>
           for Switches ("Ada")
             use ("-g");
        when "release" =>
           for Switches ("Ada")
             use ("-O2", "-gnata", "-fstack-check",
                  "-fdata-sections", "-ffunction-sections",
                  "-gnatec=" & Test_Repl'Project_Dir & "src/restrict.adc");
     end case;
  end Compiler;
  
  package Binder is
     case Mode is
        when "debug" =>
           for Switches ("Ada")
             use ();
        when "release" =>
           for Switches ("Ada")
             use ("-static");
     end case;
  end Binder;
  
  package Linker is
     case Mode is
        when "debug" =>
           for Switches ("Ada")
             use ();
        when "release" =>
           for Switches ("Ada")
             use ("-Wl,--gc-sections",
                  "-static");
     end case;
  end Linker;
  
end Test_Repl;
