raw
smg_comms_genesis       1  -- S.MG, 2018
smg_comms_genesis 2 -- prototype implementation of S.MG communication protocol
smg_comms_genesis 3 -- http://trilema.com/2018/euloras-communication-protocol-restated/
smg_comms_genesis 4
smg_comms_genesis 5 project SMG_comms is
smg_comms_raw_types 6
smg_comms_raw_types 7 type Mode_Type is ("debug", "release");
smg_comms_raw_types 8 Mode : Mode_Type := external ("mode", "release");
smg_comms_raw_types 9
smg_comms_genesis 10 for Languages use ("Ada");
smg_comms_genesis 11
smg_comms_genesis 12 for Source_Dirs use ("src");
smg_comms_genesis 13 for Ignore_Source_Sub_Dirs use (".svn", ".git", "@*");
smg_comms_genesis 14
smg_comms_genesis 15 for Object_Dir use "obj";
smg_comms_genesis 16
smg_comms_raw_types 17 package Compiler is
smg_comms_genesis 18
smg_comms_raw_types 19 case Mode is
smg_comms_raw_types 20 when "debug" =>
smg_comms_raw_types 21 for Switches ("Ada")
smg_comms_raw_types 22 use ("-g");
smg_comms_raw_types 23 when "release" =>
smg_comms_raw_types 24 for Switches ("Ada")
smg_comms_raw_types 25 use ("-O2", "-fdump-scos", "-gnata", "-fstack-check",
smg_comms_raw_types 26 "-gnatyd", "-gnatym",
smg_comms_raw_types 27 "-fdata-sections", "-ffunction-sections", "-gnatwr", "-gnatw.d",
smg_comms_raw_types 28 "-gnatec=" & SMG_Comms'Project_Dir & "restrict.adc");
smg_comms_raw_types 29 end case;
smg_comms_raw_types 30 end Compiler;
smg_comms_raw_types 31
smg_comms_genesis 32 package Builder is
smg_comms_raw_types 33 for Switches ("Ada")
smg_comms_raw_types 34 use ("-nostdlib");
smg_comms_genesis 35 end Builder;
smg_comms_raw_types 36
smg_comms_raw_types 37 package Binder is
smg_comms_raw_types 38 case Mode is
smg_comms_raw_types 39 when "debug" =>
smg_comms_raw_types 40 for Switches ("Ada")
smg_comms_raw_types 41 use ();
smg_comms_raw_types 42 when "release" =>
smg_comms_raw_types 43 for Switches ("Ada")
smg_comms_raw_types 44 use ("-static");
smg_comms_raw_types 45 end case;
smg_comms_raw_types 46 end Binder;
smg_comms_genesis 47
smg_comms_genesis 48 end SMG_comms;