#!/bin/bash

set -x

ocamlsrc=/usr/local/src/ocaml-3.09.2
pwd=$(pwd)


../../elsa/ccparse -tr c_lang -oc hello-world.oast hello-world.c
../ast_graph hello-world.oast -o hello-world.dot
dot -Tpng -o hello-world.png hello-world.dot 
convert -bordercolor blue -border 5 -bordercolor white -border 50 hello-world.png hello-world-border.png


pushd ../../smbase
g++ -E -o crc.ii crc.cpp 
$pwd/../../elsa/ccparse -oc $pwd/crc.oast crc.ii
popd
../ast_graph -o crc.dot crc.oast 
dot -Tsvg -o crc.svg crc.dot
convert -resize 5000x crc.svg crc.png
convert -resize 300x crc.svg crc-small.png



pushd $ocamlsrc/byterun

gcc -DCAML_NAME_SPACE -O -fno-defer-pop -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT   -E -o minor_gc.i minor_gc.c

$pwd/../../elsa/ccparse -tr c_lang -oc $pwd/minor_gc.oast minor_gc.i

popd

../ast_graph minor_gc.oast -o minor_gc.dot

#add a page attribute to the dot file
# page="240,70";
#
#run dot
#dot -v -Tps minor_gc.dot -o minor_gc.ps
#
#separate the last but one page
#
#import into gimp
#crop the interesting part
#store as minor_gc-detail.png
#shrink to 2000 pixels, store as minor_gc-detail-small.png
#
#add the frame with
#convert -bordercolor blue -border 5 -bordercolor white -border 50 minor_gc-detail-small.png minor_gc-detail-small-border.png

