diff options
Diffstat (limited to 'v4l/Makefile')
-rw-r--r-- | v4l/Makefile | 695 |
1 files changed, 234 insertions, 461 deletions
diff --git a/v4l/Makefile b/v4l/Makefile index ab94f891f..b8eba1a44 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -3,233 +3,64 @@ obj = . endif ################################################# -# configuration +# Version Check -include $(obj)/Make.config +ifneq ($(KERNELRELEASE),) -# symbol exports -export-objs := video-buf.o v4l1-compat.o v4l2-common.o -export-objs += ir-common.o -ifeq ($(CONFIG_VIDEO_DEV),m) -export-objs += videodev.o -endif -export-objs += bttv-if.o btcx-risc.o -export-objs += cx88-cards.o cx88-core.o -export-objs += saa7134-core.o saa7134-tvaudio.o - -# drivers objects -ir-common-objs := ir-keymaps.o ir-functions.o -bttv-objs := bttv-driver.o bttv-cards.o bttv-risc.o bttv-if.o \ - bttv-vbi.o bttv-i2c.o bttv-input.o -saa7134-objs := saa7134-core.o saa7134-i2c.o saa7134-video.o \ - saa7134-vbi.o saa7134-tvaudio.o \ - saa7134-cards.o saa7134-ts.o saa7134-input.o - - -cx88xx-objs := cx88-cards.o cx88-core.o cx88-i2c.o cx88-tvaudio.o \ - cx88-input.o -cx8800-objs := cx88-video.o cx88-vbi.o -cx8802-objs := cx88-mpeg.o -tuner-objs := tuner-core.o tuner-types.o tuner-simple.o mt20xx.o tda8290.o tea5767.o -ifeq ($(CONFIG_XC3028),m) -tuner-objs += xc3028.o -endif -msp3400-objs := msp3400-driver.o msp3400-kthreads.o -list-multi := bttv.o saa7134.o cx88xx.o cx8800.o cx88-alsa.o cx8802.o -em28xx-objs := em28xx-video.o em28xx-i2c.o em28xx-cards.o em28xx-core.o \ - em28xx-input.o -cx25840-objs := cx25840-core.o cx25840-audio.o cx25840-firmware.o \ - cx25840-vbi.o -dvb-core-objs := dvbdev.o dmxdev.o dvb_demux.o dvb_filter.o \ - dvb_ca_en50221.o dvb_frontend.o \ - dvb_net.o dvb_ringbuffer.o -b2c2-flexcop-objs := flexcop.o flexcop-fe-tuner.o flexcop-i2c.o \ - flexcop-sram.o flexcop-eeprom.o flexcop-misc.o \ - flexcop-hw-filter.o flexcop-dma.o -b2c2-flexcop-pci-objs := flexcop-pci.o -b2c2-flexcop-usb-objs := flexcop-usb.o -dvb-usb-objs := dvb-usb-firmware.o dvb-usb-init.o dvb-usb-urb.o \ - dvb-usb-i2c.o dvb-usb-dvb.o dvb-usb-remote.o -dvb-usb-vp7045-objs := vp7045.o vp7045-fe.o -dvb-usb-vp702x-objs := vp702x.o vp702x-fe.o -dvb-usb-dtt200u-objs := dtt200u.o dtt200u-fe.o -dvb-usb-dibusb-common-objs := dibusb-common.o -dvb-usb-a800-objs := a800.o -dvb-usb-dibusb-mb-objs := dibusb-mb.o -dvb-usb-dibusb-mc-objs := dibusb-mc.o -dvb-usb-nova-t-usb2-objs := nova-t-usb2.o -dvb-usb-umt-010-objs := umt-010.o -dvb-usb-digitv-objs := digitv.o -dvb-usb-cxusb-objs := cxusb.o -dvb-ttpci-objs := av7110_hw.o av7110_v4l.o av7110_av.o \ - av7110_ca.o av7110.o av7110_ipack.o av7110_ir.o -saa7146-objs := saa7146_i2c.o saa7146_core.o -saa7146_vv-objs := saa7146_vv_ksyms.o saa7146_fops.o \ - saa7146_video.o saa7146_hlp.o saa7146_vbi.o -pvrusb2-objs := pvrusb2-i2c-core.o pvrusb2-i2c-cmd-v4l2.o \ - pvrusb2-audio.o pvrusb2-i2c-chips-v4l2.o \ - pvrusb2-encoder.o pvrusb2-video-v4l.o \ - pvrusb2-eeprom.o pvrusb2-tuner.o pvrusb2-demod.o \ - pvrusb2-main.o pvrusb2-hdw.o pvrusb2-v4l2.o \ - pvrusb2-sysfs.o pvrusb2-context.o pvrusb2-io.o \ - pvrusb2-ioread.o pvrusb2-debugifc.o -dvb-firesat-objs := firesat.o avc_api.o cmp.o firesat-rc.o -ivtv-objs := ivtv-driver.o ivtv-fileops.o ivtv-i2c.o ivtv-streams.o \ - ivtv-firmware.o ivtv-reset.o ivtv-gpio.o ivtv-queue.o \ - ivtv-irq.o ivtv-mailbox.o ivtv-vbi.o ivtv-kthreads.o \ - ivtv-audio.o ivtv-ioctl.o ivtv-controls.o ivtv-video.o \ - ivtv-cards.o ivtv-yuv.o -ivtv-fb-objs := ivtv-osd.o ivtv-queue.o -cpia2-objs := cpia2_core.o cpia2_usb.o cpia2_v4l.o - -obj-m := video-buf.o v4l1-compat.o v4l2-common.o -obj-m += compat_ioctl32.o -ifeq ($(CONFIG_VIDEO_DEV),m) -obj-m += videodev.o -endif +-include $(TOPDIR)/Rules.make -obj-$(CONFIG_VIDEO_MXB) += mxb.o tea6420.o tea6415c.o tda9840.o -obj-$(CONFIG_VIDEO_DPC) += dpc7146.o -obj-$(CONFIG_VIDEO_HEXIUM_ORION)+= hexium_orion.o -obj-$(CONFIG_VIDEO_HEXIUM_GEMINI)+= hexium_gemini.o -obj-$(CONFIG_VIDEO_BTTV) += btcx-risc.o ir-common.o bttv.o tveeprom.o -obj-$(CONFIG_VIDEO_CX88) += btcx-risc.o cx88xx.o cx8800.o cx8802.o \ - cx88-blackbird.o tveeprom.o -obj-$(CONFIG_VIDEO_CX88_IVTV) += cx88-ivtv.o -obj-$(CONFIG_TVP5150) += tvp5150.o -obj-$(CONFIG_EM28XX) += em28xx.o tveeprom.o -obj-$(CONFIG_VIDEO_DECODER) += saa7115.o cx25840.o saa7127.o bt832.o - -ifeq ($(CONFIG_VIDEO_ALSA),y) - EXTRA_CFLAGS += -DUSING_CX88_ALSA=1 - obj-$(CONFIG_VIDEO_CX88) += cx88-alsa.o - obj-$(CONFIG_VIDEO_SAA7134) += saa7134-alsa.o -## This one is installed by ALSA as snd_bt87x -# obj-$(CONFIG_VIDEO_BTTV) += bt87x.o -endif +else -obj-$(CONFIG_VIRTUAL_DEVICE) += vivi.o -obj-$(CONFIG_VIDEO_SAA7134) += saa7134.o saa7134-empress.o saa6752hs.o -obj-$(CONFIG_VIDEO_SAA7134) += saa7134-oss.o -obj-$(CONFIG_VIDEO_IR) += ir-common.o -obj-$(CONFIG_VIDEO_TUNER) += tuner.o tda9887.o saa6588.o -obj-$(CONFIG_VIDEO_TVAUDIO) += msp3400.o tvaudio.o tvmixer.o wm8775.o \ - cs53l32a.o tda7432.o tda9875.o -obj-$(CONFIG_VIDEO_CPIA2) += cpia2.o - -obj-$(CONFIG_VIDEO_CX88_DVB) += video-buf-dvb.o cx88-dvb.o cx88-vp3054-i2c.o -obj-$(CONFIG_VIDEO_SAA7134_DVB) += video-buf-dvb.o saa7134-dvb.o -obj-$(CONFIG_DVB_BT8XX) += bt878.o dvb-bt8xx.o dst.o dst_ca.o -obj-$(CONFIG_DVB_FRONTENDS) += dvb-pll.o cx22702.o or51132.o lgdt330x.o \ - mt352.o tda1004x.o sp887x.o nxt6000.o \ - cx24110.o or51211.o nxt200x.o cx24123.o \ - mt312.o stv0299.o bcm3510.o \ - dib3000-common.o dib3000mb.o dib3000mc.o \ - ves1820.o cx22700.o tda8083.o ves1x93.o \ - stv0297.o sp8870.o l64781.o s5h1420.o \ - tda10021.o at76c651.o tda80xx.o zl10353.o -obj-$(CONFIG_DVB_CORE) += dvb-core.o -obj-$(CONFIG_DVB_B2C2_FLEXCOP) += b2c2-flexcop.o -obj-$(CONFIG_DVB_B2C2_FLEXCOP) += stv0297_cs2.o -obj-$(CONFIG_DVB_B2C2_FLEXCOP_PCI) += b2c2-flexcop-pci.o -obj-$(CONFIG_DVB_B2C2_FLEXCOP_USB) += b2c2-flexcop-usb.o -obj-$(CONFIG_DVB_CINERGYT2) += cinergyT2.o -obj-$(CONFIG_DVB_PLUTO2) += pluto2.o -obj-$(CONFIG_DVB_TTUSB_BUDGET) += dvb-ttusb-budget.o -obj-$(CONFIG_DVB_TTUSB_DEC) += ttusb_dec.o ttusbdecfe.o -obj-$(CONFIG_DVB_USB) += dvb-usb.o -obj-$(CONFIG_DVB_USB_VP7045) += dvb-usb-vp7045.o -obj-$(CONFIG_DVB_USB_VP702X) += dvb-usb-vp702x.o -obj-$(CONFIG_DVB_USB_DTT200U) += dvb-usb-dtt200u.o -obj-$(CONFIG_DVB_USB_A800) += dvb-usb-dibusb-common.o dvb-usb-a800.o -obj-$(CONFIG_DVB_USB_DIBUSB_MB) += dvb-usb-dibusb-common.o dvb-usb-dibusb-mb.o -obj-$(CONFIG_DVB_USB_DIBUSB_MC) += dvb-usb-dibusb-common.o dvb-usb-dibusb-mc.o -obj-$(CONFIG_DVB_USB_NOVA_T_USB2) += dvb-usb-dibusb-common.o \ - dvb-usb-nova-t-usb2.o -obj-$(CONFIG_DVB_USB_UMT_010) += dvb-usb-dibusb-common.o dvb-usb-umt-010.o -obj-$(CONFIG_DVB_USB_DIGITV) += dvb-usb-digitv.o -obj-$(CONFIG_DVB_USB_CXUSB) += dvb-usb-cxusb.o -obj-$(CONFIG_DVB_BUDGET) += budget-core.o budget.o ttpci-eeprom.o -obj-$(CONFIG_DVB_BUDGET_AV) += budget-core.o budget-av.o ttpci-eeprom.o -obj-$(CONFIG_DVB_BUDGET_CI) += budget-core.o budget-ci.o ttpci-eeprom.o -obj-$(CONFIG_DVB_BUDGET_PATCH) += budget-core.o budget-patch.o ttpci-eeprom.o -obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o ttpci-eeprom.o -obj-$(CONFIG_VIDEO_SAA7146) += saa7146.o -obj-$(CONFIG_VIDEO_SAA7146_VV) += saa7146_vv.o -obj-$(CONFIG_VIDEO_PVRUSB2) += pvrusb2.o -obj-$(CONFIG_DVB_FIRESAT) += dvb-firesat.o -obj-$(CONFIG_VIDEO_IVTV) += ivtv.o ivtv-fb.o - -# 2.6-only stuff -ifeq ($(VERSION).$(PATCHLEVEL),2.6) - ifeq ($(CONFIG_VIDEO_BTTV),m) - bttv-objs += bttv-gpio.o - obj-$(CONFIG_VIDEO_IR) += ir-kbd-i2c.o - endif - ifeq ($(CONFIG_VIDEO_SAA7134),m) - obj-$(CONFIG_VIDEO_IR) += ir-kbd-i2c.o - endif +# take version info from last module build if available +-include $(obj)/.version + +ifneq ($(SRCDIR),) +KDIR := $(SRCDIR) +else +KDIR := /lib/modules/$(KERNELRELEASE)/build endif -ifeq ($(CONFIG_VIDEO_ADV_DEBUG),y) - EXTRA_CFLAGS += -DCONFIG_VIDEO_ADV_DEBUG=1 endif +################################################# +# default compilation rule + +default:: config-compat.h Makefile.media links .version + echo srcdir $(SRCDIR) + $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules + +################################################# +# Object specific rules + +-include $(obj)/.myconfig +-include $(obj)/Makefile.media +-include $(obj)/Makefile.ivtv + +################################################# +# CFLAGS configuration + ifeq ($(CONFIG_XC3028),m) EXTRA_CFLAGS += -DCONFIG_XC3028=1 endif -# for DVB -EXTRA_CFLAGS += -DDVB_CVS=1 -EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core/ -EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends/ ifeq ($(CONFIG_DVB_FIRESAT),m) - EXTRA_CFLAGS += -I$(srctree)/drivers/ieee1394/ -endif -ifeq ($(CONFIG_VIDEO_CX88_DVB),m) - EXTRA_CFLAGS += -DCONFIG_VIDEO_CX88_DVB_MODULE=1 - EXTRA_CFLAGS += -DHAVE_CX22702=1 - EXTRA_CFLAGS += -DHAVE_OR51132=1 - EXTRA_CFLAGS += -DHAVE_LGDT330X=1 - EXTRA_CFLAGS += -DHAVE_MT352=1 - EXTRA_CFLAGS += -DHAVE_ZL10353=1 - EXTRA_CFLAGS += -DHAVE_NXT200X=1 - EXTRA_CFLAGS += -DHAVE_CX24123=1 - EXTRA_CFLAGS += -DHAVE_VP3054_I2C=1 -endif -ifeq ($(CONFIG_VIDEO_SAA7134_DVB),m) - EXTRA_CFLAGS += -DHAVE_MT352=1 - EXTRA_CFLAGS += -DHAVE_TDA1004X=1 - EXTRA_CFLAGS += -DHAVE_NXT200X=1 -endif -ifeq ($(CONFIG_VIDEO_BUF_DVB),m) - EXTRA_CFLAGS += -DHAVE_VIDEO_BUF_DVB=1 + EXTRA_CFLAGS += -I$(srctree)/drivers/ieee1394/ endif + ifeq ($(CONFIG_DVB_AV7110_OSD),y) EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_OSD=1 endif -ifeq ($(CONFIG_DVB_AV7110_FIRMWARE),y) -src := $(PWD) - -$(src)/av7110.c: $(obj)/av7110_firm.h -$(obj)/fdump: - $(CC) -o $@ $(src)/fdump.c - -$(obj)/av7110_firm.h: $(obj)/fdump - $(obj)/fdump $(CONFIG_DVB_AV7110_FIRMWARE_FILE) dvb_ttpci_fw $@ - -EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_FIRMWARE_FILE +ifeq ($(CONFIG_DVB_AV7110_FIRMWARE),y) + EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_FIRMWARE_FILE endif -ifeq ($(ARCH),) -ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ - -e s/arm.*/arm/ -e s/sa110/arm/ \ - -e s/s390x/s390/ -e s/parisc64/parisc/ ) -endif +EXTRA_CFLAGS += -g + +EXTRA_CFLAGS += $(if $(wildcard $(srctree)/.mm), -DMM_KERNEL) ################################################# -# compile modules +# Kernel 2.4/2.6 specific rules ifneq ($(KERNELRELEASE),) @@ -237,15 +68,17 @@ ifeq ($(VERSION).$(PATCHLEVEL),2.6) export-objs := list-multi := else +include $(obj)/Makefile.kern24 + multi-m := $(filter $(list-multi), $(obj-m)) int-m := $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs))) export-objs := $(filter $(int-m) $(obj-m),$(export-objs)) endif -CC += -I$(obj) -EXTRA_CFLAGS += -g +endif -EXTRA_CFLAGS += $(if $(wildcard $(srctree)/.mm), -DMM_KERNEL) +################################################# +# Directories to be used snapshot := $(wildcard $(obj)/.snapshot) ifneq ($(snapshot),) @@ -253,44 +86,15 @@ SNAPSHOT_CFLAGS := -DSNAPSHOT='$(shell cat $(snapshot))' EXTRA_CFLAGS += $(SNAPSHOT_CFLAGS) endif -# -# Need to compile with kernel 2.4 -# -bttv.o: $(bttv-objs) - $(LD) -r -o $@ $(bttv-objs) - -cx25840.o: $(cx25840-objs) - $(LD) -g -r -o $@ $(cx25840-objs) - -cx8800.o: $(cx8800-objs) - $(LD) -g -r -o $@ $(cx8800-objs) - -cx8802.o: $(cx8802-objs) - $(LD) -g -r -o $@ $(cx8802-objs) - -cx88xx.o: $(cx88xx-objs) - $(LD) -g -r -o $@ $(cx88xx-objs) - -em28xx.o: $(em28xx-objs) - $(LD) -g -r -o $@ $(em28xx-objs) - -saa7134.o: $(saa7134-objs) - $(LD) -g -r -o $@ $(saa7134-objs) - -tuner.o: $(tuner-objs) - $(LD) -g -r -o $@ $(tuner-objs) - --include $(TOPDIR)/Rules.make -else -# take version info from last module build if available --include $(obj)/.version -endif - -KDIR := /lib/modules/$(KERNELRELEASE)/build PWD := $(shell pwd) -DEST := /lib/modules/$(KERNELRELEASE)/$(MDIR) +DEST := /lib/modules/$(KERNELRELEASE)/v4l2 KDIR26 := /lib/modules/$(KERNELRELEASE)/kernel/drivers/media -KDIRUSB := /lib/modules/$(KERNELRELEASE)/kernel/drivers/usb/media + +################################################# +# Compiler fixup rules + +HOSTCC:=$(CC) +CC += -I$(obj) ifeq ($(VERSION).$(PATCHLEVEL),2.6) CPPFLAGS := -I$(SUBDIRS)/../linux/include $(CPPFLAGS) -I$(SUBDIRS)/ @@ -299,176 +103,237 @@ else MYCFLAGS := CFLAGS="-I../linux/include -D__KERNEL__ -I$(KDIR)/include -DEXPORT_SYMTAB" endif + +################################################# # which files to install? + inst-m := $(wildcard *.ko) ifeq ($(inst-m),) inst-m := $(obj-m) endif -inst_common := ir-common.ko -inst_video := btcx-risc.ko bttv.ko tda9887.ko tuner.ko tvaudio.ko tveeprom.ko saa6588.ko -#inst_video += bt87x.ko -inst_video += tvmixer.ko v4l1-compat.ko v4l2-common.ko wm8775.ko cs53l32a.ko -inst_video += video-buf.ko video-buf-dvb.ko -inst_video += videodev.ko -inst_video += ir-kbd-i2c.ko msp3400.ko -inst_video += tvp5150.ko saa7134-alsa.ko saa7134-oss.ko -inst_video += saa7115.ko cx25840.ko saa7127.ko compat_ioctl32.ko -inst_cx88 := cx88xx.ko cx8800.ko cx8802.ko cx88-alsa.ko cx88-dvb.ko -inst_video += vivi.ko -inst_cx88 += cx88-blackbird.ko cx88-vp3054-i2c.ko cx88-ivtv.ko -inst_saa7134 := saa6752hs.ko saa7134.ko saa7134-empress.ko saa7134-dvb.ko -inst_em28xx := em28xx.ko -inst_bt8xx := bt878.ko dvb-bt8xx.ko dst.ko dst_ca.ko -inst_frontends := cx22702.ko dvb-pll.ko lgdt330x.ko or51132.ko tda1004x.ko -inst_frontends += mt352.ko sp887x.ko nxt6000.ko cx24110.ko or51211.ko -inst_frontends += nxt200x.ko cx24123.ko mt312.ko stv0299.ko -inst_frontends += bcm3510.ko dib3000mb.ko dib3000mc.ko ves1820.ko -inst_frontends += cx22700.ko tda8083.ko ves1x93.ko stv0297.ko sp8870.ko -inst_frontends += l64781.ko s5h1420.ko tda10021.ko at76c651.ko tda80xx.ko -inst_frontends += stv0297_cs2.ko zl10353.ko -inst_dvb-core := dvb-core.ko -inst_saa7146 := saa7146.ko saa7146_vv.ko -inst_b2c2 := b2c2-flexcop.ko b2c2-flexcop-pci.ko b2c2-flexcop-usb.ko -inst_cinergyT2 := cinergyT2.ko -inst_dvb-usb := dvb-usb.ko dvb-usb-vp7045.ko dvb-usb-vp702x.ko -inst_dvb-usb += dvb-usb-dtt200u.ko dvb-usb-a800.ko dvb-usb-dibusb-mb.ko -inst_dvb-usb += dvb-usb-dibusb-mc.ko dvb-usb-nova-t-usb2.ko -inst_dvb-usb += dvb-usb-umt-010.ko dvb-usb-digitv.ko dvb-usb-cxusb.ko -inst_pluto2 := pluto2.ko -inst_ttpci := budget-core.ko budget.ko ttpci-eeprom.ko budget-av.ko -inst_ttpci += budget-ci.ko budget-patch.ko dvb-ttpci.ko -inst_ttusb-budget := dvb-ttusb-budget.ko -inst_ttusb-dec := ttusb_dec.ko ttusbdecfe.ko -inst_pvrusb2 := pvrusb2.ko -inst_firesat := dvb-firesat.ko -inst_ivtv := ivtv.ko ivtv-fb.ko - v4l_modules := $(shell /sbin/lsmod|cut -d' ' -f1 ) $(patsubst %.ko,%,$(inst-m)) +################################################# # locales seem to cause trouble sometimes. LC_ALL = POSIX export LC_ALL -all:: default -default:: links .version - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules +################################################# +# Generic wildcard rules -qconfig:: links .version - ./scripts/make_kconfig.pl /usr/src/linux-2.6.14 $(ARCH) - $(KDIR)/scripts/kconfig/qconf Kconfig +%.asm: %.o + objdump -S $< > $@ -ivtv-checkout:: - @if [ ! -d ivtv ]; then \ - echo retrieving the latest ivtv sources from ivtvdriver.org; \ - echo this step requires subversion to be installed; \ - svn co http://ivtvdriver.org/svn/ivtv/trunk ivtv; \ - fi +################################################# +# all file compilation rule -ivtv-update ivtv-up:: ivtv - @svn up ivtv +all:: allmodconfig default -ivtv-links:: ivtv-checkout - @echo creating ivtv symbolic links... - @find ivtv/driver -name '*.[ch]' -type f -exec ln -sf '{}' . \; - @find ivtv/i2c-drivers -name '*.[ch]' -type f -exec ln -sf '{}' . \; +################################################# +# installation invocation rules -ivtv:: ivtv-links - @echo '#define IVTV_DRIVER_VERSION_COMMENT ' \ - '"(v4l-dvb + ivtv virtual merge)' \ - "`svn info ivtv | grep Revision`"'"' > ivtv-svnversion.h - @echo ivtv trunk merged. Run make to build the entire tree. +install:: media-install ivtv-install -cx88-ivtv:: - @echo creating cx88-ivtv symbolic links... - @ln -sf ../v4l_experimental/cx88-ivtv.c . +remove rminstall:: media-rminstall ivtv-rminstall + +################################################# +# Compiling preparation rules + +Makefile.media:: .version + scripts/make_makefile.pl + +.version:: +ifneq ($(KERNELRELEASE),) + @echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version +ifneq ($(SRCDIR),) + @echo -e SRCDIR=$(SRCDIR)\\n >> $(obj)/.version +endif +else + @echo "No version yet." + @uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$$1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version +endif + +release:: +ifneq ($(VER),) + @echo "Forcing compiling to version $(VER)." + @echo $(VER)|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$$1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version +else +ifneq ($(DIR),) + @perl -e 'open IN,"<$(DIR)/Makefile"; \ + while (<IN>) { \ + if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; next; }\ + if (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; next; }\ + if (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; next; }\ + if (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; next; }\ + }; \ + printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n", \ + $$version,$$level,$$sublevel,$$version,$$level,$$sublevel,$$extra); \ + printf ("SRCDIR:=$(DIR)\n");' > $(obj)/.version + @cat .version|grep KERNELRELEASE:|sed s,'KERNELRELEASE:=','Forcing compiling to version ', + + @if [ ! -f $(DIR)/scripts/kallsyms ]; then \ + echo "*** Warning: You should configure and build kernel before compiling V4L"; \ + fi + +else + @echo "No version specified. Using `uname -r`." + @uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$$1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version +endif +endif links:: @echo creating symbolic links... @find ../linux/drivers/media -name '*.[ch]' -type f -exec ln -sf '{}' . \; @find ../linux/sound -name '*.[ch]' -type f -exec ln -sf '{}' . \; -# @find ../linux/include -name '*.[h]' -type f -exec ln -sf '{}' . \; +config-compat.h:: .myconfig + @echo \#ifndef __CONFIG_COMPAT_H__ > config-compat.h + @echo \#define __CONFIG_COMPAT_H__ >> config-compat.h + @echo >> config-compat.h + @echo \#include \<linux\/config\.h\> >> config-compat.h + @echo >> config-compat.h + @grep "CONFIG\_" .myconfig | grep -v "\:\= n" | \ + sed s/"CONFIG\_"/"\#undef CONFIG\_"/1 | \ + sed s/"\:\= .*"/""/1 >> config-compat.h >> config-compat.h + @echo >> config-compat.h + @grep "CONFIG\_" .myconfig | grep -v "\:\= n" | \ + sed s/"CONFIG\_"/"\#define CONFIG\_"/1 | \ + sed s/"\:\="/""/1 >> config-compat.h >> config-compat.h + @echo >> config-compat.h + @echo \#endif >> config-compat.h kernel-links makelinks:: cd ..; v4l/scripts/makelinks.sh $(KDIR) -install:: v4l-install dvb-install - -v4l-install:: v4l-rminstall - @echo -e "\nInstalling new V4L modules at corresponding Kernel dir..." - - @strip --strip-debug $(inst-m) +################################################# +# Cardlist updating rule - -install -d $(KDIR26)/common - -install -m 644 -c $(inst_common) $(KDIR26)/common +card cardlist cardlists:: + scripts/cardlist - -install -d $(KDIR26)/video - -install -m 644 -c $(inst_video) $(KDIR26)/video +################################################# +# Cleaning rules - -install -d $(KDIR26)/video/cx88 - -install -m 644 -c $(inst_cx88) $(KDIR26)/video/cx88 +clean:: + @find . -name '*.c' -type l -exec rm '{}' \; + @find . -name '*.h' -type l -exec rm '{}' \; + -rm -f *~ *.o *.ko .*.o.cmd .*.ko.cmd *.mod.c av7110_firm.h fdump \ + ivtv-svnversion.h config-compat.h - -install -d $(KDIR26)/video/saa7134 - -install -m 644 -c $(inst_saa7134) $(KDIR26)/video/saa7134 +distclean:: clean + -rm -f .version .*.o.flags .*.o.d Makefile.media \ + Kconfig Kconfig.kern .config .config.cmd + -rm -rf .tmp_versions + @find .. -name '*.orig' -exec rm '{}' \; + @find .. -name '*.rej' -exec rm '{}' \; - -install -d $(KDIR26)/video/em28xx - -install -m 644 -c $(inst_em28xx) $(KDIR26)/video/em28xx +################################################# +# Kernel module insert/removal rules - -install -d $(KDIR26)/video/pvrusb2 - -install -m 644 -c $(inst_pvrusb2) $(KDIR26)/video/pvrusb2 +insmod load:: + scripts/insmod.sh load - -install -d $(KDIR26)/video/ivtv - -install -m 644 -c $(inst_ivtv) $(KDIR26)/video/ivtv +rmmod unload:: + scripts/insmod.sh unload -# -install -d $(KDIRUSB) -# -install -m 644 -c $(inst_usb) $(KDIRUSB)/ +reload:: + scripts/insmod.sh reload - /sbin/depmod -a ${KERNELRELEASE} +################################################# +# Configuration rules -dvb-install:: dvb-rminstall - @echo -e "\nInstalling new DVB modules at corresponding Kernel dir..." +# SHELL used by kbuild +CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ + else if [ -x /bin/bash ]; then echo /bin/bash; \ + else echo sh; fi ; fi) - @strip --strip-debug $(inst-m) +build := srctree=$(KDIR) HOSTCXX="$(CXX)" HOSTCC="$(HOSTCC)" CONFIG_SHELL="$(CONFIG_SHELL)" -f $(KDIR)/scripts/Makefile.build obj - -install -d $(KDIR26)/common - -install -m 644 -c $(inst_saa7146) $(KDIR26)/common +xconfig:: links .version + -if [ ! -f $(KDIR)/scripts/kconfig/qconf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig qconf-target=1 scripts/kconfig/qconf; \ + fi + ./scripts/make_kconfig.pl + $(KDIR)/scripts/kconfig/qconf Kconfig + ./scripts/make_noconfig.pl - -install -d $(KDIR26)/dvb/frontends - -install -m 644 -c $(inst_frontends) $(KDIR26)/dvb/frontends +gconfig:: links .version + -if [ ! -f $(KDIR)/scripts/kconfig/gconf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/gconf; \ + fi + ./scripts/make_kconfig.pl + $(KDIR)/scripts/kconfig/gconf Kconfig + ./scripts/make_noconfig.pl - -install -d $(KDIR26)/dvb/bt8xx - -install -m 644 -c $(inst_bt8xx) $(KDIR26)/dvb/bt8xx +config:: links .version + -if [ ! -f $(KDIR)/scripts/kconfig/conf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/conf; \ + fi + ./scripts/make_kconfig.pl + $(KDIR)/scripts/kconfig/conf Kconfig + ./scripts/make_noconfig.pl + +menuconfig:: links .version + ./scripts/make_kconfig.pl + -rm scripts/lxdialog scripts/kconfig + -if [ -d $(KDIR)/scripts/lxdialog ]; then \ + if [ ! -f $(KDIR)/scripts/lxdialog/lxdialog ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/lxdialog; \ + fi; \ + ln -s $(KDIR)/scripts/lxdialog scripts/lxdialog; \ + fi - -install -d $(KDIR26)/dvb/dvb-core - -install -m 644 -c $(inst_dvb-core) $(KDIR26)/dvb/dvb-core + -if [ -d $(KDIR)/scripts/kconfig ]; then \ + if [ -d $(KDIR)/scripts/kconfig/lxdialog ]; then \ + if [ ! -f $(KDIR)/scripts/kconfig/lxdialog ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig/lxdialog; \ + fi; \ + fi; \ + if [ ! -f $(KDIR)/scripts/kconfig/mconf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/mconf; \ + fi; \ + ln -s $(KDIR)/scripts/kconfig scripts/kconfig; \ + fi - -install -d $(KDIR26)/dvb/b2c2 - -install -m 644 -c $(inst_b2c2) $(KDIR26)/dvb/b2c2 + $(KDIR)/scripts/kconfig/mconf Kconfig + ./scripts/make_noconfig.pl - -install -d $(KDIR26)/dvb/cinergyT2 - -install -m 644 -c $(inst_cinergyT2) $(KDIR26)/dvb/cinergyT2 +allyesconfig allmodconfig:: links .version + ./scripts/make_kconfig.pl 1 + ./scripts/make_noconfig.pl - -install -d $(KDIR26)/dvb/dvb-usb - -install -m 644 -c $(inst_dvb-usb) $(KDIR26)/dvb/dvb-usb +################################################# +# IVTV link rules - -install -d $(KDIR26)/dvb/pluto2 - -install -m 644 -c $(inst_pluto2) $(KDIR26)/dvb/pluto2 +ivtv-checkout:: + @if [ ! -d ivtv ]; then \ + echo retrieving the latest ivtv sources from ivtvdriver.org; \ + echo this step requires subversion to be installed; \ + svn co http://ivtvdriver.org/svn/ivtv/trunk ivtv; \ + fi - -install -d $(KDIR26)/dvb/ttpci - -install -m 644 -c $(inst_ttpci) $(KDIR26)/dvb/ttpci +ivtv-update ivtv-up:: ivtv + @svn up ivtv - -install -d $(KDIR26)/dvb/ttusb-budget - -install -m 644 -c $(inst_ttusb-budget) $(KDIR26)/dvb/ttusb-budget +ivtv-links:: ivtv-checkout + @echo creating ivtv symbolic links... + @find ivtv/driver -name '*.[ch]' -type f -exec ln -sf '{}' . \; + @find ivtv/i2c-drivers -name '*.[ch]' -type f -exec ln -sf '{}' . \; - -install -d $(KDIR26)/dvb/ttusb-dec - -install -m 644 -c $(inst_ttusb-dec) $(KDIR26)/dvb/ttusb-dec +ivtv:: ivtv-links + @echo '#define IVTV_DRIVER_VERSION_COMMENT ' \ + '"(v4l-dvb + ivtv virtual merge)' \ + "`svn info ivtv | grep Revision`"'"' > ivtv-svnversion.h + @echo ivtv trunk merged. Run make to build the entire tree. - -install -d $(KDIR26)/dvb/firesat - -install -m 644 -c $(inst_firesat) $(KDIR26)/dvb/firesat +cx88-ivtv:: + @echo creating cx88-ivtv symbolic links... + @ln -sf ../v4l_experimental/cx88-ivtv.c . - /sbin/depmod -a ${KERNELRELEASE} +################################################# +# Old instalation rule old-install:: rminstall @echo -e "\nInstalling new V4L modules at $(DEST)..." @@ -480,76 +345,8 @@ old-install:: rminstall /sbin/depmod -a ${KERNELRELEASE} -rminstall:: v4l-rminstall dvb-rminstall - -v4l-rminstall:: - @echo -e "\nEliminating old V4L modules (errors on this step is not a problem).." - - -@rm -r $(DEST) \ - $(addprefix $(KDIR26)/common/, $(inst_common)) \ - $(addprefix $(KDIR26)/video/, $(inst_video)) \ - $(addprefix $(KDIR26)/video/cx88/, $(inst_cx88)) \ - $(addprefix $(KDIR26)/video/saa7134/, $(inst_saa7134)) \ - $(addprefix $(KDIR26)/video/pvrusb2/, $(inst_pvrusb2)) \ - $(addprefix $(KDIR26)/video/ivtv/, $(inst_ivtv)) \ - $(addprefix $(KDIR26)/video/em28xx/, $(inst_em28xx)) \ - $(addprefix $(KDIRUSB)/, $(inst_em28xx)) \ - $(addprefix $(KDIR26)/common/, $(addsuffix .gz,$(inst_common))) \ - $(addprefix $(KDIR26)/video/, $(addsuffix .gz,$(inst_video))) \ - $(addprefix $(KDIR26)/video/cx88/, $(addsuffix .gz,$(inst_cx88))) \ - $(addprefix $(KDIR26)/video/saa7134/, $(addsuffix .gz,$(inst_saa7134))) 2>/dev/null \ - $(addprefix $(KDIR26)/video/pvrusb2/, $(addsuffix .gz,$(inst_pvrusb2))) 2>/dev/null \ - $(addprefix $(KDIR26)/video/ivtv/, $(addsuffix .gz,$(inst_ivtv))) 2>/dev/null \ - $(addprefix $(KDIR26)/video/em28xx/, $(addsuffix .gz,$(inst_em28xx))) 2>/dev/null \ - $(addprefix $(KDIRUSB)/, $(addsuffix .gz,$(inst_em28xx))) 2>/dev/null - @echo - -dvb-rminstall:: - @echo -e "\nEliminating old DVB modules (errors on this step is not a problem).." - - -@rm -r $(DEST) \ - $(addprefix $(KDIR26)/dvb/bt8xx/, $(inst_bt8xx)) \ - $(addprefix $(KDIR26)/dvb/frontends/, $(inst_frontends)) \ - $(addprefix $(KDIR26)/dvb/dvb-core/, $(inst_dvb-core)) \ - $(addprefix $(KDIR26)/dvb/b2c2/, $(inst_b2c2)) \ - $(addprefix $(KDIR26)/dvb/cinergyT2/, $(inst_cinergyT2)) \ - $(addprefix $(KDIR26)/dvb/dvb-usb/, $(inst_dvb-usb)) \ - $(addprefix $(KDIR26)/dvb/pluto2/, $(inst_pluto2)) \ - $(addprefix $(KDIR26)/dvb/ttpci/, $(inst_ttpci)) \ - $(addprefix $(KDIR26)/dvb/ttusb-budget/, $(inst_ttusb-budget)) \ - $(addprefix $(KDIR26)/dvb/ttusb-dec/, $(inst_ttusb-dec)) \ - $(addprefix $(KDIR26)/dvb/firesat/, $(inst_firesat)) \ - $(addprefix $(KDIR26)/dvb/bt8xx/, $(addsuffix .gz,$(inst_bt8xx))) \ - $(addprefix $(KDIR26)/dvb/frontends/, $(addsuffix .gz,$(inst_frontends))) \ - $(addprefix $(KDIR26)/dvb/dvb-core/, $(addsuffix .gz,$(inst_dvb-core))) \ - $(addprefix $(KDIR26)/dvb/b2c2/, $(addsuffix .gz,$(inst_b2c2))) \ - $(addprefix $(KDIR26)/dvb/cinergyT2/, $(addsuffix .gz,$(inst_cinergyT2))) \ - $(addprefix $(KDIR26)/dvb/dvb-usb/, $(addsuffix .gz,$(inst_dvb-usb))) \ - $(addprefix $(KDIR26)/dvb/pluto2/, $(addsuffix .gz,$(inst_pluto2))) \ - $(addprefix $(KDIR26)/dvb/ttpci/, $(addsuffix .gz,$(inst_ttpci))) \ - $(addprefix $(KDIR26)/dvb/ttusb-budget/, $(addsuffix .gz,$(inst_ttusb-budget))) \ - $(addprefix $(KDIR26)/dvb/ttusb-dec/, $(addsuffix .gz,$(inst_ttusb-dec))) \ - $(addprefix $(KDIR26)/dvb/firesat/, $(addsuffix .gz,$(inst_firesat))) 2>/dev/null - @echo - -rmmodules:: - rmmod -w $(shell echo "$(v4l_modules)"|sed s,' ','\n',g|sed s,'-','_',g|sort|uniq -d) - -clean:: - @find . -name '*.c' -type l -exec rm '{}' \; - @find . -name '*.h' -type l -exec rm '{}' \; - -rm -f *~ *.o *.ko .*.o.cmd .*.ko.cmd *.mod.c av7110_firm.h fdump \ - ivtv-svnversion.h \ - Kconfig Kconfig.kern .config .config.cmd - -distclean:: clean - -rm -f .version .*.o.flags .*.o.d - -rm -rf .tmp_versions - @find .. -name '*.orig' -exec rm '{}' \; - @find .. -name '*.rej' -exec rm '{}' \; - -change changes changelog:: - make -C .. changelog +################################################# +# Tree management rules update:: make -C .. update @@ -560,26 +357,13 @@ commit cvscommit hgcommit:: push:: make -C .. push -insmod load:: - scripts/insmod.sh load - -rmmod unload:: - scripts/insmod.sh unload - -reload:: - scripts/insmod.sh reload - -.version: -ifneq ($(KERNELRELEASE),) - echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version -else - echo "No version yet." - uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$$1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version - -endif +################################################# +# Help +help:: + @cat ../INSTALL ################################################# -# build tarballs +# build tarballs rules RPWD := $(shell cd .. && pwd) thisdir := $(notdir $(RPWD)) @@ -590,21 +374,10 @@ tardest ?= . snapdir := $(HOME)/snapshot snap := $(name) -snapshot snap tarball: update distclean +snapshot snap tarball:: update distclean echo $(thisdir) echo $(name) echo $(date) > .snapshot (cd ..; tar czf $(snapdir)/$(snap)-$(date).tar.gz .) cp ChangeLog /$(snapdir)/$(snap)-ChangeLog-$(date) $(MAKE) -C $(snapdir) - - -################################################# -# other stuff - -%.asm: %.o - objdump -S $< > $@ - -card cardlist cardlists: - scripts/cardlist - |