#pragma preprocessor directives.
CScout uses the following pragmas:
#pragma echo "STRING"Example:
#pragma echo "Processing workspace date\n"
#pragma ro_prefix "STRING"Example:
#pragma ro_prefix "C:\gcc"
#pragma project "STRING"Example:
#pragma project "date"
#pragma block_enterblock_enter will enter the project scope
(linkage unit); the second encountered nested
block_enter will enter the file scope
(compilation unit).
#pragma block_exitblock_enter pragmas should match the number of
block_exit pragmas and there should never be more
than two block_enter pragmas in effect.
#pragma process "STRING"Example:
#pragma process "date.d"
#pragma pushd "STRING"Example:
#pragma pushd "cp"
#pragma popd pushd pragmas should match the number of
popd pragmas.
#pragma includepath "STRING"Example:
#pragma includepath "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include"
#pragma clear_include
#pragma clear_defines #define C preprocessor directive.
config LINT
make depend)
and compile
(make).
This step is used to create all automatically generated C and header files.
Also during this step note the include path used, in order to provide
CScout with the same specification.
rm *.o).
.include "$S/conf/kern.pre.mk"
The code below was added after the line above
NORMAL_C= echo '\#pragma echo "Processing file ${.IMPSRC}\n"' >>kernel.cs ;\
echo '\#pragma block_enter' >>kernel.cs ;\
echo '\#pragma clear_defines' >>kernel.cs ;\
echo '\#pragma clear_include' >>kernel.cs ;\
echo '\#include "cscout_defs.h"' >>kernel.cs ;\
for i in $(INCLUDES) ; \
do \
case $$i in \
-nostdinc) continue ;; \
-I-) continue ;; \
esac ; \
i=`echo $$i | sed 's/-I//'` ; \
echo '\#pragma includepath "'$$i'"' >>kernel.cs ; \
done ; \
echo '\#define _KERNEL 1' >>kernel.cs ;\
echo '\#pragma process "opt_global.h"' >>kernel.cs ;\
echo '\#pragma process "${.IMPSRC}"' >>kernel.cs ;\
echo '\#pragma block_exit' >>kernel.cs ;\
echo '\#pragma echo "Done processing file ${.IMPSRC}\n"' >>kernel.cs
cscout_incs.h file for each different architecture.
#pragma echo "Processing workspace FreeBSD kernel\n" #pragma echo "Entering directory sys/i386/compile/LINT\n" #pragma pushd "sys/i386/compile/LINT" #pragma echo "Processing project i386\n" #pragma project "i386" #pragma block_enter #include "kernel.cs" #pragma echo "Exiting directory sys/i386/compile/LINT\n" #pragma popd #pragma echo "Done processing project i386\n" #pragma block_exit #pragma echo "Entering directory sys/amd64/compile/GENERIC\n" // [...] // and so on for all architectures // [...] #pragma echo "Exiting directory sys/sparc64/compile/LINT\n" #pragma popd #pragma echo "Done processing project sparc64\n" #pragma block_exitNote that the
block_enter and
block_exit pragmas
are furnished by this top-level file.
CScout HomeFile MetricsWritable FilesNumber of files: 4310
|
| Contents | « Previous Next (CScout Execution) » |