project Default is type OS_Kind is ("Windows", "Linux_Or_Mac"); OS : OS_Kind := external ("OS", "Linux_Or_Mac"); for Languages use ("C", "Ada"); for Source_Dirs use (".", "../../", "../../src", "../../wolfcrypt/src"); -- Don't build the tls client application because it makes use -- of the Secondary Stack due to usage of the Ada.Command_Line -- package. All other Ada source code does not use the secondary stack. for Excluded_Source_Files use ("tls_client_main.adb", "tls_client.ads", "tls_client.adb"); for Object_Dir use "obj"; for Main use ("tls_server_main.adb"); package Naming is for Spec_Suffix ("C") use ".h"; end Naming; package Builder is for Global_Configuration_Pragmas use "gnat.adc"; end Builder; package Compiler is for Switches ("C") use ("-DWOLFSSL_USER_SETTINGS", -- Use the user_settings.h file. "-Wno-pragmas", "-Wall", "-Wextra", "-Wunknown-pragmas", "--param=ssp-buffer-size=1", "-Waddress", "-Warray-bounds", "-Wbad-function-cast", "-Wchar-subscripts", "-Wcomment", "-Wfloat-equal", "-Wformat-security", "-Wformat=2", "-Wmaybe-uninitialized", "-Wmissing-field-initializers", "-Wmissing-noreturn", "-Wmissing-prototypes", "-Wnested-externs", "-Wnormalized=id", "-Woverride-init", "-Wpointer-arith", "-Wpointer-sign", "-Wshadow", "-Wsign-compare", "-Wstrict-overflow=1", "-Wstrict-prototypes", "-Wswitch-enum", "-Wundef", "-Wunused", "-Wunused-result", "-Wunused-variable", "-Wwrite-strings", "-fwrapv"); for Switches ("Ada") use ("-g"); end Compiler; package Linker is case OS is when "Windows" => for Switches ("Ada") use ("-lm", -- To include the math library (used by WolfSSL). "-lcrypt32"); -- Needed on Windows. when "Linux_Or_Mac" => for Switches ("Ada") use ("-lm"); -- To include the math library (used by WolfSSL). end case; end Linker; package Binder is for Switches ("Ada") use ("-Es"); -- To include stack traces. end Binder; end Default;