SKYNET_ROOT ?= ../../skynet
include $(SKYNET_ROOT)/platform.mk

LUALIB ?= $(SKYNET_ROOT)/3rd/lua/
LUAINC ?= $(SKYNET_ROOT)/3rd/lua/
GLM_INC = ../../3rd/glm
ODIR = o
OUTPUT= ../../luaclib/
CXX = g++

PLAT ?= none
ifeq ($(PLAT), macosx)
	CFLAGS = -g -O2 -dynamiclib -Wl,-undefined,dynamic_lookup
else
ifeq ($(PLAT), linux)
	CFLAGS = -g -O2 -shared -fPIC
endif
endif

all : $(OUTPUT)math3d.so

$(ODIR)/linalg.o : linalg.c | $(ODIR)
	$(CC) -c $(CFLAGS) -o $@ $^ -I$(LUAINC)

$(ODIR)/math3d.o : math3d.c | $(ODIR)
	$(CC) -c $(CFLAGS) -o $@ $^ -I$(LUAINC)

$(ODIR)/mathfunc.o : mathfunc.cpp | $(ODIR)
	$(CXX) -c $(CFLAGS) -o $@ $^ -I$(GLM_INC)

$(ODIR)/mathadapter.o : mathadapter.c | $(ODIR)
	$(CC) -c $(CFLAGS) -o $@ $^ -I$(LUAINC)

$(ODIR)/testadapter.o : testadapter.c | $(ODIR)
	$(CC) -c $(CFLAGS) -o $@ $^ -I$(LUAINC)

$(OUTPUT)math3d.so : $(ODIR)/linalg.o $(ODIR)/math3d.o $(ODIR)/mathfunc.o $(ODIR)/mathadapter.o $(ODIR)/testadapter.o
	$(CXX) $(CFLAGS) $(SHARED) -o $@ $^

$(ODIR) :
	mkdir -p $@

clean :
	rm -rf $(ODIR) *.so
