Slight tweak to Makefile

Replacing a few duplicated items with a single definition, removing a couple
of unnecessary/redundant dependencies.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: I31e78ae1e3810865e26c9c4937eb44222cbfa9d6
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/207741
diff --git a/Makefile b/Makefile
index 18dc871..2fc37ec 100644
--- a/Makefile
+++ b/Makefile
@@ -232,7 +232,7 @@
 # If we're not building for a specific target, just stub out things like the
 # TPM commands and various external functions that are provided by the BIOS.
 ifeq (${FIRMWARE_ARCH},)
-INCLUDES += -Ifirmware/stub/include
+INCLUDES += -Ifirmware/stub/include -Ihost/include -Ihost/lib/include
 else
 INCLUDES += -Ifirmware/arch/${FIRMWARE_ARCH}/include
 endif
@@ -787,10 +787,6 @@
 
 # Link tests for local utilities
 ${BUILD}/host/linktest/main: ${UTILLIB}
-${BUILD}/host/linktest/main: INCLUDES += \
-	-Ihost/include \
-	-Ihost/arch/${ARCH}/include \
-	-Ihost/lib/include
 ${BUILD}/host/linktest/main: LIBS = ${UTILLIB}
 ALL_OBJS += ${BUILD}/host/linktest/main.o
 
@@ -808,7 +804,6 @@
 
 # Link tests for external repos
 ${BUILD}/host/linktest/extern: ${HOSTLIB}
-${BUILD}/host/linktest/extern: INCLUDES += -Ihost/include
 ${BUILD}/host/linktest/extern: LIBS = ${HOSTLIB}
 ${BUILD}/host/linktest/extern: LDLIBS += -static
 ALL_OBJS += ${BUILD}/host/linktest/extern.o
@@ -818,7 +813,6 @@
 	${BUILD}/host/linktest/extern
 
 # TODO: better way to make .a than duplicating this recipe each time?
-${HOSTLIB}: INCLUDES += -Ihost/include -Ihost/lib/include
 ${HOSTLIB}: ${HOSTLIB_OBJS}
 	@$(PRINTF) "    RM            $(subst ${BUILD}/,,$@)\n"
 	${Q}rm -f $@
@@ -831,7 +825,6 @@
 tinyhostlib: ${TINYHOSTLIB}
 	${Q}cp -f ${TINYHOSTLIB} ${HOSTLIB}
 
-${TINYHOSTLIB}: INCLUDES += -Ihost/include -Ihost/lib/include
 ${TINYHOSTLIB}: ${TINYHOSTLIB_OBJS}
 	@$(PRINTF) "    RM            $(subst ${BUILD}/,,$@)\n"
 	${Q}rm -f $@
@@ -844,8 +837,6 @@
 .PHONY: cgpt
 cgpt: ${CGPT}
 
-${CGPT_OBJS}: INCLUDES += -Ihost/include
-
 ${CGPT}: LDFLAGS += -static
 ${CGPT}: LDLIBS += -luuid
 
@@ -863,10 +854,10 @@
 # Utilities
 
 # These have their own headers too.
-${BUILD}/utility/%: INCLUDES += \
-	-Ihost/include \
-	-Ihost/lib/include \
-	-Iutility/include
+${BUILD}/utility/%: INCLUDES += -Iutility/include
+
+${UTIL_BINS} ${UTIL_BINS_STATIC}: ${UTILLIB}
+${UTIL_BINS} ${UTIL_BINS_STATIC}: LIBS = ${UTILLIB}
 
 # Utilities for auto-update toolkits must be statically linked.
 ${UTIL_BINS_STATIC}: LDFLAGS += -static
@@ -877,9 +868,6 @@
 	${Q}cp -f ${UTIL_SCRIPTS} ${BUILD}/utility
 	${Q}chmod a+rx $(patsubst %,${BUILD}/%,${UTIL_SCRIPTS})
 
-${UTIL_BINS} ${UTIL_BINS_STATIC}: ${UTILLIB}
-${UTIL_BINS} ${UTIL_BINS_STATIC}: LIBS = ${UTILLIB}
-
 .PHONY: utils_install
 utils_install: ${UTIL_BINS} ${UTIL_SCRIPTS}
 	@$(PRINTF) "    INSTALL       UTILS\n"
@@ -906,11 +894,11 @@
 .PHONY: futil
 futil: ${FUTIL_STATIC_BIN} ${FUTIL_BIN}
 
-${FUTIL_STATIC_BIN}: ${FUTIL_LDS} ${FUTIL_STATIC_OBJS}
+${FUTIL_STATIC_BIN}: ${FUTIL_LDS} ${FUTIL_STATIC_OBJS} ${UTILLIB}
 	@$(PRINTF) "    LD            $(subst ${BUILD}/,,$@)\n"
 	${Q}${LD} -o $@ ${CFLAGS} ${LDFLAGS} -static $^ ${LDLIBS}
 
-${FUTIL_BIN}: ${FUTIL_LDS} ${FUTIL_OBJS}
+${FUTIL_BIN}: ${FUTIL_LDS} ${FUTIL_OBJS} ${UTILLIB}
 	@$(PRINTF) "    LD            $(subst ${BUILD}/,,$@)\n"
 	${Q}${LD} -o $@ ${CFLAGS} ${LDFLAGS} $^ ${LDLIBS}
 
@@ -922,14 +910,6 @@
 	${Q}for prog in ${FUTIL_OLD}; do \
 		ln -sf futility "${F_DIR}/$$prog"; done
 
-# TODO(wfrichar): This will need some refactoring (crbug.com/228932)
-${BUILD}/futility/% ${UTILLIB}: INCLUDES += \
-	-Ihost/include \
-	-Ihost/arch/${ARCH}/include \
-	-Ihost/lib/include
-${FUTIL_STATIC_BIN} ${FUTIL_BIN}: ${UTILLIB}
-${FUTIL_STATIC_BIN} ${FUTIL_BIN}: LIBS = ${UTILLIB}
-
 # ----------------------------------------------------------------------------
 # Utility to generate TLCL structure definition header file.
 
@@ -1044,7 +1024,6 @@
 
 # Allow multiple definitions, so tests can mock functions from other libraries
 ${BUILD}/tests/%: CFLAGS += -Xlinker --allow-multiple-definition
-${BUILD}/tests/%: INCLUDES += -Ihost/include -Ihost/lib/include
 ${BUILD}/tests/%: LDLIBS += -lrt -luuid
 ${BUILD}/tests/%: LIBS += ${TESTLIB}