CC := ${QNX_HOST}/usr/bin/aarch64-unknown-nto-$(QNX_HOST_SDPID)-gcc
CXX := ${QNX_HOST}/usr/bin/aarch64-unknown-nto-$(QNX_HOST_SDPID)-g++
AR := ${QNX_HOST}/usr/bin/aarch64-unknown-nto-$(QNX_HOST_SDPID)-ar
PKG_CONFIG_LIBDIR:= ${INSTALL_ROOT_nto}/aarch64le/usr/lib/pkgconfig
JACK_CONFIG := --clients=32 --ports-per-application=256 --ports-per-server=256 --disable-graph-latency-callback
WAF_CFG := --platform=qnx --prefix=/usr --libdir=/usr/lib $(JACK_CONFIG)
LDFLAGS_DEFAULT := -L${INSTALL_ROOT_nto}/aarch64le/lib -L${INSTALL_ROOT_nto}/aarch64le/usr/lib -L${QNX_TARGET}/aarch64le/lib -L${QNX_TARGET}/aarch64le/usr/lib
WAFLOCK_FILE := .lock-waf_makefile_build
WAF_CMD := WAFLOCK=$(WAFLOCK_FILE) ./waf

ifeq ($(shell [ $(version) -ge 710 ] && echo 1 || echo 0), 1)
	LDFLAGS_710 := -lregex -lstdc++
	LDFLAGS := "$(LDFLAGS_DEFAULT) $(LDFLAGS_710)"
else
	LDFLAGS := "$(LDFLAGS_DEFAULT)"
endif

.PHONY: all
all:
	CC=$(CC) CXX=$(CXX) AR=$(AR) LDFLAGS=$(LDFLAGS) PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR) $(WAF_CMD) configure $(WAF_CFG)
	$(WAF_CMD) build
	$(WAF_CMD) install --destdir=${INSTALL_ROOT_nto}/aarch64le

.PHONY: install
install: all
	$(MAKE) --directory=config install

.PHONY: doc
doc:
	# without compiler flags, build command in this step is compiling the binaries for x86
	CC=$(CC) CXX=$(CXX) AR=$(AR) LDFLAGS=$(LDFLAGS) PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR) $(WAF_CMD) configure $(WAF_CFG) --doxygen
	$(WAF_CMD) build

.PHONY:clean
clean:
	# ignore error codes otherwise it would for example fail if clean is called before configure
	-$(WAF_CMD) clean

