# 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))