- Library source from AN721SW (cp210xmanufacturing_1.0.tar.gz) - Manufacturing tool source (cp210xsmt) - Builds 64-bit shared library with: make LIB_ARCH=64 - Datasheets and app notes in docs/
127 lines
2.7 KiB
Makefile
127 lines
2.7 KiB
Makefile
###########################################
|
|
# Makefile for libcp210xmanufacturing
|
|
# using libusb-1.0
|
|
#
|
|
# Silicon Labs
|
|
# Modified July 11th, 2016
|
|
###########################################
|
|
|
|
# This file gets put into the source package and is used to build the actual library.
|
|
|
|
# it will produce .so and .a
|
|
|
|
LIB_ARCH?=$(shell uname -m | sed s/x86_//)
|
|
|
|
BUILD?=./build
|
|
BUILDPATH?=$(BUILD)/lib/x86_$(LIB_ARCH)
|
|
OBJPATH?=$(BUILD)/obj/x86_$(LIB_ARCH)
|
|
|
|
INSTALLPATH?=/usr/local
|
|
|
|
# required packages
|
|
PKG_CONFIG_DEPENDENCIES = libusb-1.0
|
|
|
|
# Library Variables
|
|
|
|
LIB_BASE_NAME = cp210xmanufacturing
|
|
LIB_NAME = lib$(LIB_BASE_NAME)
|
|
LIB_VER = 1.0
|
|
LIB_SOVER = 1
|
|
|
|
SONAME=$(LIB_NAME).so.$(LIB_SOVER)
|
|
LIBFULLNAME=$(LIB_NAME).so.$(LIB_VER)
|
|
|
|
LIBFULLPATH=$(BUILDPATH)/$(LIBFULLNAME)
|
|
ARCHIVE_FULL_PATH=$(BUILDPATH)/$(LIB_NAME).a
|
|
|
|
ARCHFLAG=-m$(LIB_ARCH)
|
|
|
|
PUBLICHEADERSPATH=./$(LIB_BASE_NAME)/include
|
|
|
|
# sources
|
|
|
|
CSRCS =
|
|
CPPSRCS =CP210xDevice.cpp
|
|
CPPSRCS+=CP2101Device.cpp
|
|
CPPSRCS+=CP2102Device.cpp
|
|
CPPSRCS+=CP2102NDevice.cpp
|
|
CPPSRCS+=CP2103Device.cpp
|
|
CPPSRCS+=CP2104Device.cpp
|
|
CPPSRCS+=CP2105Device.cpp
|
|
CPPSRCS+=CP2108Device.cpp
|
|
CPPSRCS+=CP2109Device.cpp
|
|
CPPSRCS+=CP210xSupportFunctions.cpp
|
|
CPPSRCS+=CP210xManufacturing.cpp
|
|
|
|
COBJS=$(CSRCS:%.c=%.o)
|
|
CPPOBJS=$(CPPSRCS:%.cpp=%.o)
|
|
|
|
OBJFILES = $(COBJS) $(CPPOBJS)
|
|
|
|
OBJFULLPATHS=$(addprefix $(OBJPATH)/, $(OBJFILES))
|
|
|
|
|
|
INCLUDES ?= -I$(PUBLICHEADERSPATH) -I./common/include/ -I./common/linux/
|
|
|
|
INCLUDES += $(foreach depcflgs,$(PKG_CONFIG_DEPENDENCIES), `pkg-config $(depcflgs) --cflags`)
|
|
|
|
LIBS += $(foreach deplib,$(PKG_CONFIG_DEPENDENCIES), `pkg-config --libs $(deplib)`)
|
|
|
|
VPATH+=$(LIB_BASE_NAME)/src
|
|
|
|
# targets: build clean install
|
|
|
|
CC ?= gcc
|
|
CFLAGS ?= -Wall -fPIC -g $(ARCHFLAG) $(INCLUDES)
|
|
|
|
CXX ?= g++
|
|
CXXFLAGS ?= -Wall -fPIC -g $(ARCHFLAG) $(INCLUDES)
|
|
|
|
AR ?= ar
|
|
ARFLAGS ?= rcs
|
|
|
|
all: $(LIBFULLPATH) $(ARCHIVE_FULL_PATH)
|
|
|
|
$(OBJPATH)/%.o: %.c
|
|
$(CC) $(CFLAGS) -c $(INCLUDES) $< -o $@
|
|
|
|
$(OBJPATH)/%.o: %.cpp
|
|
$(CXX) $(CXXFLAGS) -c $(INCLUDES) $< -o $@
|
|
|
|
$(OBJPATH):
|
|
mkdir -p $@
|
|
|
|
$(BUILDPATH):
|
|
mkdir -p $@
|
|
|
|
$(LIBFULLPATH): $(OBJPATH) $(BUILDPATH) $(OBJFULLPATHS)
|
|
$(CXX) $(ARCHFLAG) -shared -Wl,-soname,$(SONAME) -o $@ $(OBJFULLPATHS) $(LIBS)
|
|
cd $(BUILDPATH) && \
|
|
ln -sf $(LIBFULLNAME) $(SONAME) && \
|
|
ln -sf $(SONAME) $(LIB_NAME).so
|
|
|
|
|
|
$(ARCHIVE_FULL_PATH): $(OBJFULLPATHS)
|
|
$(AR) $(ARFLAGS) $(BUILDPATH)/$(LIB_NAME).a $(OBJFULLPATHS)
|
|
|
|
debug:
|
|
echo $(OBJFULLPATHS)
|
|
|
|
clean:
|
|
rm -rf $(BUILDPATH)
|
|
rm -rf $(OBJPATH)
|
|
rm -rf $(BUILD)
|
|
|
|
install:
|
|
mkdir -p $(INSTALLPATH)/include
|
|
mkdir -p $(INSTALLPATH)/lib
|
|
cp $(PUBLICHEADERSPATH)/*.h $(INSTALLPATH)/include
|
|
cp $(LIBFULLPATH) $(INSTALLPATH)/lib
|
|
cd $(INSTALLPATH)/lib && \
|
|
ln -sf $(LIBFULLNAME) $(SONAME) && \
|
|
ln -sf $(SONAME) $(LIB_NAME).so
|
|
@echo "Installed at: "$(INSTALLPATH)
|
|
|
|
.PHONY: all clean install debug
|
|
|