# Copyright (c) 2013 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.

# Settings that are common to all target boards.  Do not place any board
# specific settings in here, or settings for the sdk.
#
# See "man make.conf" for the available options.

# Pull in definition of at least { ROOT, CHOST, [BOARD_OVERLAY] }
source make.conf.board_setup

# TODO: This will have to come from somewhere else when we support a 32-bit
# build host environment.
CBUILD=x86_64-pc-linux-gnu

# We need a dummy setting here as make.conf files expect to expand ${USE}.
# When we don't have this, they get the USE from the profile, and that has
# a very different meaning when expanded at the make.conf level as it will
# override all profile settings.
USE=""

# Be sure we don't overwrite pkgs from another sysroot.
PKGDIR=${ROOT}packages/
PORTAGE_TMPDIR=${ROOT}tmp/

PORT_LOGDIR=${ROOT}tmp/portage/logs/

PORTAGE_WORKDIR_MODE="0755"

PORTDIR_OVERLAY="
  /usr/local/portage/chromiumos
  /usr/local/portage/eclass-overlay
  ${BOARD_OVERLAY}
"

# Print a checkpoint message every 10MB while archiving.
PORTAGE_BINPKG_TAR_OPTS="--checkpoint=1000"

# Our chromium mirror should be more stable since we won't discard packages.
GENTOO_MIRRORS="https://commondatastorage.googleapis.com/chromeos-localmirror"
GENTOO_MIRRORS="$GENTOO_MIRRORS https://commondatastorage.googleapis.com/chromeos-mirror/gentoo"

# When building packages for the target, we need to search the target's
# sysroot for additional m4 files.  The autotools.eclass uses this.
AT_SYS_M4DIR="\${SYSROOT}/usr/share/aclocal"

# Remove all .la files for non-plugin libraries.
# Remove Gentoo init files since we use upstart.
# Remove logrotate.d files since we don't use logrotate.
# Remove sandbox files since we don't use that in the sysroot.
# Remove bash-completion files as we don't install bash-completion.
# Remove locale files as we don't use them.
INSTALL_MASK="
  /usr/lib*/*.la
  /etc/init.d /etc/conf.d
  /etc/logrotate.d
  /etc/sandbox.d
  /usr/share/bash-completion
  /usr/share/locale
"
PKG_INSTALL_MASK="${INSTALL_MASK}"

source /mnt/host/source/src/third_party/chromiumos-overlay/chromeos/config/make.conf.common

# Recommended MARCH_TUNE, CFLAGS, etc.
MARCH_TUNE=""

# Allow a board to override or define additional settings.
source make.conf.board

# NOTE: Flags here apply to all of our toolchains, including GCC, clang, and
# ARC++'s clang (which notably uses ld.bfd at times). Please tread carefully and
# test thoroughly before adding flags here.
COMMON_COMPILER_FLAGS="-Os -pipe ${MARCH_TUNE} ${BOARD_COMPILER_FLAGS} \
-g ${CXXEXCEPTIONS_FLAGS} -ffunction-sections -fdata-sections"
CFLAGS="${CFLAGS} ${COMMON_COMPILER_FLAGS}"
CXXFLAGS="${CXXFLAGS} ${COMMON_COMPILER_FLAGS}"
# Clear the variable so people don't try to rely on it.
COMMON_COMPILER_FLAGS=""

LDFLAGS="${LDFLAGS} -Wl,--gc-sections -Wl,--icf=all"

# Allow the user to override or define additional settings.
source make.conf.user
