# Assumes CC, CXX environment variables are set
# The following are examples for different compilers/OS
# GNU: CC=gcc CXX=g++ -fno-implicit-templates
# Other: CC=cc -c +z
SILABS=/cygdrive/c/Disk2/SiLabs/MCU/USBXpress-2.1/USBXpress_API/Host
INCLUDES=-I. -I$(SWDAQ_ROOTDIR)/include -I$(SILABS)
CFLAGS=$(INCLUDES)
CXXFLAGS=$(INCLUDES)
LDFLAGS=$(INCLUDES) -L. -L$(SWDAQ_ROOTDIR)/bin -L$(SWDAQ_ROOTDIR)/lib -L$(SILABS)

vpath %.dll $(SWDAQ_ROOTDIR)/bin
vpath % $(SWDAQ_ROOTDIR)/bin

.SUFFIXES: .cpp .c .a .o .dll

all: includes CBUSBHost.o

includes:
	cp chimaera.h $(SWDAQ_ROOTDIR)/include/

libcbusb.dll: dll_init.o CBUSBHost.o
	$(CXX) $(LDFLAGS) -shared -Wl,--base-file,mydll.base -o $(SWDAQ_ROOTDIR)/bin/libcbusb.dll dll_init.o CBUSBHost.o -lSiUSBXp -Wl,-e,_mydll_init@12 

CBUSBHost.o: CBUSBHost.cpp
	$(CXX) $(LDFLAGS) CBUSBHost.cpp \
	-c -o $(SWDAQ_ROOTDIR)/lib/CBUSBHost.o

chimaera: chimaera.cpp
	$(CXX) $(LDFLAGS) chimaera.cpp $(SWDAQ_ROOTDIR)/lib/CBUSBHost.o \
	-lSiUSBXp \
	-o $(SWDAQ_ROOTDIR)/bin/chimaera

looptest: looptest.cpp
	$(CXX) $(LDFLAGS) looptest.cpp $(SWDAQ_ROOTDIR)/lib/CBUSBHost.o \
	-lSiUSBXp -lc++ \
	-o $(SWDAQ_ROOTDIR)/bin/looptest

statusloop: statusloop.cpp
	$(CXX) $(LDFLAGS) statusloop.cpp $(SWDAQ_ROOTDIR)/lib/CBUSBHost.o \
	-lSiUSBXp -lc++ \
	-o $(SWDAQ_ROOTDIR)/bin/statusloop

