include ../../../cpp/config.mak
include ../../config.mak

.PHONY: all clean

all: mlab_fun2.exe client.exe fun_test

clean:
	rm -rf libfun*_mcr
	rm -f *.exe mlab_*.cpp mlab_*.h mlab_*.ci *.ctf *.exports mcc* *mcc_component_data.c \
		libfun* fun_test *.o

client.exe: client.cc
	$(CXX) $(CXXFLAGS) $< $(LDFLAGS) $(LDLIBS) -o $@

mlab_fun2.exe: mlab_fun2.o $(PWD)/libfun2.so
	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) $(LDLIBS) -o $@

mlab_fun2.cpp: fun2.m dotm2cpp.py $(PWD)/libfun2.so
	./dotm2cpp.py $(M2FLAGS) $<

mlab_fun.h: fun.m dotm2cpp.py
	./dotm2cpp.py $(M2FLAGS) $<

$(PWD)/libfun.so: fun.m
	$(MCC) -g -W cpplib:libfun -T link:lib $<

fun_test: fun_test.cpp $(PWD)/libfun.so mlab_fun.h $(PWD)/libfun2.so mlab_fun2.h
	$(CXX) $(CXXFLAGS) $< $(LDFLAGS) $(LDLIBS) -L. -lfun -lfun2 -o $@

mlab_fun2.h: fun2.m dotm2cpp.py
	./dotm2cpp.py $(M2FLAGS) $<

$(PWD)/libfun2.so: fun2.m
	$(MCC) -g -W cpplib:libfun2 -T link:lib $<
