/tutorial/ace/template.ace
Unknown | 205 lines | 163 code | 42 blank | 0 comment | 0 complexity | a0752dae4765228b152bf20ed2c3c629 MD5 | raw file
1-- This file is a template for building an ACE file for your own project. 2-- Copy this file into your working directory (the directory used to 3-- run the SmartEiffel compiler) and edit it. 4system 5 "SYSTEME_NAME" 6 -- Replace SYSTEM_NAME with the name of the executable file 7 -- to be generated for your system. (This is the equivalent of 8 -- the -o flag in traditional command line mode.) 9 10root 11 12 ROOT_CLASS: creation_procedure 13 -- Replace ROOT_CLASS and creation_procedure with the names of the 14 -- root class and the root creation procedure for your system. 15 16default -- section of the system 17 18 assertion (require); 19 -- The default level of assertion checking for the system. 20 -- Choose the appropriate value: boost, no, require, ensure, 21 -- invariant, loop, check, all. 22 23 assertion_flat_check (no); 24 -- In flat mode each assertion will be executed in no_check mode. 25 -- This means that while checking assertion, no other assertion will 26 -- be checked. This mode has only sense in assertion modes from 27 -- require to debug. 28 29 debug (no); 30 -- The default debug level for the system. 31 -- Choose yes, no, or any "key" you wish. 32 33 trace (no); 34 -- The default trace mode for the system. Choose yes or no. 35 36 collect (yes); 37 -- Choose yes here to add garbage collector support to your system. 38 -- Choose no here to indicate that you don't want the garbage collector 39 -- to be included in your system; no is the equivalent of the -no_gc 40 -- flag in traditional command line mode. 41 42 no_style_warning (no); 43 -- My humble opinion is that you should always write no here. 44 -- Yes is the equivalent of the -no_style_warning flag in traditional 45 -- command line mode. 46 47 no_warning (no); 48 -- My humble opinion is that you should always write no here. 49 -- Yes is the equivalent of the -no_warning flag in traditional 50 -- command line mode. 51 52 verbose (no); 53 -- The equivalent of the -verbose flag. (Also note that the -verbose 54 -- flag is still accepted in ACE file mode.) 55 56 manifest_string_trace (yes); 57 -- The equivalent of the -manifest_string_trace flag. 58 59 high_memory_compiler (no); 60 -- The equivalent of the -high_memory_compiler flag. 61 62 profile (yes); 63 -- The equivalent of the -profile flag. 64 65 relax (yes); 66 -- The equivalent of the -relax flag. 67 68cluster -- section 69 70 -- The cluster section is an ordered list of clusters. Roughly speaking, 71 -- a cluster can be considered as a directory where Eiffel source files 72 -- are to be searched for. Thus, the order of this list of clusters is 73 -- important because clusters are considered sequentially while 74 -- searching for an Eiffel source file. Each cluster is described 75 -- as follows: 76 77 optional_cluster_name: "cluster_path_using_system_file_notation_here" 78 default -- at this cluster level 79 assertion (require) 80 debug (no); 81 trace (no); 82 option -- for this cluster 83 assertion (loop) : CLASS_NAME1, CLASS_NAME2; 84 assertion (all) : CLASS_NAME3, CLASS_NAME4; 85 -- ... 86 debug (yes) : CLASS_NAME1, CLASS_NAME2, ...; 87 debug ("KEY") : CLASS_NAME1, CLASS_NAME2, ...; 88 -- ... 89 trace : CLASS_NAME1, CLASS_NAME2; 90 trace : CLASS_NAME3, CLASS_NAME4; 91 -- ... 92 end -- of one cluster 93 94 -- Pull in SmartEiffel's standard library. Always put this last so 95 -- that you can override options for parts of the library. 96 97 standard: "${path_lib}/loadpath.se" 98 99external -- section for elements written in another language 100 101 -- Directories where to search for C .h files: 102 -- external_header_path: "/usr/local/expat/include /usr/local/include/mjpegtools" 103 104 -- External object files to be considered; update and uncomment the 105 -- following line: 106 -- external_object_files: "foo.o bar.o" 107 108 -- External C files to be considered; update and uncomment the 109 -- following line: 110 -- external_c_files: "foo.c bar.c" 111 112 -- External C++ files to be considered; update and uncomment the 113 -- following line: 114 -- external_c_plus_plus_files: "foo.cpp bar.cpp" 115 116 -- The equivalent of the -cecil flag of the traditional command line mode. 117 -- To indicate some cecil file to be considered, update and uncomment 118 -- the following lines: 119 -- cecil ("my_cecil_file1.se") 120 -- cecil ("my_cecil_file2.se") 121 -- cecil ("my_cecil_file3.se") 122 -- ... 123 124 -- External libraries directory path to be considered; update and uncomment 125 -- the following line: 126 -- external_lib_path: "-L/usr/local -L/foo/bar" 127 128 -- From release -0.74Beta#20 and later SmartEiffel supports linker 129 -- external_lib_path. Just leave out the -L: 130 -- external_lib_path: "/usr/local /foo/bar" 131 -- In this case external_lib_path will work on Windows too. 132 133 -- External libraries to be considered; update and uncomment the following 134 -- line: 135 -- external_lib: "-lm -lX11" 136 137 -- or linker independent: 138 -- external_lib: "m X11" 139 140generate -- section 141 142 no_strip(no); 143 -- Yes would mean that you don't want to run "strip" on the generated 144 -- executable. This is the equivalent of the -no_strip flag of the 145 -- traditional command line mode. (I.e. to use a C level debugger on your 146 -- system, you should choose yes here). 147 148 no_split(no); 149 -- Yes would mean that you want one big single C file for the complete 150 -- system, pinstead of the many small C files produced by default ("no"). 151 -- This may be useful for delivery of the most efficient version. (Some 152 -- C compilers including gcc can then do better inlining.) 153 154 clean(no); 155 -- Yes would mean that you want to remove all generated C files, all 156 -- generated object files as well as other temporary files generated 157 -- during the compilation process. (See also command clean.) 158 159 -- The equivalent of the -cc flag of the traditional command line mode. 160 -- To select a different C compiler from the default, update and uncomment 161 -- the following line: 162 -- cc : "gcc" 163 164 -- To decide which C compiler options are to be passed, you need to use 165 -- this keyword as well as a good understanding of your C compiler. 166 -- Update and uncomment the following line: 167 -- c_compiler_options : "-O3 -pipe -I/usr/include" 168 169 -- Some options are to be passed only to the linker. Update and uncomment 170 -- the following line: 171 -- linker_options : "-foo" 172 173 -- For the equivalent of the -no_main flag of the traditional command line 174 -- mode, uncomment the following line: 175 -- no_main (yes) 176 177 -- For the equivalent of the -gc_info flag of the traditional command line 178 -- mode, uncomment the following line: 179 -- gc_info (yes) 180 181 -- For the equivalent of the -wedit flag of the traditional command line 182 -- mode. To Include support for the Wedit debugger uncomment the following 183 -- line: 184 -- wedit (yes) 185 186 187-- Additional information about system environment variables: 188-- Inside manifest strings, you are allowed to use system 189-- environment variables using the same notation as in the traditional 190-- "loadpath.se" files. Actually, this notation is inspired by the 191-- traditional UNIX bracketed notation as for example: ${FOO} or ${Bar} 192-- or ${SmartEiffel}. 193-- 194-- Additional information about the ${SmartEiffelDirectory} variable: 195-- If not explicitely set by the user, the ${SmartEiffelDirectory} variable 196-- is automatically computed using the value of the ${SmartEiffel} variable. 197-- (Keep in mind that the ${SmartEiffel} variable is mandatory for using 198-- SmartEiffel.) The computed value indicates the SmartEiffel main 199-- directory. For example, if the value of ${SmartEiffel} is 200-- "/usr/local/lib/SmartEiffel/sys/system.se" 201-- the computed value is "/usr/local/lib/SmartEiffel/". This automatically 202-- defined variable ${SmartEiffelDirectory} is useful for indicating the 203-- location of the SmartEiffel standard library. 204-- 205end