#!/bin/sh
#
# shell script to compile .mex functions in Linux/Unix
#

# the following flags are for gcc
export CFLAGS='-O3 -fomit-frame-pointer -march=native -mtune=native'
export CXXFLAGS='-O3 -fomit-frame-pointer -march=native -mtune=native'

echo 'Compiling mex functions ...'
cd Basic/gdsio
mkoctfile --mex -s gds_open.c mexfuncs.c
mkoctfile --mex -s gds_close.c mexfuncs.c
mkoctfile --mex -s gds_ftell.c mexfuncs.c
mkoctfile --mex -s gds_structdata.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_libdata.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_beginstruct.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_endstruct.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_beginlib.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_endlib.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_write_element.c gdsio.c mexfuncs.c
mkoctfile --mex -s gds_read_element.c gdsio.c mexfuncs.c mxlist.c
mkoctfile --mex -s gds_record_info.c gdsio.c mexfuncs.c

cd ../@gds_element/private
mkoctfile --mex -s poly_iscwmex.c
mkoctfile --mex -s poly_areamex.c
mkoctfile --mex -s -I../../gdsio isref.c
mkoctfile --mex -s -I../../gdsio get_etype.c
mkoctfile --mex -s -I../../gdsio is_not_internal.c
mkoctfile --mex -s -I../../gdsio new_internal.c
mkoctfile --mex -s -I../../gdsio has_property.c
mkoctfile --mex -s -I../../gdsio get_element_data.c ../../gdsio/mexfuncs.c
mkoctfile --mex -s -I../../gdsio set_element_data.c ../../gdsio/mexfuncs.c

cd ../../../Structures/private
mkoctfile --mex -s datamatrixmex.c

echo 'Compiling Boolean set algebra functions ...'
cd ../../Boolean
mkoctfile --mex -s poly_boolmex.cpp clipper.cpp

cd ..
echo 'Done.'
