#
# Compile and run MOSEK examples
#

CC=cl.exe
IPATHS=/I..\..\platform\win32x86\h
LPATH=/LIBPATH:..\..\platform\win32x86\bin
LIBS=mosek8_1.lib

blas_lapack.exe: blas_lapack.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
callback.exe: callback.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
case_portfolio_1.exe: case_portfolio_1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
case_portfolio_2.exe: case_portfolio_2.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
case_portfolio_3.exe: case_portfolio_3.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
cqo1.exe: cqo1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
errorreporting.exe: errorreporting.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
feasrepairex1.exe: feasrepairex1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
lo1.exe: lo1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
lo2.exe: lo2.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
milo1.exe: milo1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
mioinitsol.exe: mioinitsol.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
opt_server_async.exe: opt_server_async.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
opt_server_sync.exe: opt_server_sync.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
parameters.exe: parameters.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
production.exe: production.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
qcqo1.exe: qcqo1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
qo1.exe: qo1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
response.exe: response.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
sdo1.exe: sdo1.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
sensitivity.exe: sensitivity.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
simple.exe: simple.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
solutionquality.exe: solutionquality.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
solvebasis.exe: solvebasis.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
solvelinear.exe: solvelinear.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
sparsecholesky.exe: sparsecholesky.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
unicode.exe: unicode.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
tstscopt.exe: tstscopt.c scopt-ext.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)
tstexpopt.exe: tstexpopt.c scopt-ext.c expopt.c dgopt.c
	$(CC) $(IPATHS) $** /link $(LPATH) /out:$@ $(LIBS)

all: blas_lapack.exe callback.exe case_portfolio_1.exe case_portfolio_2.exe case_portfolio_3.exe cqo1.exe errorreporting.exe feasrepairex1.exe lo1.exe lo2.exe milo1.exe mioinitsol.exe opt_server_async.exe opt_server_sync.exe parameters.exe production.exe qcqo1.exe qo1.exe response.exe sdo1.exe sensitivity.exe simple.exe solutionquality.exe solvebasis.exe solvelinear.exe sparsecholesky.exe unicode.exe tstscopt.exe tstexpopt.exe

clean:
	del /q blas_lapack.exe callback.exe case_portfolio_1.exe case_portfolio_2.exe case_portfolio_3.exe cqo1.exe errorreporting.exe feasrepairex1.exe lo1.exe lo2.exe milo1.exe mioinitsol.exe opt_server_async.exe opt_server_sync.exe parameters.exe production.exe qcqo1.exe qo1.exe response.exe sdo1.exe sensitivity.exe simple.exe solutionquality.exe solvebasis.exe solvelinear.exe sparsecholesky.exe unicode.exe tstexpopt.exe tstscopt.exe

test: blas_lapack.exe callback.exe case_portfolio_1.exe case_portfolio_2.exe case_portfolio_3.exe cqo1.exe errorreporting.exe feasrepairex1.exe lo1.exe lo2.exe milo1.exe mioinitsol.exe opt_server_async.exe opt_server_sync.exe parameters.exe production.exe qcqo1.exe qo1.exe response.exe sdo1.exe sensitivity.exe simple.exe solutionquality.exe solvebasis.exe solvelinear.exe sparsecholesky.exe unicode.exe tstscopt.exe tstexpopt.exe
	.\blas_lapack
	.\callback
	.\case_portfolio_1
	.\case_portfolio_2
	.\case_portfolio_3
	.\cqo1
	.\errorreporting
	.\feasrepairex1
	.\lo1
	.\lo2
	.\milo1
	.\mioinitsol
	.\opt_server_async
	.\opt_server_sync
	.\parameters
	.\production
	.\qcqo1
	.\qo1
	.\response
	.\sdo1
	.\sensitivity
	.\simple
	.\solutionquality
	.\solvebasis
	.\solvelinear
	.\sparsecholesky
	.\unicode
	.\tstexpopt
	.\tstscopt
