13395610eSKonstantin Ananyev# Copyright (c) 2016 Intel Corporation.
23395610eSKonstantin Ananyev# Licensed under the Apache License, Version 2.0 (the "License");
33395610eSKonstantin Ananyev# you may not use this file except in compliance with the License.
43395610eSKonstantin Ananyev# You may obtain a copy of the License at:
53395610eSKonstantin Ananyev#
63395610eSKonstantin Ananyev#     http://www.apache.org/licenses/LICENSE-2.0
73395610eSKonstantin Ananyev#
83395610eSKonstantin Ananyev# Unless required by applicable law or agreed to in writing, software
93395610eSKonstantin Ananyev# distributed under the License is distributed on an "AS IS" BASIS,
103395610eSKonstantin Ananyev# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
113395610eSKonstantin Ananyev# See the License for the specific language governing permissions and
123395610eSKonstantin Ananyev# limitations under the License.
133395610eSKonstantin Ananyev
143395610eSKonstantin AnanyevTLDK_ROOT := $(CURDIR)
153395610eSKonstantin Ananyevexport TLDK_ROOT
163395610eSKonstantin Ananyev
1755aba2fcSMohammad Abdul AwalLOCAL_RTE_SDK=$(TLDK_ROOT)/dpdk/_build/dpdk
183395610eSKonstantin Ananyev
193395610eSKonstantin Ananyevifeq ($(RTE_SDK),)
203395610eSKonstantin Ananyev	export RTE_SDK=$(LOCAL_RTE_SDK)
213395610eSKonstantin Ananyevendif
223395610eSKonstantin Ananyev
233395610eSKonstantin AnanyevRTE_TARGET ?= x86_64-native-linuxapp-gcc
243395610eSKonstantin Ananyev
25c034e691SKonstantin AnanyevDIRS-y += lib
26c034e691SKonstantin AnanyevDIRS-y += examples
27a633eec7SKonstantin AnanyevDIRS-y += test
283395610eSKonstantin Ananyev
293395610eSKonstantin AnanyevMAKEFLAGS += --no-print-directory
303395610eSKonstantin Ananyev
313395610eSKonstantin Ananyev# output directory
323395610eSKonstantin AnanyevO ?= $(TLDK_ROOT)/${RTE_TARGET}
333395610eSKonstantin AnanyevBASE_OUTPUT ?= $(abspath $(O))
343395610eSKonstantin Ananyev
353395610eSKonstantin Ananyev.PHONY: all
363395610eSKonstantin Ananyevall: $(DIRS-y)
373395610eSKonstantin Ananyev
383395610eSKonstantin Ananyev.PHONY: clean
393395610eSKonstantin Ananyevclean: $(DIRS-y)
403395610eSKonstantin Ananyev
413395610eSKonstantin Ananyev.PHONY: $(DIRS-y)
423395610eSKonstantin Ananyev$(DIRS-y): $(RTE_SDK)/mk/rte.vars.mk
433395610eSKonstantin Ananyev	@echo "== $@"
443395610eSKonstantin Ananyev	$(Q)$(MAKE) -C $(@) \
453395610eSKonstantin Ananyev		M=$(CURDIR)/$(@)/Makefile \
463395610eSKonstantin Ananyev		O=$(BASE_OUTPUT) \
473395610eSKonstantin Ananyev		BASE_OUTPUT=$(BASE_OUTPUT) \
483395610eSKonstantin Ananyev		CUR_SUBDIR=$(CUR_SUBDIR)/$(@) \
493395610eSKonstantin Ananyev		S=$(CURDIR)/$(@) \
503395610eSKonstantin Ananyev		RTE_TARGET=$(RTE_TARGET) \
513395610eSKonstantin Ananyev		$(filter-out $(DIRS-y),$(MAKECMDGOALS))
523395610eSKonstantin Ananyev
533395610eSKonstantin Ananyev$(RTE_SDK)/mk/rte.vars.mk:
5455aba2fcSMohammad Abdul Awalifeq ($(RTE_SDK),$(LOCAL_RTE_SDK))
553395610eSKonstantin Ananyev	@make RTE_TARGET=$(RTE_TARGET) config all -C $(TLDK_ROOT)/dpdk/
563395610eSKonstantin Ananyevendif
57