From eea5e74da6f8c1ca2b0670f75c16c690808ce023 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 22 Apr 2009 13:28:11 +0000 Subject: Make firmware before install From: Nicola Soranzo Presently with the usual: make && sudo make install firmware is not built during make, but in the second step with root privileges, which should be avoided. This patch adds firmware dependency to the default make target. Moreover, one more file (ihex2fw) should be deleted by firmware clean. Priority: normal Signed-off-by: Nicola Soranzo Signed-off-by: Mauro Carvalho Chehab --- v4l/firmware/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'v4l/firmware/Makefile') diff --git a/v4l/firmware/Makefile b/v4l/firmware/Makefile index d108dd0f7..6c6e88ed2 100644 --- a/v4l/firmware/Makefile +++ b/v4l/firmware/Makefile @@ -7,6 +7,7 @@ FW_DIR = /lib/firmware default: $(TARGETS) clean: + -rm -f ihex2fw -rm -f $(TARGETS) distclean: clean -- cgit v1.2.3 From 2da45c822154d03cd7db86ac11b52385f1fac384 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 23 Apr 2009 15:23:30 -0300 Subject: building system: improve firmware creation From: Mauro Carvalho Chehab This is a major rewrite at v4l/firmware/Makefile: It will now create firmwares only if they don't exist yet, or if the firmware "source" file were touched. Also, use implicit rules instead of explicit, in order to simplify the file. Now, just one line should be modified if a new firmware is added. Priority: normal Signed-off-by: Mauro Carvalho Chehab --- v4l/firmware/Makefile | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'v4l/firmware/Makefile') diff --git a/v4l/firmware/Makefile b/v4l/firmware/Makefile index 6c6e88ed2..c8b0e0578 100644 --- a/v4l/firmware/Makefile +++ b/v4l/firmware/Makefile @@ -1,11 +1,16 @@ -DIRS = vicam dabusb ttusb-budget cpia2 av7110 TARGETS = vicam/firmware.fw dabusb/firmware.fw dabusb/bitstream.bin ttusb-budget/dspbootcode.bin cpia2/stv0672_vp4.bin av7110/bootcode.bin FW_DIR = /lib/firmware #### +DIRS = $(sort $(dir $(TARGETS))) + +.PHONY = default clean distclean install rminstall prep + default: $(TARGETS) +$(TARGETS):: ihex2fw + clean: -rm -f ihex2fw -rm -f $(TARGETS) @@ -13,6 +18,7 @@ clean: distclean: clean -for i in $(DIRS); do if [ -d $$i ]; then rm -rf $$i; fi; done + install: default @echo -n "Installing firmwares at $(FW_DIR): " -@for i in $(DIRS); do if [ ! -d $(FW_DIR)/$$i ]; then mkdir -p $(FW_DIR)/$$i; fi; done @@ -25,33 +31,36 @@ rminstall: ###### -mkdir:: - -@for i in $(DIRS); do if [ ! -d $$i ]; then mkdir -p $$i; fi; done - ihex2fw: ../../linux/firmware/ihex2fw.c @echo " CC $@" @gcc -Wall -o $@ $< -vicam/firmware.fw: ../../linux/firmware/vicam/firmware.H16 mkdir ihex2fw +prep: + @for i in $(DIRS); do \ + if [ ! -d $$i ]; then mkdir -p $$i; fi; \ + for j in ../../linux/firmware/$$i/*; do \ + n=`echo $$j | sed s,../../linux/firmware/,,`; \ + if [ ! -e $$n ]; then \ + ln -f $$j $$n; \ + fi; \ + done; done + +%.fw: %.H16 @echo Generating $@ @./ihex2fw -w $< $@ -dabusb/firmware.fw: ../../linux/firmware/dabusb/firmware.HEX mkdir ihex2fw +%.fw: %.HEX @echo Generating $@ @./ihex2fw $< $@ -ttusb-budget/dspbootcode.bin: ../../linux/firmware/ttusb-budget/dspbootcode.bin.ihex mkdir +%.bin: %.bin.ihex @echo Generating $@ @objcopy -Iihex -Obinary $< $@ -dabusb/bitstream.bin: ../../linux/firmware/dabusb/bitstream.bin.ihex mkdir - @echo Generating $@ - @objcopy -Iihex -Obinary $< $@ - -cpia2/stv0672_vp4.bin: ../../linux/firmware/cpia2/stv0672_vp4.bin.ihex mkdir - @echo Generating $@ - @objcopy -Iihex -Obinary $< $@ +# TODO: Use the Firmware Kconfig dependencies +#fw-$(CONFIG_USB_VICAM) += vicam/firmware.fw +#fw-$(CONFIG_USB_DABUSB) += dabusb/firmware.fw dabusb/bitstream.bin +#fw-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin +#fw-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin +#fw-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin -av7110/bootcode.bin: ../../linux/firmware/av7110/bootcode.bin.ihex mkdir - @echo Generating $@ - @objcopy -Iihex -Obinary $< $@ -- cgit v1.2.3