# // ******************************************************************************
# //  FileName............: Makefile
# // ------------------------------------------------------------------------------
# //  Makefile
# //
# //  Optional compilations:
# //    DEBUG=1   Compile with debug support
# //    LWIP=1    Compile using LwIp ethernet stack (instead of FreeRTOS-Plus-TCP stack)
# //    OPCUA=1   Compile with OpcUa and MbedTls (only available with LWIP=1)
# //
# //  Note that -not- all source files being compiled are necessarily used by
# //  the application!
# //  Also note that -order- matters, because we have some source files with
# //  identical names (sometimes deliberate, because we have modified these)
# //
# //  Version/Date    Comment
# //   2026.05.29     - First release
# // ******************************************************************************

# Defines the ROM, part and project name
# TM4C129XNCZAD is a Stellaris part which is an ARMV7M variant
ROM=TARGET_IS_TM4C129_RA2
PART=TM4C129XNCZAD
PROJECT=Application
OBJDIR=_obj

# The base directory
ROOT=.

# Note: Also see system.h file
YEARVERSION=26
MINORVERSION=01
VERSION=${YEARVERSION}${MINORVERSION}

# Include the common make definitions
include ${ROOT}/makedefs

#
IPATH=.
IPATH+=./project
IPATH+=./project/certificates
IPATH+=./project/open62541/arch/freertos
IPATH+=./project/open62541/build/src_generated
IPATH+=./project/open62541/src/server

IPATH+=./drivers
IPATH+=./driverlib
IPATH+=./third_party
IPATH+=./utils
IPATH+=./inc

VPATH=${IPATH}

# Try finding .h file directories
# Finds directories named 'include' or 'plugins'
ifeq ($(os), CYGWIN)
ALL_DIRS := $(shell dir third_party /b /s /ad 2>nul)
ALL_DIRS_FIXED := $(subst \,/,$(ALL_DIRS))
INC_DIRS_UNSORTED := $(filter %/include %/plugins,$(ALL_DIRS_FIXED))
INC_DIRS := $(sort $(INC_DIRS_UNSORTED))
else
INC_DIRS := $(shell find third_party -type d \( -name "include" -o -name "plugins" \) | sort -u)
endif
IPATH+=$(INC_DIRS)

# Add paths that are not provided by the generic search above
IPATH+=./third_party/FreeRTOS/Source/portable/GCC/ARM_CM4F
IPATH+=./third_party/FreeRTOS-Plus-TCP/source/portable/Compiler/GCC
IPATH+=./third_party/lwip-contrib/contrib/ports/tiva-tm4c1294
IPATH+=./third_party/open62541/deps
IPATH+=./third_party/open62541/src/server


# The default rule, which causes the project to be built
all: ${OBJDIR}
all: ${OBJDIR}/${PROJECT}.axf


# The rule to clean out all the build products
clean:
ifeq ($(os), CYGWIN)
	@if exist $(OBJDIR) (rmdir /S /Q $(OBJDIR))
else
	@rm -rf ${OBJDIR} ${wildcard *~}
endif


# The rule to create the target directory (gcc)
${OBJDIR}:
ifeq ($(os), CYGWIN)
# System
	@mkdir ${OBJDIR}
else
	@mkdir -p ${OBJDIR}
endif


# Rules for building the project
# DriverLib
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/adc.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/aes.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/can.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/comp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/cpu.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/crc.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/des.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/eeprom.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/emac.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/epi.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/flash.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/fpu.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/gpio.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/hibernate.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/i2c.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/interrupt.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/lcd.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/mpu.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/onewire.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/pwm.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/qei.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/shamd5.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/ssi.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/sw_crc.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/sysctl.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/sysexc.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/systick.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/timer.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/uart.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/udma.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/usb.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/driverlib/watchdog.o
# Drivers
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/drivers/rtos_hw_drivers.o
# Utils
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/utils/uartstdio.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/utils/ustdlib.o

# FreeRTOS
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/croutine.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
# Heap 4 is preferred (heap 2 is legacy)
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/portable/MemMang/heap_4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/list.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/event_groups.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/queue.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/tasks.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS/Source/timers.o

# FreeRTOS-Plus-TCP
ifneq (${LWIP}, 1)
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_ARP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_BitConfig.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DHCP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DHCPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Cache.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Callback.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Networking.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Parser.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_ICMP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IP_Timers.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IP_Utils.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IPv4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IPv4_Sockets.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IPv4_Utils.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IPv6_Sockets.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_IPv6_Utils.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_ND.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_RA.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_Routing.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_Sockets.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_Stream_Buffer.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_IP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_IP_IPv4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_IP_IPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Reception.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_State_Handling.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_State_Handling_IPv4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_State_Handling_IPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Transmission.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Transmission_IPv4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Transmission_IPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Utils.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Utils_IPv4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Utils_IPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_WIN.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_Tiny_TCP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_UDP_IP.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_UDP_IPv4.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/FreeRTOS_UDP_IPv6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/portable/BufferManagement/BufferAllocation_1.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/portable/BufferManagement/BufferAllocation_2.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/Common/phyHandling.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/TM4C/NetworkInterface.o
endif

# LwIp
ifeq (${LWIP}, 1)
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip-contrib/contrib/ports/tiva-tm4c1294/lwiplib.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip-contrib/contrib/ports/tiva-tm4c1294/netif/tiva-tm4c129.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/contrib/ports/freertos/sys_arch.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/api_lib.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/api_msg.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/err.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/if_api.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/netbuf.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/netdb.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/netifapi.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/sockets.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/api/tcpip.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/altcp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/altcp_alloc.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/altcp_tcp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/def.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/dns.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/inet_chksum.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/init.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ip.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/acd.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/autoip.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/dhcp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/etharp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/icmp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/igmp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/ip4_addr.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/ip4.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv4/ip4_frag.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/dhcp6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/ethip6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/icmp6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/inet6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/ip6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/ip6_addr.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/ip6_frag.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/mld6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/ipv6/nd6.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/mem.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/memp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/netif.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/pbuf.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/raw.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/stats.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/sys.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/tcp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/tcp_in.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/tcp_out.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/timeouts.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/core/udp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/bridgeif.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/bridgeif_fdb.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ethernet.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/lowpan6.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/lowpan6_ble.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/lowpan6_common.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/auth.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/ccp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/chap-md5.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/chap_ms.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/chap-new.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/demand.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/eap.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/ecp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/eui64.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/fsm.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/ipcp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/ipv6cp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/lcp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/magic.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/mppe.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/multilink.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/polarssl/arc4.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/polarssl/des.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/polarssl/md4.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/polarssl/md5.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/polarssl/sha1.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/ppp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/pppapi.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/pppcrypt.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/pppoe.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/pppol2tp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/pppos.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/upap.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/utils.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/ppp/vj.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/slipif.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/lwip/src/netif/zepif.o
endif

# Open62541
ifeq (${OPCUA}, 1)
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/build/src_generated/open62541/statuscodes.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/build/src_generated/open62541/transport_generated.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/build/src_generated/open62541/types_generated.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/openssl/certificategroup.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/openssl/securitypolicy_basic256sha256.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/openssl/securitypolicy_common.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/ua_certificategroup_none.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/ua_securitypolicy_none.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/mbedtls/certificategroup.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/mbedtls/securitypolicy_basic256sha256.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/crypto/mbedtls/securitypolicy_common.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/ua_accesscontrol_default.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/ua_log_stdout.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/ua_config_default.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/plugins/ua_nodestore_ziptree.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/ua_types_encoding_binary.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_discovery.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_server.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_server_async.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_server_binary.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_server_config.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_server_ns0.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_server_utils.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_subscription.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_subscription_datachange.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_nodes.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_session.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_attribute.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_discovery.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_method.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_monitoreditem.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_nodemanagement.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_securechannel.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_session.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_subscription.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_services_view.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/server/ua_subscription_alarms_conditions.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/util/ua_encryptedsecret.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/util/ua_util.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/ua_securechannel.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/ua_securechannel_crypto.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/src/ua_types.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/lwip/eventloop_lwip.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/lwip/eventloop_lwip_tcp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/lwip/eventloop_lwip_udp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/common/eventloop_mqtt.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/common/eventloop_common.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/common/timer.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/arch/freertos/clock_freertos.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/base64.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/cj5.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/dtoa.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/itoa.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/libc_time.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/mp_printf.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/musl_inet_pton.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/parse_num.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/pcg_basic.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/utf8.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/yxml.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/open62541/deps/ziptree.o
endif

# MBedTls
ifeq (${OPCUA}, 1)
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/aes.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/aesce.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/aesni.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/asn1write.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/aria.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/asn1parse.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/base64.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/bignum.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/bignum_core.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/bignum_mod.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/bignum_mod_raw.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/block_cipher.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/camellia.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ccm.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/chacha20.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/chachapoly.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/cipher.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/cipher_wrap.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/cmac.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/constant_time.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ctr_drbg.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/debug.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/des.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/dhm.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ecdh.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ecdsa.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ecjpake.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ecp.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ecp_curves.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ecp_curves_new.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/entropy.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/entropy_poll.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/error.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/gcm.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/hkdf.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/hmac_drbg.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/lmots.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/lms.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/md.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/md5.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/memory_buffer_alloc.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/mps_reader.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/mps_trace.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/net_sockets.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/nist_kw.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/oid.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/padlock.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pem.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pk.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pk_ecc.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pk_wrap.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pkcs12.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pkcs5.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pkcs7.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pkparse.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/pkwrite.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/platform.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/platform_util.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/poly1305.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_aead.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_cipher.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_client.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_driver_wrappers_no_static.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_ecp.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_ffdh.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_hash.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_mac.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_pake.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_random.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_rsa.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_se.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_slot_management.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_crypto_storage.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_its_file.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/psa_util.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ripemd160.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/rsa.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/rsa_alt_helpers.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/sha1.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/sha256.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/sha3.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/sha512.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_cache.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_ciphersuites.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_client.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_cookie.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_debug_helpers_generated.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_msg.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_ticket.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls12_client.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls12_server.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls13_client.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls13_generic.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls13_keys.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/ssl_tls13_server.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/threading.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/timing.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/version.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/version_features.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509_create.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509_crl.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509_crt.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509_csr.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509write.o
# ${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509write_crt.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/mbedtls/library/x509write_csr.o
endif

# Application
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/main.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/TaskLocatorServer.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/TasksNetworking.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/TaskWebServer.o
ifeq (${OPCUA}, 1)
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/TaskOpcUaServer.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/MbedTlsHardware.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/certificates/server_cert_der.o
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/certificates/server_key_der.o
endif


# Startup / RAM configuration
${OBJDIR}/${PROJECT}.axf: ${OBJDIR}/project/startup_gcc.o
${OBJDIR}/${PROJECT}.axf: ./project/application.ld

SCATTERgcc_${PROJECT}=project/application.ld
ENTRY_${PROJECT}=ResetISR

# Include the automatically generated dependency files
ifneq (${MAKECMDGOALS},clean)
  -include ${wildcard ${OBJDIR}/*.d} __dummy__
endif
