-- This file is a template for building an ACE file for your own project.
-- Copy this file into your working directory (the directory used to
-- run the SmartEiffel compiler) and edit it.
system
   SYSTEME_NAME
      -- Replace SYSTEM_NAME with the name of the executable file
      -- to be generated for your system. (This is the equivalent of
      -- the -o flag in traditional command line mode.)

root

   ROOT_CLASS: "creation_procedure"
      -- Replace ROOT_CLASS and creation_procedure with the names of the
      -- root class and the root creation procedure for your system.

default -- section of the system

   assertion (require);
      -- The default level of assertion checking for the system.
      -- Choose the appropriate value: boost, no, require, ensure,
      -- invariant, loop, check, all.

   debug (no);
      -- The default debug level for the system.
      -- Choose yes, no, or any "key" you wish.

   trace (no);
      -- The default trace mode for the system. Choose yes or no.

   collect (yes);
       -- Choose yes here to add garbage collector support to your system.
       -- Choose no here to indicate that you don't want the garbage collector
       -- to be included in your system; no is the equivalent of the -no_gc
       -- flag in traditional command line mode.

   case_insensitive (no);
       -- My humble opinion is that you should always write no here.
       -- Yes is the equivalent of the -case_insensitive flag in traditional
       -- command line mode.

   no_style_warning (no);
       -- My humble opinion is that you should always write no here.
       -- Yes is the equivalent of the -no_style_warning flag in traditional
       -- command line mode.

   no_warning (no);
       -- My humble opinion is that you should always write no here.
       -- Yes is the equivalent of the -no_warning flag in traditional
       -- command line mode.

   verbose (no);
       -- The equivalent of the -verbose flag. (Also note that the -verbose
       -- flag is still accepted in ACE file mode.)

   manifest_string_trace (yes);
       -- The equivalent of the -manifest_string_trace flag.

   high_memory_compiler (no);	
       -- The equivalent of the -high_memory_compiler flag.

cluster -- section

   -- The cluster section is an ordered list of clusters. Roughly speaking,
   -- a cluster can be considered as a directory where Eiffel source files
   -- are to be searched for. Thus, the order of this list of clusters is
   -- important because clusters are considered sequentially while
   -- searching for an Eiffel source file. Each cluster is described
   -- as follows:

   optional_cluster_name: "cluster_path_using_system_file_notation_here"
      default -- at this cluster level
         assertion (require)
         debug (no);
         trace (no);
      option -- for this cluster
         assertion (loop) : CLASS_NAME1, CLASS_NAME2;
         assertion (all)  : CLASS_NAME3, CLASS_NAME4;
         -- ...
         debug (yes) : CLASS_NAME1, CLASS_NAME2, ...;
         debug ("KEY") : CLASS_NAME1, CLASS_NAME2, ...;
         -- ...
         trace : CLASS_NAME1, CLASS_NAME2;
         trace : CLASS_NAME3, CLASS_NAME4;
         -- ...
      end -- of one cluster

external -- section for elements written in another language

   -- Directories where to search for C .h files:
   -- external_header_path: "/usr/local/expat/include /usr/local/include/mjpegtools"

   -- External object files to be considered; update and uncomment the
   -- following line:
   -- external_object_files: "foo.o bar.o"

   -- External C files to be considered; update and uncomment the
   -- following line:
   -- external_c_files: "foo.c bar.c"

   -- External C++ files to be considered; update and uncomment the
   -- following line:
   -- external_c_plus_plus_files: "foo.cpp bar.cpp"

   -- The equivalent of the -cecil flag of the traditional command line mode.
   -- To indicate some cecil file to be considered, update and uncomment
   -- the following lines:
   -- cecil ("my_cecil_file1.se")
   -- cecil ("my_cecil_file2.se")
   -- cecil ("my_cecil_file3.se")
   -- ...

   -- External libraries directory path to be considered; update and uncomment
   -- the following line:
   -- external_lib_path: "-L/usr/local -L/foo/bar"

   -- From release -0.74Beta#20 and later SmartEiffel supports linker
   -- external_lib_path. Just leave out the -L:
   -- external_lib_path: "/usr/local /foo/bar"
   -- In this case external_lib_path will work on Windows too.

   -- External libraries to be considered; update and uncomment the following
   -- line:
   -- external_lib: "-lm -lX11"

   -- or linker independent:
   -- external_lib: "m X11"

generate -- section

   no_strip(no);
     -- Yes would mean that you don't want to run "strip" on the generated
     -- executable. This is the equivalent of the -no_strip flag of the
     -- traditional command line mode. (I.e. to use a C level debugger on your
     -- system, you should choose yes here).

   no_split(no);
     -- Yes would mean that you don't want one big single C file for the
     -- complete system. This may be useful for delivery of the most efficient
     -- version. (Some C compilers including gcc can then do better inlining.)

   clean(no);
     -- Yes would mean that you want to remove all generated C files, all
     -- generated object files as well as other temporary files generated
     -- during the compilation process. (See also command clean.)

   -- The equivalent of the -cc flag of the traditional command line mode.
   -- To select a different C compiler from the default, update and uncomment
   -- the following line:
   -- cc : "gcc"

   -- To decide which C compiler options are to be passed, you need to use
   -- this keyword as well as a good understanding of your C compiler.
   -- Update and uncomment the following line:
   -- c_compiler_options : "-O3 -pipe -I/usr/include"

   -- Some options are to be passed only to the linker. Update and uncomment
   -- the following line:
   -- linker_options : "-foo"

   -- For the equivalent of the -no_main flag of the traditional command line
   -- mode, uncomment the following line:
   -- no_main (yes)

   -- For the equivalent of the -gc_info flag of the traditional command line
   -- mode, uncomment the following line:
   -- gc_info (yes)

   -- For the equivalent of the -wedit flag of the traditional command line
   -- mode. To Include support for the Wedit debugger uncomment the following
   -- line:
   -- wedit (yes)


-- Additional information about system environment variables:
--    Inside manifest strings, you are allowed to use system
--    environment variables using the same notation as in the traditional
--    "loadpath.se" files. Actually, this notation is inspired by the
--    traditional UNIX bracketed notation as for example: ${FOO} or ${Bar}
--    or ${SmartEiffel}.
--
-- Additional information about the ${SmartEiffelDirectory} variable:
--    If not explicitely set by the user, the ${SmartEiffelDirectory} variable
--    is automatically computed using the value of the ${SmartEiffel} variable.
--    (Keep in mind that the ${SmartEiffel} variable is mandatory for using
--    SmartEiffel.)  The computed value indicates the SmartEiffel main
--    directory. For example, if the value of ${SmartEiffel} is
--    "/usr/local/lib/SmartEiffel/sys/system.se"
--    the computed value is "/usr/local/lib/SmartEiffel/". This automatically
--    defined variable ${SmartEiffelDirectory} is useful for indicating the
--    location of the SmartEiffel standard library.
--
end
