1
2(********************************************************************)
3(*                                                                  *)
4(*  confval.sd7   Show config values of C compiler and runtime.     *)
5(*  Copyright (C) 2019  Thomas Mertes                               *)
6(*                                                                  *)
7(*  This program is free software; you can redistribute it and/or   *)
8(*  modify it under the terms of the GNU General Public License as  *)
9(*  published by the Free Software Foundation; either version 2 of  *)
10(*  the License, or (at your option) any later version.             *)
11(*                                                                  *)
12(*  This program is distributed in the hope that it will be useful, *)
13(*  but WITHOUT ANY WARRANTY; without even the implied warranty of  *)
14(*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   *)
15(*  GNU General Public License for more details.                    *)
16(*                                                                  *)
17(*  You should have received a copy of the GNU General Public       *)
18(*  License along with this program; if not, write to the           *)
19(*  Free Software Foundation, Inc., 51 Franklin Street,             *)
20(*  Fifth Floor, Boston, MA  02110-1301, USA.                       *)
21(*                                                                  *)
22(********************************************************************)
23
24
25$ include "seed7_05.s7i";
26  include "utf8.s7i";
27  include "osfiles.s7i";
28  include "cc_conf.s7i";
29
30
31const func array string: noEmptyArray (in array string: anArray) is func
32  result
33    var array string: resultArray is [] ("");
34  begin
35    if length(anArray) <> 0 then
36      resultArray := anArray;
37    end if;
38  end func;
39
40
41const proc: main is func
42  begin
43    OUT := STD_UTF8_OUT;
44    writeln("WITH_STRI_CAPACITY:            " <& ccConf.WITH_STRI_CAPACITY);
45    writeln("ALLOW_STRITYPE_SLICES:         " <& ccConf.ALLOW_STRITYPE_SLICES);
46    writeln("ALLOW_BSTRITYPE_SLICES:        " <& ccConf.ALLOW_BSTRITYPE_SLICES);
47    writeln("RSHIFT_DOES_SIGN_EXTEND:       " <& ccConf.RSHIFT_DOES_SIGN_EXTEND);
48    writeln("TWOS_COMPLEMENT_INTTYPE:       " <& ccConf.TWOS_COMPLEMENT_INTTYPE);
49    writeln("LITTLE_ENDIAN_INTTYPE:         " <& ccConf.LITTLE_ENDIAN_INTTYPE);
50    writeln("FLOAT_COMPARISON_OKAY:         " <& ccConf.FLOAT_COMPARISON_OKAY);
51    writeln("POW_FUNCTION_OKAY:             " <& ccConf.POW_FUNCTION_OKAY);
52    writeln("FMOD_FUNCTION_OKAY:            " <& ccConf.FMOD_FUNCTION_OKAY);
53    writeln("SQRT_FUNCTION_OKAY:            " <& ccConf.SQRT_FUNCTION_OKAY);
54    writeln("EXP_FUNCTION_OKAY:             " <& ccConf.EXP_FUNCTION_OKAY);
55    writeln("LOG_FUNCTION_OKAY:             " <& ccConf.LOG_FUNCTION_OKAY);
56    writeln("LOG10_FUNCTION_OKAY:           " <& ccConf.LOG10_FUNCTION_OKAY);
57    writeln("LOG2_FUNCTION_OKAY:            " <& ccConf.LOG2_FUNCTION_OKAY);
58    writeln("LDEXP_FUNCTION_OKAY:           " <& ccConf.LDEXP_FUNCTION_OKAY);
59    writeln("FREXP_FUNCTION_OKAY:           " <& ccConf.FREXP_FUNCTION_OKAY);
60    writeln("HAS_SIGSETJMP:                 " <& ccConf.HAS_SIGSETJMP);
61    writeln("CHECK_INT_DIV_BY_ZERO:         " <& ccConf.CHECK_INT_DIV_BY_ZERO);
62    writeln("CHECK_INT_DIV_ZERO_BY_ZERO:    " <& ccConf.CHECK_INT_DIV_ZERO_BY_ZERO);
63    writeln("CHECK_INT_REM_BY_ZERO:         " <& ccConf.CHECK_INT_REM_BY_ZERO);
64    writeln("CHECK_INT_REM_ZERO_BY_ZERO:    " <& ccConf.CHECK_INT_REM_ZERO_BY_ZERO);
65    writeln("FLOAT_ZERO_DIV_ERROR:          " <& ccConf.FLOAT_ZERO_DIV_ERROR);
66    writeln("CHECK_FLOAT_DIV_BY_ZERO:       " <& ccConf.CHECK_FLOAT_DIV_BY_ZERO);
67    writeln("HAS_EXP2:                      " <& ccConf.HAS_EXP2);
68    writeln("HAS_EXP10:                     " <& ccConf.HAS_EXP10);
69    writeln("HAS_EXPM1:                     " <& ccConf.HAS_EXPM1);
70    writeln("HAS_CBRT:                      " <& ccConf.HAS_CBRT);
71    writeln("HAS_LOG1P:                     " <& ccConf.HAS_LOG1P);
72    writeln("LIMITED_CSTRI_LITERAL_LEN:     " <& ccConf.LIMITED_CSTRI_LITERAL_LEN);
73    writeln("SWITCH_WORKS_FOR_INT64TYPE:    " <& ccConf.SWITCH_WORKS_FOR_INT64TYPE);
74    writeln("CC_SOURCE_UTF8:                " <& ccConf.CC_SOURCE_UTF8);
75    writeln("USE_WMAIN:                     " <& ccConf.USE_WMAIN);
76    writeln("USE_WINMAIN:                   " <& ccConf.USE_WINMAIN);
77    writeln("FLOATTYPE_DOUBLE:              " <& ccConf.FLOATTYPE_DOUBLE);
78    writeln("INTTYPE_SIZE:                  " <& ccConf.INTTYPE_SIZE);
79    writeln("FLOATTYPE_SIZE:                " <& ccConf.FLOATTYPE_SIZE);
80    writeln("POINTER_SIZE:                  " <& ccConf.POINTER_SIZE);
81    writeln("GENERIC_SIZE:                  " <& ccConf.GENERIC_SIZE);
82    writeln("INT_SIZE:                      " <& ccConf.INT_SIZE);
83    writeln("LONG_SIZE:                     " <& ccConf.LONG_SIZE);
84    writeln("FLOATTYPE_MANTISSA_BITS:       " <& ccConf.FLOATTYPE_MANTISSA_BITS);
85    writeln("FLOATTYPE_EXPONENT_OFFSET:     " <& ccConf.FLOATTYPE_EXPONENT_OFFSET);
86    writeln("INT_RANGE_IN_FLOATTYPE_MAX:    " <& ccConf.INT_RANGE_IN_FLOATTYPE_MAX);
87    writeln("MINIMUM_TRUNC_ARGUMENT:        " <& ccConf.MINIMUM_TRUNC_ARGUMENT);
88    writeln("MAXIMUM_TRUNC_ARGUMENT:        " <& ccConf.MAXIMUM_TRUNC_ARGUMENT);
89    writeln("PIXEL_RED_MASK                 " <& ccConf.PIXEL_RED_MASK radix 16);
90    writeln("PIXEL_GREEN_MASK               " <& ccConf.PIXEL_GREEN_MASK radix 16);
91    writeln("PIXEL_BLUE_MASK                " <& ccConf.PIXEL_BLUE_MASK radix 16);
92    writeln("RGB_TO_PIXEL_FLAG_NAME         " <& ccConf.RGB_TO_PIXEL_FLAG_NAME);
93    writeln("RAND_MULTIPLIER                " <& ccConf.RAND_MULTIPLIER);
94    writeln("RAND_INCREMENT                 " <& ccConf.RAND_INCREMENT);
95    writeln("BOOLTYPE:                      " <& ccConf.BOOLTYPE);
96    writeln("INT32TYPE:                     " <& ccConf.INT32TYPE);
97    writeln("UINT32TYPE:                    " <& ccConf.UINT32TYPE);
98    writeln("INT64TYPE:                     " <& ccConf.INT64TYPE);
99    writeln("UINT64TYPE:                    " <& ccConf.UINT64TYPE);
100    writeln("INT128TYPE:                    " <& ccConf.INT128TYPE);
101    writeln("UINT128TYPE:                   " <& ccConf.UINT128TYPE);
102    writeln("INT32TYPE_LITERAL_SUFFIX:      " <& ccConf.INT32TYPE_LITERAL_SUFFIX);
103    writeln("INT64TYPE_LITERAL_SUFFIX:      " <& ccConf.INT64TYPE_LITERAL_SUFFIX);
104    writeln("MACRO_DEFS:                    " <& literal(ccConf.MACRO_DEFS));
105    writeln("OVERFLOW_SIGNAL:               " <& ccConf.OVERFLOW_SIGNAL);
106    writeln("BUILTIN_ADD_OVERFLOW:          " <& ccConf.BUILTIN_ADD_OVERFLOW);
107    writeln("BUILTIN_SUB_OVERFLOW:          " <& ccConf.BUILTIN_SUB_OVERFLOW);
108    writeln("BUILTIN_MULT_OVERFLOW:         " <& ccConf.BUILTIN_MULT_OVERFLOW);
109    writeln("OBJECT_FILE_EXTENSION:         " <& ccConf.OBJECT_FILE_EXTENSION);
110    writeln("LIBRARY_FILE_EXTENSION:        " <& ccConf.LIBRARY_FILE_EXTENSION);
111    writeln("EXECUTABLE_FILE_EXTENSION:     " <& ccConf.EXECUTABLE_FILE_EXTENSION);
112    writeln("LINKED_PROGRAM_EXTENSION:      " <& ccConf.LINKED_PROGRAM_EXTENSION);
113    writeln("CC_ENVIRONMENT_INI:            " <& ccConf.CC_ENVIRONMENT_INI);
114    writeln("C_COMPILER:                    " <& ccConf.C_COMPILER);
115    writeln("CPLUSPLUS_COMPILER:            " <& ccConf.CPLUSPLUS_COMPILER);
116    writeln("CALL_C_COMPILER_FROM_SHELL:    " <& ccConf.CALL_C_COMPILER_FROM_SHELL);
117    writeln("C_COMPILER_VERSION:            " <& ccConf.C_COMPILER_VERSION);
118    writeln("CC_OPT_DEBUG_INFO:             " <& join(noEmptyArray(ccConf.CC_OPT_DEBUG_INFO),    " "));
119    writeln("CC_OPT_LINK_TIME_OPTIMIZATION: " <& ccConf.CC_OPT_LINK_TIME_OPTIMIZATION);
120    writeln("CC_OPT_NO_WARNINGS:            " <& ccConf.CC_OPT_NO_WARNINGS);
121    writeln("CC_OPT_OPTIMIZE_1:             " <& join(noEmptyArray(ccConf.CC_OPT_OPTIMIZE_1),    " "));
122    writeln("CC_OPT_OPTIMIZE_2:             " <& join(noEmptyArray(ccConf.CC_OPT_OPTIMIZE_2),    " "));
123    writeln("CC_OPT_OPTIMIZE_3:             " <& join(noEmptyArray(ccConf.CC_OPT_OPTIMIZE_3),    " "));
124    writeln("CC_OPT_TRAP_OVERFLOW:          " <& ccConf.CC_OPT_TRAP_OVERFLOW);
125    writeln("CC_OPT_VERSION_INFO:           " <& ccConf.CC_OPT_VERSION_INFO);
126    writeln("CC_FLAGS:                      " <& join(noEmptyArray(ccConf.CC_FLAGS), " "));
127    writeln("CC_ERROR_FILEDES:              " <& ccConf.CC_ERROR_FILEDES);
128    writeln("CC_VERSION_INFO_FILEDES:       " <& ccConf.CC_VERSION_INFO_FILEDES);
129    writeln("LINKER_OPT_DEBUG_INFO:         " <& ccConf.LINKER_OPT_DEBUG_INFO);
130    writeln("LINKER_OPT_LTO_MANDATORY:      " <& ccConf.LINKER_OPT_LTO_MANDATORY);
131    writeln("LINKER_OPT_NO_DEBUG_INFO:      " <& ccConf.LINKER_OPT_NO_DEBUG_INFO);
132    writeln("LINKER_OPT_OUTPUT_FILE:        " <& ccConf.LINKER_OPT_OUTPUT_FILE);
133    writeln("LINKER_OPT_SPECIAL_LIB:        " <& ccConf.LINKER_OPT_SPECIAL_LIB);
134    writeln("LINKER_FLAGS:                  " <& join(noEmptyArray(ccConf.LINKER_FLAGS), " "));
135    writeln("SYSTEM_LIBS:                   " <& join(noEmptyArray(ccConf.SYSTEM_LIBS),          " "));
136    writeln("SYSTEM_BIGINT_LIBS:            " <& join(noEmptyArray(ccConf.SYSTEM_BIGINT_LIBS),   " "));
137    writeln("SYSTEM_CONSOLE_LIBS:           " <& join(noEmptyArray(ccConf.SYSTEM_CONSOLE_LIBS),  " "));
138    writeln("SYSTEM_DATABASE_LIBS:          " <& join(noEmptyArray(ccConf.SYSTEM_DATABASE_LIBS), " "));
139    writeln("SYSTEM_DRAW_LIBS:              " <& join(noEmptyArray(ccConf.SYSTEM_DRAW_LIBS),     " "));
140    writeln("SYSTEM_MATH_LIBS:              " <& join(noEmptyArray(ccConf.SYSTEM_MATH_LIBS),     " "));
141    writeln("SEED7_LIB:                     " <& ccConf.SEED7_LIB);
142    writeln("DRAW_LIB:                      " <& ccConf.DRAW_LIB);
143    writeln("CONSOLE_LIB:                   " <& ccConf.CONSOLE_LIB);
144    writeln("DATABASE_LIB:                  " <& ccConf.DATABASE_LIB);
145    writeln("COMP_DATA_LIB:                 " <& ccConf.COMP_DATA_LIB);
146    writeln("COMPILER_LIB:                  " <& ccConf.COMPILER_LIB);
147    writeln("SPECIAL_LIB:                   " <& ccConf.SPECIAL_LIB);
148    writeln("S7_LIB_DIR:                    " <& ccConf.S7_LIB_DIR);
149    writeln("VERSION_REVISION_LEVEL:        " <& ccConf.VERSION_REVISION_LEVEL);
150    writeln("REDIRECT_FILEDES_1:            " <& ccConf.REDIRECT_FILEDES_1);
151    writeln("REDIRECT_FILEDES_2:            " <& ccConf.REDIRECT_FILEDES_2);
152    writeln("NULL_DEVICE:                   " <& ccConf.NULL_DEVICE);
153    writeln("INTTYPE_LITERAL_SUFFIX:        " <& ccConf.INTTYPE_LITERAL_SUFFIX);
154    writeln("INT_MIN:                       " <& ccConf.INT_MIN);
155    writeln("INT_MAX:                       " <& ccConf.INT_MAX);
156  end func;
157