80 lines
2.6 KiB
Makefile
80 lines
2.6 KiB
Makefile
# ***************************************************************************
|
|
# Copyright (c) 2017 Digi International Inc.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
# PERFORMANCE OF THIS SOFTWARE.
|
|
#
|
|
# Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
|
|
#
|
|
# ***************************************************************************
|
|
# Use GNU C Compiler.
|
|
CC ?= gcc
|
|
|
|
# Generated Library name.
|
|
NAME := awsiotsdk
|
|
|
|
# Location of Source Code.
|
|
SRC = .
|
|
|
|
#IoT client directory.
|
|
IOT_CLIENT_DIR = $(SRC)/..
|
|
|
|
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux/mbedtls
|
|
PLATFORM_COMMON_DIR = $(IOT_CLIENT_DIR)/platform/linux/common
|
|
INSTALL_HEADERS_DIR = /usr/include/awsiotsdk
|
|
|
|
CFLAGS += -I $(IOT_CLIENT_DIR)/include
|
|
CFLAGS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
|
|
CFLAGS += -I $(PLATFORM_COMMON_DIR)
|
|
CFLAGS += -I $(PLATFORM_DIR)
|
|
CFLAGS += -Wall -g
|
|
CFLAGS += $(LOG_FLAGS)
|
|
CFLAGS += $(shell pkg-config --cflags mbedtls)
|
|
|
|
# Libraries to Link.
|
|
LIBS += $(shell pkg-config --libs --static mbedtls)
|
|
|
|
# Linking Flags.
|
|
LDFLAGS += $(DFLAGS)
|
|
|
|
# Target output to generate.
|
|
SRCS += $(wildcard $(SRC)/*.c)
|
|
SRCS += $(wildcard $(IOT_CLIENT_DIR)/external_libs/jsmn/*.c)
|
|
SRCS += $(wildcard $(PLATFORM_DIR)/*.c)
|
|
SRCS += $(wildcard $(PLATFORM_COMMON_DIR)/*.c)
|
|
|
|
OBJS = $(SRCS:.c=.o)
|
|
|
|
.PHONY: all
|
|
all: lib$(NAME).a
|
|
|
|
lib$(NAME).a: $(OBJS)
|
|
$(AR) -rcs $@ $^
|
|
|
|
.PHONY: install
|
|
install: lib$(NAME).a
|
|
# Install library and pkg-config file.
|
|
install -d $(DESTDIR)/usr/lib/pkgconfig
|
|
install -m 0644 lib$(NAME).a $(DESTDIR)/usr/lib/
|
|
install -m 0644 ../awsiotsdk.pc $(DESTDIR)/usr/lib/pkgconfig/
|
|
# Install header files.
|
|
install -d $(DESTDIR)$(INSTALL_HEADERS_DIR)
|
|
install -m 0644 $(IOT_CLIENT_DIR)/include/*.h $(DESTDIR)$(INSTALL_HEADERS_DIR)/
|
|
install -m 0644 $(IOT_CLIENT_DIR)/external_libs/jsmn/*.h $(DESTDIR)$(INSTALL_HEADERS_DIR)/
|
|
install -m 0644 $(PLATFORM_COMMON_DIR)/*.h $(DESTDIR)$(INSTALL_HEADERS_DIR)/
|
|
install -m 0644 $(PLATFORM_DIR)/*.h $(DESTDIR)$(INSTALL_HEADERS_DIR)/
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
-rm -f lib$(NAME).a $(OBJS)
|
|
|