#Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

$(eval $(call make-pbuilder-bsp-package-target,u-boot-mkimage,bootloader/mtk-tools/u-boot-mkimage))
$(eval $(call make-pbuilder-bsp-package-target,linux-mtk,linux,u-boot-mkimage boot-keys))
$(eval $(call make-pbuilder-bsp-package-target,lk-bootloader,bootloader, u-boot-mkimage))
$(eval $(call make-pbuilder-bsp-package-target,trustzone,trustzone,boot-keys))
$(eval $(call make-pbuilder-bsp-package-target,boot-keys,bootloader/mtk-tools/keys,u-boot-mkimage))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-wlan,connectivity/mt7668-wifi-mod, linux-mtk,,binary))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-bluetooth,connectivity/mt7668-bluetooth-mod, linux-mtk,,binary))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-connectivity-fw,connectivity/mt7668-fw))
$(eval $(call make-pbuilder-bsp-package-target,mtk-board-audio,packages/mtk-board-audio))
$(eval $(call make-pbuilder-bsp-package-target,meta-excelsior,packages/meta-excelsior))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-nvram,packages/excelsior-nvram))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-img-fw,graphics/img-fw, libdrm))
$(eval $(call make-pbuilder-bsp-package-target,wayland-protocols-mtk,graphics/wayland/wayland-protocols))
$(eval $(call make-pbuilder-bsp-package-target,weston-mtk,graphics/wayland/weston, wayland-protocols-mtk mesa-mtk))
$(eval $(call make-pbuilder-bsp-package-target,mesa-mtk,graphics/mesa, libdrm))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-mtkcam-prebuilts,packages/excelsior-mtkcam-prebuilts))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-mtkcam,packages/excelsior-mtkcam,excelsior-mtkcam-prebuilts android-core excelsior-nvram))
$(eval $(call make-pbuilder-bsp-package-target,glmark2,graphics/glmark2,weston-mtk))
$(eval $(call make-pbuilder-bsp-package-target,excelsior-vpu-prebuilts,multimedia/vpu,gst-plugins-good1.0 gst-mtkmdp mdpd))
$(eval $(call make-pbuilder-bsp-package-target,libdrm,packages/libdrm))
$(eval $(call make-pbuilder-bsp-package-target,libmdp-prot,multimedia/libmdp_prot))
$(eval $(call make-pbuilder-bsp-package-target,mdpd,multimedia/mdpd, libmdp-prot))
$(eval $(call make-pbuilder-bsp-package-target,gstreamer1.0,packages/gstreamer1.0))
$(eval $(call make-pbuilder-bsp-package-target,gst-plugins-base1.0,packages/gst-plugins-base1.0),gstreamer1.0)
$(eval $(call make-pbuilder-bsp-package-target,gst-plugins-good1.0,packages/gst-plugins-good1.0,gst-plugins-base1.0))
$(eval $(call make-pbuilder-bsp-package-target,gst-mtkmdp,multimedia/gst-mtkmdp,gst-plugins-base1.0 wayland-protocols-mtk))
