diff options
Diffstat (limited to 'v4l/firmware/Makefile')
-rw-r--r-- | v4l/firmware/Makefile | 76 |
1 files changed, 49 insertions, 27 deletions
diff --git a/v4l/firmware/Makefile b/v4l/firmware/Makefile index 272b2e668..c8b0e0578 100644 --- a/v4l/firmware/Makefile +++ b/v4l/firmware/Makefile @@ -1,44 +1,66 @@ -DIRS = vicam dabusb ttusb-budget cpia2 - -TARGETS = ihex2fw vicam/firmware.fw dabusb/firmware.fw dabusb/bitstream.bin ttusb-budget/dspbootcode.bin cpia2/stv0672_vp4.bin +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) distclean: clean - -for i in $(DIRS); do if [ -d $$i ]; then rmdir $$i; fi; done + -for i in $(DIRS); do if [ -d $$i ]; then rm -rf $$i; fi; done + install: default - -for i in $(DIRS); do if [ ! -d /lib/firmware/$$i ]; then mkdir -p /lib/firmware/$$i; fi; done - -for i in $(TARGETS); do cp $$i /lib/firmware/$$i; done + @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 + -@for i in $(TARGETS); do echo -n "$$i "; cp $$i $(FW_DIR)/$$i; done + @echo +rminstall: + @echo "Removing firmwares at $(FW_DIR) " + -for i in $(DIRS); do if [ -d $(FW_DIR)/$$i ]; then rm -rf $(FW_DIR)/$$i; fi; done ###### -mkdir: - -for i in $(DIRS); do if [ ! -d $$i ]; then mkdir -p $$i; fi; done - - ihex2fw: ../../linux/firmware/ihex2fw.c - gcc -Wall -o $@ $< - -vicam/firmware.fw: ../../linux/firmware/vicam/firmware.H16 mkdir - ./ihex2fw -w $< $@ - -dabusb/firmware.fw: ../../linux/firmware/dabusb/firmware.HEX mkdir - ./ihex2fw $< $@ - -ttusb-budget/dspbootcode.bin: ../../linux/firmware/ttusb-budget/dspbootcode.bin.ihex mkdir - objcopy -Iihex -Obinary $< $@ - - -dabusb/bitstream.bin: ../../linux/firmware/dabusb/bitstream.bin.ihex mkdir - objcopy -Iihex -Obinary $< $@ - -cpia2/stv0672_vp4.bin: ../../linux/firmware/cpia2/stv0672_vp4.bin.ihex mkdir - objcopy -Iihex -Obinary $< $@ + @echo " CC $@" + @gcc -Wall -o $@ $< + +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 $< $@ + +%.fw: %.HEX + @echo Generating $@ + @./ihex2fw $< $@ + +%.bin: %.bin.ihex + @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 |