diff --git a/boot/cypress/Makefile b/boot/cypress/Makefile
new file mode 100644
index 0000000..103be53
--- /dev/null
+++ b/boot/cypress/Makefile
@@ -0,0 +1,209 @@
+################################################################################
+# \file Makefile
+# \version 1.0
+#
+# \brief
+# Main Makefile for building MCUBoot application for Cypress target.
+#
+################################################################################
+# \copyright
+# Copyright 2019 Cypress Semiconductor Corporation
+# SPDX-License-Identifier: Apache-2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+################################################################################
+
+# minimum Python 3.7 is required
+# Python path definition
+ifeq ($(OS),Windows_NT)
+PYTHON_PATH?=python
+else
+PYTHON_PATH?=python3
+endif
+
+################################################################################
+# Main settings
+################################################################################
+
+# Defines whether or not show verbose build output
+MAKEINFO ?= 1
+# Application name by default
+APP_NAME ?= MCUBootApp
+# Weather or now execute post build script after build - set to 0 for CI
+POST_BUILD ?= 1
+
+SIGN_KEY_FILE ?= cypress-test-ec-p256
+
+# set this variable to a path, where cysecuretools python package is installed
+# use command `python -m pip show cysecuretools` to find out this path
+# or rely on scripts that automates this action, bit not work for virtual envs
+CY_SEC_TOOLS_PATH ?= $(shell $(PYTHON_PATH) $(CURDIR)/scripts/find_cysectools.py)
+
+BUILDCFG ?= Debug
+
+# Set of supported applications
+APPS := MCUBootApp BlinkyApp CypressBootloader SecureBlinkyApp
+
+HEADER_OFFSET ?= 0
+
+ifneq ($(filter $(APP_NAME), $(APPS)),)
+include ./$(APP_NAME)/$(APP_NAME).mk
+else
+$(error Not supported application: '$(APP_NAME)')
+endif
+
+ASM_FILES := $(ASM_FILES_APP)
+ASM_FILES += $(ASM_FILES_LIBS)
+
+C_FILES := $(SOURCES_APP)
+C_FILES += $(SOURCES_LIBS)
+
+INCLUDE_DIRS := $(INCLUDE_DIRS_APP)
+INCLUDE_DIRS += $(INCLUDES_DIRS_MCUBOOT)
+INCLUDE_DIRS += $(INCLUDE_DIRS_LIBS)
+
+#INCLUDE_FILES := $(INCLUDE_FILES_APP)
+
+#INCLUDES := $(addprefix -include , $(INCLUDE_FILES))
+
+O_FILES := $(notdir $(C_FILES:.c=.o)) $(addsuffix .o, $(notdir $(basename $(ASM_FILES))))
+
+DEFINES := $(DEFINES_APP)
+DEFINES += $(DEFINES_LIBS)
+AS_FLAGS += $(DEFINES)
+
+ifeq ($(MAKEINFO), 1)
+$(info ==============================================================================)
+$(info = Directories to look for header files: =)
+$(info ==============================================================================)
+$(info $(INCLUDE_DIRS))
+
+$(info ==============================================================================)
+$(info = Collected Defines string: =)
+$(info ==============================================================================)
+$(info $(DEFINES))
+endif
+
+# updating CFLAGS at this point as DEFINES are completed
+CFLAGS += $(DEFINES)
+
+VPATH = $(dir $(C_FILES) $(ASM_FILES))
+
+#
+# STDE: For cygwin, adjust paths for compiler
+#
+MY_FILES := $(subst /cygdrive/c,c:,$(C_FILES))
+#$(info MY_FILES $(MY_FILES))
+C_FILES=$(MY_FILES)
+
+MY_DIRS := $(subst /cygdrive/c,c:,$(INCLUDE_DIRS))
+#$(info MY_DIRS $(MY_DIRS))
+INCLUDE_DIRS=$(MY_DIRS)
+
+MY_ASM_FILES := $(subst /cygdrive/c,c:,$(ASM_FILES))
+#$(info MY_ASM_FILES $(MY_ASM_FILES))
+ASM_FILES=$(MY_ASM_FILES)
+
+MY_LDFLAGS := $(subst /cygdrive/c,c:,$(LDFLAGS))
+#$(info MY_LDFLAGS $(MY_LDFLAGS))
+LDFLAGS=$(MY_LDFLAGS)
+
+# Default name pattern for output files
+# may be modified in %Application%.mk file
+OUT_FILE_NAME ?= $(OUT_APP)/$(APP_NAME)
+
+OUT_OBJ := $(OUT_CFG)/obj
+OUT_APP := $(OUT_CFG)
+
+.PHONY: all app build clean pre_build post_build
+
+all: clean app
+
+app:
+	@`mkdir -p ./$(OUT)`
+	@`mkdir -p ./$(OUT_TARGET)`
+	@`mkdir -p ./$(OUT_CFG)`
+	@`mkdir -p ./$(OUT_OBJ)`
+	$(MAKE) pre_build
+	$(MAKE) build -j8
+	$(MAKE) post_build
+
+build: $(OUT_APP)/$(APP_NAME).hex
+	$(GCC_PATH)/bin/arm-none-eabi-objdump $(OUT_APP)/$(APP_NAME).hex -s > $(OUT_APP)/$(APP_NAME).lst
+	$(GCC_PATH)/bin/arm-none-eabi-objdump -h $(OUT_APP)/$(APP_NAME).elf
+	$(GCC_PATH)/bin/arm-none-eabi-size --format=SysV $(OUT_APP)/$(APP_NAME).elf
+
+$(OUT_APP)/$(APP_NAME).hex: $(OUT_APP)/$(APP_NAME).elf
+	$(GCC_PATH)/bin/arm-none-eabi-objcopy --change-addresses=$(HEADER_OFFSET) -O ihex $(OUT_APP)/$(APP_NAME).elf $(OUT_APP)/$(APP_NAME).hex
+
+$(OUT_APP)/$(APP_NAME).elf: $(addprefix $(OUT_OBJ)/, $(O_FILES))
+	@echo "LD $@"
+ifeq ($(MAKEINFO), 1)
+	@echo $(LD) $(O_FILES) $(CC_DEPEND) $(@:.o=.d) -o $@ $(LDFLAGS) -T $(LINKER_SCRIPT) -Wl,-Map,$(OUT_FILE_NAME).map
+endif
+	@$(LD) $(addprefix $(OUT_OBJ)/, $(O_FILES)) $(CC_DEPEND) $(@:.o=.d) -o $@ $(LDFLAGS) -T $(LINKER_SCRIPT) -Wl,-Map,$(OUT_FILE_NAME).map
+
+
+$(OUT_OBJ)/%.o: %.c
+	@echo "CC $<"
+ifeq ($(MAKEINFO), 1)
+	@echo $(CC) $(CFLAGS) $(INCLUDE_DIRS) $(CC_DEPEND) $(@:.o=.d) -c $< -o $@
+endif
+	@$(CC) $(CFLAGS) $(INCLUDE_DIRS) $(CC_DEPEND) $(@:.o=.d) -c $< -o $@
+ifeq ($(MAKEINFO), 1)
+	@echo
+endif
+
+$(OUT_OBJ)/%.o: %.S
+	@echo "AS $<"
+ifeq ($(COMPILER), GCC_ARM)
+ifeq ($(MAKEINFO), 1)
+	@echo @$(CC) $(CFLAGS) $(INCLUDE_DIRS) $(CC_DEPEND) $(@:.o=.d) -c $< -o $@
+endif
+	@$(CC) $(CFLAGS) $(INCLUDE_DIRS) $(CC_DEPEND) $(@:.o=.d) -c $< -o $@
+else
+	@echo $(AS) $< -o $@ $(AS_FLAGS)
+	@$(AS) $< -o $@ $(AS_FLAGS)
+endif
+ifeq ($(MAKEINFO), 1)
+	@echo
+endif
+
+clean:
+	@echo "Cleanup out directory..."
+	rm -rf $(OUT_TARGET)/$(BUILDCFG)
+
+clean_boot:
+	@echo "Cleanup out BOOT directory of $(APP_NAME)..."
+	rm -rf $(OUT_TARGET)/$(BUILDCFG)/boot
+
+clean_upgrade:
+	@echo "Cleanup out UPGRADE directory of $(APP_NAME)..."
+	rm -rf $(OUT_TARGET)/$(BUILDCFG)/upgrade
+
+run_cppcheck:
+	@echo "Performing static code analysis with Cppcheck tool..."
+	../../scripts/cpp_check.sh ../../scripts/cpp_check.dat
+
+gen_key_ecc256:
+	@echo Generate ECC256 keys: $(SIGN_KEY_FILE).pem and $(SIGN_KEY_FILE).pub
+	../../scripts/imgtool.py keygen -k keys/$(SIGN_KEY_FILE).pem -t ecdsa-p256
+	../../scripts/imgtool.py getpub -k keys/$(SIGN_KEY_FILE).pem > keys/$(SIGN_KEY_FILE).pub
+
+ifeq ($(MAKEINFO) , 1)
+$(info ASM_FILES: $(ASM_FILES))
+$(info C_FILES: $(C_FILES))
+$(info INCLUDE_DIRS: $(INCLUDE_DIRS))
+$(info DEFINES: $(DEFINES))
+$(info CC: $(CC))
+endif
