blob: c9d2d25785d587b59ec806b4bd09dfd341191288 [file] [log] [blame]
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This file contains definitions that are specific to the invocation
# and usage of Gnu Make.
ifndef VERBOSE
# Be silent unless 'VERBOSE' is set on the make command line.
SILENT = --silent
endif
ifndef ADHD_BUILD_DIR
export ADHD_BUILD_DIR = $(ADHD_DIR)/build/$(BOARD)
endif
GAVD_ARCHIVE = $(ADHD_BUILD_DIR)/lib/gavd.a
LIBS = \
-L$(ADHD_DIR)/cras/src/.libs \
$(GAVD_ARCHIVE) \
$(foreach lib,$(MY_LIBS),-l$(lib))
# mkdir: Creates a directory, and all its parents, if it does not exist.
#
mkdir = [ ! -d $(1) ] && \
$(MKDIR) --parents $(1) || true
# remake: Gnu Make function which will create the build directory,
# then build the first argument by recursively invoking make.
# The recursive make is performed in the build directory.
#
# $(call remake,<label>,<subdirectory>,<makefile>,<target>)
#
# ex: @$(call remake,Building,gavd,Makefile,gavd)
# $(1) $(2) $(3) $(4)
#
# REL_DIR:
#
# Directory relative from the root of the source tree. REL_DIR is
# built up using the previous value plus the current target
# directory.
#
# ADHD_SOURCE_DIR:
#
# The directory containing the sources for the target directory
# being built. This is used by Makefiles to access files in the
# source directory. It has the same value as VPATH.
#
# THIS_BUILD_DIR:
#
# The build directory which is currently being built. This is the
# same 'pwd', and the directory in which Make is building.
#
# The build is performed in the build directory and VPATH is used to
# allow Make to find the source files in the source directory.
#
remake = \
+($(if $(REL_DIR), \
export REL_DIR=$${REL_DIR}/$(2), \
export REL_DIR=$(2)) && \
$(call mkdir,$(ADHD_BUILD_DIR)/$${REL_DIR}) && \
$(MESSAGE) "$(1) $${REL_DIR}"; \
$(MAKE) $(SILENT) \
-f $(ADHD_DIR)/$${REL_DIR}/$(3) \
-C $(ADHD_BUILD_DIR)/$${REL_DIR} \
VPATH=$(ADHD_DIR)/$${REL_DIR} \
ADHD_SOURCE_DIR=$(ADHD_DIR)/$${REL_DIR} \
THIS_BUILD_DIR=$(ADHD_BUILD_DIR)/$${REL_DIR} \
$(4))