# This file was automagically generated by mbed.org. For more information,
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded

###############################################################################
# Boiler-plate

# cross-platform directory manipulation
ifeq ($(shell echo $$OS),$$OS)
    MAKEDIR = if not exist "$(1)" mkdir "$(1)"
    RM = rmdir /S /Q "$(1)"
else
    MAKEDIR = '$(SHELL)' -c "mkdir -p \"$(1)\""
    RM = '$(SHELL)' -c "rm -rf \"$(1)\""
endif
OBJCOPY = arm-none-eabi-objcopy
OBJDIR := Debug
# Move to the build directory
ifeq (,$(filter $(OBJDIR),$(notdir $(CURDIR))))
.SUFFIXES:
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKETARGET = '$(MAKE)' --no-print-directory -C $(OBJDIR) -f '$(mkfile_path)' \
		'SRCDIR=$(CURDIR)' $(MAKECMDGOALS)
.PHONY: $(OBJDIR) clean
all:
	+@$(shell ./wolfmqtt-F767ZI-TOPPERS.sh)
	+@$(call MAKEDIR,$(OBJDIR))
	+@$(MAKETARGET)
$(OBJDIR): all
Makefile : ;
% :: $(OBJDIR) ; :
clean :
	$(call RM,$(OBJDIR))

else

# trick rules into thinking we are in the root, when we are in the build dir
VPATH = ../../F767ZI-TOPPERS

# Boiler-plate
###############################################################################
# Project settings

PROJECT := wolfmqtt


# Project settings
###############################################################################
# Objects and Paths
OBJECTS += src/mqtt_client.o
OBJECTS += src/mqtt_packet.o
OBJECTS += src/mqtt_socket.o
OBJECTS += examples/mqttexample.o
OBJECTS += examples/mqttnet.o
OBJECTS += examples/azure/azureiothub.o


INCLUDE_PATHS += -I../../../../asp_baseplatform
INCLUDE_PATHS += -I../../../../asp_baseplatform/include
INCLUDE_PATHS += -I../../../../asp_baseplatform/arch
INCLUDE_PATHS += -I../../../../asp_baseplatform/arch/arm_m_gcc/common
INCLUDE_PATHS += -I../../../../asp_baseplatform/arch/arm_m_gcc/stm32f7xx
INCLUDE_PATHS += -I../../../../asp_baseplatform/target/stm32f767nucleo144_gcc
INCLUDE_PATHS += -I../../../../asp_baseplatform/lwip/lwip-2.1.2/src/include
INCLUDE_PATHS += -I../../../../asp_baseplatform/lwip/contrib-2.1.0/ports/toppers/include
INCLUDE_PATHS += -I../../../../asp_baseplatform/lwip/contrib-2.1.0
INCLUDE_PATHS += -I../../../../asp_baseplatform/OBJ/STM32F767NUCLEO144_GCC/MAC
INCLUDE_PATHS += -I../../../../asp_baseplatform/monitor
INCLUDE_PATHS += -I../../../../asp_baseplatform/files
INCLUDE_PATHS += -I../wolfssl
INCLUDE_PATHS += -I../wolfssl/src
INCLUDE_PATHS += -I../wolfmqtt
INCLUDE_PATHS += -I../
# Objects and Paths
###############################################################################
# Tools and Flags

AS      = arm-none-eabi-gcc
CC      = arm-none-eabi-gcc
CPP     = arm-none-eabi-g++
AR      = arm-none-eabi-ar
RANLIB  = arm-none-eabi-ranlib

# wolfSSL flags
WOLF_FLAGS  = -DHAVE_CONFIG_H
WOLF_FLAGS += -DWOLFSSL_USER_SETTINGS
WOLF_FLAGS += -DWOLFMQTT_USER_SETTINGS
WOLF_FLAGS += -DTOPPERS

C_FLAGS += $(WOLF_FLAGS)
C_FLAGS += -std=gnu11
C_FLAGS += -mcpu=cortex-m4
C_FLAGS += -march=armv7e-m
C_FLAGS += -mthumb
C_FLAGS += -mlittle-endian
C_FLAGS += -mfloat-abi=hard
C_FLAGS += -mfpu=fpv4-sp-d16
C_FLAGS += -Og
C_FLAGS += -fmessage-length=0
C_FLAGS += -fsigned-char
C_FLAGS += -ffunction-sections
C_FLAGS += -fdata-sections
C_FLAGS += -Wall
C_FLAGS += -Wextra
C_FLAGS += -Wno-unused-parameter
C_FLAGS += -Wno-missing-field-initializers
C_FLAGS += -Wnull-dereference

C_FLAGS += -g3
C_FLAGS += -Wstack-usage=256

CXX_FLAGS += $(WOLF_FLAGS)
CXX_FLAGS += -march=armv7e-m
CXX_FLAGS += -mthumb
CXX_FLAGS += -mlittle-endian
CXX_FLAGS += -mfloat-abi=hard
CXX_FLAGS += -mfpu=fpv4-sp-d16
CXX_FLAGS += -Og
CXX_FLAGS += -fmessage-length=0
CXX_FLAGS += -fsigned-char
CXX_FLAGS += -ffunction-sections
CXX_FLAGS += -fdata-sections
CXX_FLAGS += -Wall
CXX_FLAGS += -Wextra
CXX_FLAGS += -Wno-unused-parameter
CXX_FLAGS += -Wno-missing-field-initializers
CXX_FLAGS += -Wnull-dereference

CXX_FLAGS += -g3
CXX_FLAGS += -Wstack-usage=256

CXX_FLAGS += -DHAVE_CONFIG_H
CXX_FLAGS += -DWOLFSSL_USER_SETTINGS
CXX_FLAGS += -DCYASSL_USER_SETTINGS

ASM_FLAGS += -x
ASM_FLAGS += assembler-with-cpp
ASM_FLAGS += -mcpu=cortex-m4
ASM_FLAGS += -march=armv7e-m
ASM_FLAGS += -mthumb
ASM_FLAGS += -mlittle-endian
ASM_FLAGS += -mfloat-abi=hard
ASM_FLAGS += -mfpu=fpv4-sp-d16
ASM_FLAGS += -Og
ASM_FLAGS += -fmessage-length=0
ASM_FLAGS += -fsigned-char
ASM_FLAGS += -ffunction-sections
ASM_FLAGS += -fdata-sections
ASM_FLAGS += -Wall
ASM_FLAGS += -Wextra
ASM_FLAGS += -Wno-unused-parameter
ASM_FLAGS += -Wno-missing-field-initializers
ASM_FLAGS += -Wnull-dereference
ASM_FLAGS += -g3
ASM_FLAGS += -Wstack-usage=256


# Tools and Flags
###############################################################################
# Rules

.PHONY: all lst size


all: lib$(PROJECT).a


.s.o:
	+@$(call MAKEDIR,$(dir $@))
	+@echo "Assemble: $(notdir $<)"
	@$(AS) -c $(ASM_FLAGS) -o $@ $<

.S.o:
	+@$(call MAKEDIR,$(dir $@))
	+@echo "Assemble: $(notdir $<)"
	@$(AS) -c $(ASM_FLAGS) -o $@ $<

.c.o:
	+@$(call MAKEDIR,$(dir $@))
	+@echo "Compile: $(notdir $<)"
	@echo $(INCLUDE_PATHS)
	@$(CC) $(C_FLAGS) $(INCLUDE_PATHS) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"

.cpp.o:
	+@$(call MAKEDIR,$(dir $@))
	+@echo "Compile: $(notdir $<)"
	@$(CPP) $(CXX_FLAGS) $(INCLUDE_PATHS) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"

lib$(PROJECT).a: $(OBJECTS)
	$(OBJCOPY) --redefine-sym main=Wolf_MQTT_main ./examples/azure/azureiothub.o
	$(AR) -rcs lib$(PROJECT).a $(OBJECTS)
	$(RANLIB) lib$(PROJECT).a


# Rules
###############################################################################
# Dependencies

DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
-include $(DEPS)
endif

# Dependencies
###############################################################################
