###############################################################################
#                                                                             #
# IPFire.org - A linux based firewall                                         #
# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.org>                     #
#                                                                             #
# This program is free software: you can redistribute it and/or modify        #
# it under the terms of the GNU General Public License as published by        #
# the Free Software Foundation, either version 3 of the License, or           #
# (at your option) any later version.                                         #
#                                                                             #
# This program is distributed in the hope that it will be useful,             #
# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
# GNU General Public License for more details.                                #
#                                                                             #
# You should have received a copy of the GNU General Public License           #
# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
#                                                                             #
###############################################################################

###############################################################################
# Definitions
###############################################################################

include Config

SUMMARY    = Firmware files for PC Engines apu system boards

VER        = 4.17.0.1

THISAPP    = pcengines-apu-firmware-$(VER)
DL_FROM    = $(URL_IPFIRE)
DIR_APP    = $(DIR_SRC)/$(THISAPP)
TARGET     = $(DIR_INFO)/$(THISAPP)
PROG       = pcengines-apu-firmware
PAK_VER    = 12
SUP_ARCH   = x86_64

DEPS       = firmware-update

SERVICES   =

###############################################################################
# Top-level Rules
###############################################################################

objects = \
	apu1_v$(VER).rom \
	apu2_v$(VER).rom \
	apu3_v$(VER).rom \
	apu4_v$(VER).rom \
	apu5_v$(VER).rom \
	apu6_v$(VER).rom

apu1_v$(VER).rom = $(DL_FROM)/apu1_v$(VER).rom
apu2_v$(VER).rom = $(DL_FROM)/apu2_v$(VER).rom
apu3_v$(VER).rom = $(DL_FROM)/apu3_v$(VER).rom
apu4_v$(VER).rom = $(DL_FROM)/apu4_v$(VER).rom
apu5_v$(VER).rom = $(DL_FROM)/apu5_v$(VER).rom
apu6_v$(VER).rom = $(DL_FROM)/apu6_v$(VER).rom

apu1_v$(VER).rom_BLAKE2 = d4bad8ee0fd13d8c6cec47a5dd7d06bb4e768693e7f65979b1d5f930e541ef5bbaed398fc5d5336248a016b3916562b71308f82e373ed54dac3e159ddc982359
apu2_v$(VER).rom_BLAKE2 = d2f226edc5edf9eca6ad332b3e526d55278e583627b645a621e0f054504f2317b95d518d2c8026fd43473a1f39a7c0b750e1497a4616af077683f6100b4f44a6
apu3_v$(VER).rom_BLAKE2 = 498d9ef9d563d240f27468cc04b73816299eecaa62acacdcfff59076bff20a2e28526e7dc3dc88693c99303eba1bb15d345584851c4f4423c0239f7cd5304721
apu4_v$(VER).rom_BLAKE2 = ca454c3a4241529c998bc36cbeefd36025be0d18b2bb4bba6b703125d75d0db71a63f12a31399e25bc8825d0bd229d74d1a7254f326a36ad89202f2e57a09a69
apu5_v$(VER).rom_BLAKE2 = 2a24c540a8ff1003f40b70803b45e473bc349df66ecc41109fed7bf496ec741e264f8515f3a21682359cc5d3b65f15e291936f23c93c624064215deffa149e7c
apu6_v$(VER).rom_BLAKE2 = 87d1e8f5913205236f6d96b6e4611d464b269529bd9e7c95451b00ab9ea303147ea3c79706e4f6b514ae5985f487ae15c650ba38d54a4e208a4ef7ca5c701dda
apu7_v$(VER).rom_BLAKE2 = 078ebf4601e8eed8121683eb072f628e7cc422f67f43b9a79c89779d8703e016ab24207bb54c9f55eda4017bb78f6c71873faf6bc09a9d88815d06e7f4401dac

install : $(TARGET)

check : $(patsubst %,$(DIR_CHK)/%,$(objects))

download :$(patsubst %,$(DIR_DL)/%,$(objects))

b2 : $(subst %,%_BLAKE2,$(objects))

dist:
	@$(PAK)

###############################################################################
# Downloading, checking, b2sum
###############################################################################

$(patsubst %,$(DIR_CHK)/%,$(objects)) :
	@$(CHECK)

$(patsubst %,$(DIR_DL)/%,$(objects)) :
	@$(LOAD)

$(subst %,%_BLAKE2,$(objects)) :
	@$(B2SUM)

###############################################################################
# Installation Details
###############################################################################

$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
	@$(PREBUILD)

	# Install firmware to /lib/firmware
	mkdir -pv /lib/firmware/pcengines/apu
	cd $(DIR_DL) && install -v -m 644 $(objects) \
		/lib/firmware/pcengines/apu

	@$(POSTBUILD)
