#!/usr/bin/env bash
makecython () {
    if [ `echo $1 | sed -n '/\.pyx/p' | wc -l` == 1 ]; then
        cython $1 $2
    else
        echo 'makecython requires a *.pyx file.
Usage: makecython sourcefile.pyx "<cython-options>" "<gcc-options>"' 1>&2
        exit 1
    fi
    local BASE_NAME=`echo $1 | sed -e 's/\.pyx$//'`
    local SO_NAME=`echo $1 | sed -e 's/\.pyx$/.so/'`
    local C_NAME=`echo $1 | sed -e 's/\.pyx$/.c/'`
    local API_NAME=`echo $1 | sed -e 's/\.pyx$/_api.h/'`
    local D_NAME=`echo $1 | sed -e 's/\.pyx$/.d/'`
    gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -Wno-unused-function -fno-strict-aliasing `pkg-config python3 --libs --cflags` -o $SO_NAME $C_NAME $3 && \
    rm $C_NAME && \
    rm -f $API_NAME && \
    rm -f $D_NAME
}

makecython "$@"
