# Preamble. Don't define any targets in this file! This is effectively just a
# common header where useful global vars go.

IS_GLINUX ?= false
ifneq (,$(wildcard /etc/dpkg/origins/glinux))
	IS_GLINUX = true
endif

# Globally useful directories
TOOLCHAIN := $(ROOTDIR)/toolchains/aarch64-linux-android/bin/aarch64-linux-android-

# Kernel directories and options
KERNEL_SRC_DIR := $(ROOTDIR)/linux-imx
KERNEL_OUT_DIR := $(PRODUCT_OUT)/obj/KERNEL_OBJ
KERNEL_OPTIONS := ARCH=arm64 CROSS_COMPILE=$(TOOLCHAIN) LOCALVERSION=-aiy

FETCH_PBUILDER_DIRECTORY ?= /google/data/ro/teams/spacepark/enterprise/kokoro/prod/spacepark/enterprise/pbuilder
FETCH_PBUILDER_BASE ?= $(IS_GLINUX)

PACKAGES_EXTRA := \
	alsa-utils \
	apt-transport-https \
	apt-listchanges \
	apt-utils \
	aptitude \
	avahi-daemon \
	bash-completion \
	build-essential \
	cpio \
	cron \
	curl \
	dbus \
	debconf-i18n \
	debian-archive-keyring \
	debian-faq \
	dialog \
	dmidecode \
	dnsmasq \
	doc-debian \
	ethtool \
	file \
	firmware-atheros \
	gettext-base \
	gnupg \
	hdparm \
	i2c-tools \
	ifupdown \
	init \
	iptables \
	iputils-ping \
	isc-dhcp-client \
	isc-dhcp-common \
	kbd \
	krb5-locales \
	less \
	libc++1 \
	libc++abi1 \
	libclass-isa-perl \
	libinput10 \
	liblockfile-bin \
	libnss-mdns \
	libpam-systemd \
	libswitch-perl \
	libwayland-cursor0 \
	libwayland-egl1-mesa \
	libxcb-composite0 \
	libxcb-shape0 \
	libxcursor1 \
	libxkbcommon0 \
	linux-base \
	lm-sensors \
	locales \
	logrotate \
	lrzsz \
	lsof \
	man-db \
	manpages \
	nano \
	ncurses-term \
	net-tools \
	netbase \
	netcat-traditional \
	network-manager \
	openssh-server \
	parted \
	pciutils \
	psmisc \
	pulseaudio \
	python \
	python-minimal \
	python2.7 \
	python3-jwt \
	python3-numpy \
	python3-pip \
	python3-reportbug \
	python3-setuptools \
	python3-wheel \
	reportbug \
	rsync \
	rsyslog \
	sudo \
	systemd \
	systemd-sysv \
	tasksel \
	telnet \
	traceroute \
	unzip \
	v4l-utils \
	vim \
	wamerican \
	wget \
	whiptail \
	wireless-tools \
	wpasupplicant \
	xdg-user-dirs \
	xwayland

TARBALL_FETCH_ROOT_DIRECTORY ?= \
	/google/data/ro/teams/spacepark/enterprise/kokoro/prod/spacepark/enterprise/rootfs

PREBUILT_DOCKER_ROOT ?= /google/data/ro/teams/spacepark/enterprise/kokoro/prod/spacepark/enterprise/docker

FETCH_PACKAGES ?= $(IS_GLINUX)
PACKAGES_REVISION ?= latest
PACKAGES_FETCH_ROOT_DIRECTORY ?= /google/data/ro/teams/spacepark/enterprise/kokoro/prod/spacepark/enterprise/continuous

# Image size variables
BOOT_START := 8
BOOT_SIZE_MB := 128
ROOTFS_START := $(shell echo $(BOOT_START)+$(BOOT_SIZE_MB) | bc)
ROOTFS_SIZE_MB := 4096
UBOOT_START := 66# Cribbed from Yocto.
SDIMAGE_SIZE_MB := $(shell echo $(ROOTFS_START)+$(ROOTFS_SIZE_MB) | bc)
