# CompilerName=msvc170
# Mode=optim
ninja_required_version = 1.3

# Basic folders
root = .
builddir = $root\build\win64
matlabdir = C:\Program Files\MATLAB\R2025b
startdir = C:\Users\Victus\Desktop\folder_working\a purdue\aa reasearch\Gaurav Setup\ColumnSetup_gaurav\.codex\verification\fable_codegen_probe

# Toolchain information
cc = cl
cxx = cl
linker = link
linkerxx = link

cflags =  /c /Zc:__cplusplus /Zp8 /GR /W3 /EHs /nologo /MD /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0   /DMATLAB_MEX_FILE  /DMATLAB_MEX_FILE /O2 /Oy- /DNDEBUG /fp:strict /utf-8 /I "$root" /I "$startdir" /I "$root\interface" /I "$matlabdir\extern\include" /I "." -DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE -DMW_HAVE_LAPACK_DECLS -DMODEL=fable_osi_mex /openmp /wd4101 

cxxflags =  /c /Zc:__cplusplus /Zp8 /GR /W3 /EHs /nologo /MD /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0   /DMATLAB_MEX_FILE  /DMATLAB_MEX_FILE /O2 /Oy- /DNDEBUG /fp:strict /utf-8 /I "$root" /I "$startdir" /I "$root\interface" /I "$matlabdir\extern\include" /I "." -DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE -DMW_HAVE_LAPACK_DECLS -DMODEL=fable_osi_mex /openmp /wd4101 

ldflags =  /nologo    /DLL /LIBPATH:"$matlabdir\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  /out:"fable_osi_mex.mexw64" /LIBPATH:"$matlabdir\extern\lib\win64\microsoft" libmwlapack.lib libmwblas.lib libemlrt.lib libcovrt.lib libut.lib libmwmathutil.lib libiomp5md.lib /nodefaultlib:vcomp /LIBPATH:"$matlabdir\bin\win64" /export:mexFunction /export:mexfilerequiredapiversion /export:emlrtMexFcnProperties /export:fable_osi /export:fable_osi_initialize /export:fable_osi_terminate /export:fable_osi_atexit /export:emlrt_marshallOut /export:emxEnsureCapacity_real_T /export:emxFree_real_T /export:emxInit_real_T

ldxxflags =  /nologo    /DLL /LIBPATH:"$matlabdir\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libMatlabDataArray.lib libMatlabEngine.lib  /out:"fable_osi_mex.mexw64" /LIBPATH:"$matlabdir\extern\lib\win64\microsoft" libmwlapack.lib libmwblas.lib libemlrt.lib libcovrt.lib libut.lib libmwmathutil.lib libiomp5md.lib /nodefaultlib:vcomp /LIBPATH:"$matlabdir\bin\win64" /export:mexFunction /export:mexfilerequiredapiversion /export:emlrtMexFcnProperties /export:fable_osi /export:fable_osi_initialize /export:fable_osi_terminate /export:fable_osi_atexit /export:emlrt_marshallOut /export:emxEnsureCapacity_real_T /export:emxFree_real_T /export:emxInit_real_T

linkobjs = 

# Build Rules
rule cc
    command = $cc $cflags $in /Fo$out

rule cxx
    command = $cxx $cxxflags $in /Fo$out

rule link
    command = $linker @$out.rsp $linkobjs $ldflags
    rspfile = $out.rsp
    rspfile_content = $in

rule linkxx
    command = $linkerxx $in $linkobjs $ldxxflags

# Build
build $builddir\fable_osi_data.obj : cc $root\fable_osi_data.c
build $builddir\rt_nonfinite.obj : cc $root\rt_nonfinite.c
build $builddir\fable_osi_initialize.obj : cc $root\fable_osi_initialize.c
build $builddir\fable_osi_terminate.obj : cc $root\fable_osi_terminate.c
build $builddir\fable_osi.obj : cc $root\fable_osi.c
build $builddir\mldivide.obj : cc $root\mldivide.c
build $builddir\warning.obj : cc $root\warning.c
build $builddir\infocheck.obj : cc $root\infocheck.c
build $builddir\mtimes.obj : cc $root\mtimes.c
build $builddir\mod.obj : cc $root\mod.c
build $builddir\median.obj : cc $root\median.c
build $builddir\quickselect.obj : cc $root\quickselect.c
build $builddir\movmax.obj : cc $root\movmax.c
build $builddir\SortedBuffer.obj : cc $root\SortedBuffer.c
build $builddir\nnz.obj : cc $root\nnz.c
build $builddir\sumMatrixIncludeNaN.obj : cc $root\sumMatrixIncludeNaN.c
build $builddir\allOrAny.obj : cc $root\allOrAny.c
build $builddir\angle.obj : cc $root\angle.c
build $builddir\abs.obj : cc $root\abs.c
build $builddir\assertCompatibleDims.obj : cc $root\assertCompatibleDims.c
build $builddir\mean.obj : cc $root\mean.c
build $builddir\any.obj : cc $root\any.c
build $builddir\_coder_fable_osi_api.obj : cc $root\interface\_coder_fable_osi_api.c
build $builddir\_coder_fable_osi_mex.obj : cc $root\interface\_coder_fable_osi_mex.c
build $builddir\eml_int_forloop_overflow_check.obj : cc $root\eml_int_forloop_overflow_check.c
build $builddir\sort3.obj : cc $root\sort3.c
build $builddir\vmedian.obj : cc $root\vmedian.c
build $builddir\exp.obj : cc $root\exp.c
build $builddir\sqrt.obj : cc $root\sqrt.c
build $builddir\log.obj : cc $root\log.c
build $builddir\div.obj : cc $root\div.c
build $builddir\fable_osi_emxutil.obj : cc $root\fable_osi_emxutil.c
build $builddir\fable_osi_mexutil.obj : cc $root\fable_osi_mexutil.c
build $builddir\_coder_fable_osi_info.obj : cc $root\interface\_coder_fable_osi_info.c
build $builddir\c_mexapi_version.obj : cc $matlabdir\extern\version\c_mexapi_version.c

# Link
build $root\fable_osi_mex.mexw64 : link $builddir\fable_osi_data.obj $builddir\rt_nonfinite.obj $builddir\fable_osi_initialize.obj $builddir\fable_osi_terminate.obj $builddir\fable_osi.obj $builddir\mldivide.obj $builddir\warning.obj $builddir\infocheck.obj $builddir\mtimes.obj $builddir\mod.obj $builddir\median.obj $builddir\quickselect.obj $builddir\movmax.obj $builddir\SortedBuffer.obj $builddir\nnz.obj $builddir\sumMatrixIncludeNaN.obj $builddir\allOrAny.obj $builddir\angle.obj $builddir\abs.obj $builddir\assertCompatibleDims.obj $builddir\mean.obj $builddir\any.obj $builddir\_coder_fable_osi_api.obj $builddir\_coder_fable_osi_mex.obj $builddir\eml_int_forloop_overflow_check.obj $builddir\sort3.obj $builddir\vmedian.obj $builddir\exp.obj $builddir\sqrt.obj $builddir\log.obj $builddir\div.obj $builddir\fable_osi_emxutil.obj $builddir\fable_osi_mexutil.obj $builddir\_coder_fable_osi_info.obj $builddir\c_mexapi_version.obj 
