Generator frontend scripts (./libcevap_gen.sh to be run in libcevap/)
This commit is contained in:
parent
99fceeb9e4
commit
9b552e9db6
@ -862,53 +862,10 @@ Notes:
|
|||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
Generate C stubs:
|
Generate C stubs:
|
||||||
test_dir=...where_to_generate_the_stub...
|
( cd libcevap ; ./libcevap_gen.sh )
|
||||||
model_dir=...where_to_find_the_model_file_libdax_model.txt...
|
|
||||||
xtr_dir=...where_to_find_the_extractor_script_extract_cgen_input.sh...
|
|
||||||
cgen_dir=...where_to_find_the_cgen_binary...
|
|
||||||
|
|
||||||
/bin/rm "$test_dir"/a.out
|
Compile test:
|
||||||
cd "$test_dir"/
|
( cd libcevap ; rm cc -g main.c cevap*.c smem.c 2>&1 | less )
|
||||||
cat "$model_dir"/libdax_model.txt | \
|
|
||||||
"$xtr_dir"/extract_cgen_input.sh | \
|
|
||||||
"$cgen_dir"/cgen -smem_local -ansi -overwrite -global_include cevap_global.h
|
|
||||||
|
|
||||||
Compile (a copy of smem.[ch] has to be placed in $test_dir) :
|
|
||||||
( cd "$test_dir" ; cc -g -c *.c 2>&1 | less )
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
|
||||||
"$xtr_dir"/extract_cgen_input.sh :
|
|
||||||
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
copy_mode=0
|
|
||||||
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
read line
|
|
||||||
if test "$copy_mode" = "0"
|
|
||||||
then
|
|
||||||
if echo " $line" | grep '^ Cgen=' >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
copy_mode=1
|
|
||||||
if echo " $line" | grep '^ Cgen=..' >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
echo " $line" | sed -e 's/^ Cgen=//'
|
|
||||||
fi
|
|
||||||
elif echo " $line" | grep '^ =end Model=' >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if test " $line" = " @"
|
|
||||||
then
|
|
||||||
copy_mode=0
|
|
||||||
echo "@"
|
|
||||||
else
|
|
||||||
echo " $line" | sed -e 's/^ //'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
30
libcevap/extract_cgen_input.sh
Executable file
30
libcevap/extract_cgen_input.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
copy_mode=0
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
read line
|
||||||
|
if test "$copy_mode" = "0"
|
||||||
|
then
|
||||||
|
if echo " $line" | grep '^ Cgen=' >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
copy_mode=1
|
||||||
|
if echo " $line" | grep '^ Cgen=..' >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo " $line" | sed -e 's/^ Cgen=//'
|
||||||
|
fi
|
||||||
|
elif echo " $line" | grep '^ =end Model=' >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if test " $line" = " @"
|
||||||
|
then
|
||||||
|
copy_mode=0
|
||||||
|
echo "@"
|
||||||
|
else
|
||||||
|
echo " $line" | sed -e 's/^ //'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
16
libcevap/libcevap_gen.sh
Executable file
16
libcevap/libcevap_gen.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
test_dir=.
|
||||||
|
model_file=../doc/libdax_model.txt
|
||||||
|
xtr_dir=.
|
||||||
|
cgen_dir=.
|
||||||
|
# cgen_dir=~/projekte/cdrskin_dir/libburn-develop/libcevap
|
||||||
|
|
||||||
|
cd "$test_dir" || exit 1
|
||||||
|
test -e smem.h || exit 1
|
||||||
|
|
||||||
|
cat "$model_file" | \
|
||||||
|
"$xtr_dir"/extract_cgen_input.sh | \
|
||||||
|
"$cgen_dir"/cgen -smem_local -ansi -global_include cevap_global.h \
|
||||||
|
-overwrite "$@"
|
||||||
|
|
24
libcevap/main.c
Normal file
24
libcevap/main.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "cevapi.h"
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
struct CevapI *cevap= NULL;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* full memory supervision */
|
||||||
|
Smem_set_record_items(1);
|
||||||
|
|
||||||
|
/* one short trip for testing */
|
||||||
|
ret= Cevapi_new(&cevap,0);
|
||||||
|
if(ret>0)
|
||||||
|
Cevapi_destroy(&cevap,0);
|
||||||
|
|
||||||
|
/* report any leaked memory */
|
||||||
|
Smem_stderr(1|2);
|
||||||
|
|
||||||
|
exit(ret<=0);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user