###########################################
# Makefile for cp210xsmtsmt
# Requires libusb-1.0
# Requires libuuid
# Requires libcp210xmanufacturing, libslabhidtouart
#   libslabhidtosmbus, libslabhiddevice, libslab_usb_spi
#
# Silicon Labs
# Modified July 11th, 2016
###########################################

LIB_ARCH?=32

ARCHFLAG=-m$(LIB_ARCH)

BUILD ?=../build
BUILDPATH ?=$(BUILD)/bin/x86_$(LIB_ARCH)
OBJPATH ?=$(BUILD)/obj/x86_$(LIB_ARCH)

# required packages
PKG_CONFIG_DEPENDENCIES = libusb-1.0

CSRCS =
CPPSRCS  = cp210xsmt.cpp
CPPSRCS += smt.cpp 
CPPSRCS += util.cpp
CPPSRCS += OsDep.cpp

COBJS=$(CSRCS:%.c=%.o)
CPPOBJS=$(CPPSRCS:%.cpp=%.o)

OBJFILES = $(COBJS) $(CPPOBJS)

OBJFULLPATHS=$(addprefix $(OBJPATH)/, $(OBJFILES))

EXENAME = cp210xsmt
EXEFULLPATH = $(BUILDPATH)/$(EXENAME)

LIBS	  += -lcp210xmanufacturing
LIBS	  += -lslabhidtouart
LIBS	  += -lslabhidtosmbus
LIBS	  += -lslabhiddevice
LIBS	  += -lslab_usb_spi
LIBS	  += -luuid
LIBS      += $(foreach deplib,$(PKG_CONFIG_DEPENDENCIES), `pkg-config --libs $(deplib)`)


CC       ?= gcc
CFLAGS   ?= -Wall -fPIC -g $(ARCHFLAG) $(INCLUDES)

CXX      ?= g++
CXXFLAGS ?= -Wall -fPIC -g $(ARCHFLAG) $(INCLUDES)

all: $(OBJPATH) $(BUILDPATH) $(EXEFULLPATH)

$(OBJPATH):
	mkdir -p $@

$(BUILDPATH):
	mkdir -p $@

$(OBJPATH)/%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $< -o $@

$(EXEFULLPATH): $(OBJFULLPATHS)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(LIBS) $(LIBPATHS) -o $@
	

clean:
	rm -rf $(BUILD)


