summaryrefslogtreecommitdiff
path: root/kernel/xpp/Kbuild
blob: a8c4eda5f5d8da003cf824085e2669ec821cc2ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
ifdef SUBDIRS
  ZAP_KERNEL	= $(SUBDIRS)
else
  ZAP_KERNEL	= $(M)
endif

EXTRA_CFLAGS	=	$(XPP_LOCAL_CFLAGS)	\
			-I$(ZAP_KERNEL)	\
			-DDEBUG			\
			-DPOLL_DIGITAL_INPUTS	\
			-DDEBUG_PCMTX		\
			-DPROTOCOL_DEBUG	\
			-g # -DOLD_PROC
			#


obj-m		+= xpp.o xpd_fxs.o xpd_fxo.o xpd_bri.o xpd_pri.o

HAS_BRISTUFF	:= $(shell grep -c '^[[:space:]]*\#[[:space:]]*define[[:space:]]\+CONFIG_ZAPATA_BRI_DCHANS\>' $(ZAP_KERNEL)/zconfig.h)

# Build only supported modules
ifneq	(,$(filter y m,$(CONFIG_USB)))
obj-m		+= xpp_usb.o
endif

xpp-objs	+= xbus-core.o xbus-sysfs.o xbus-pcm.o xframe_queue.o xpp_zap.o xproto.o card_global.o zap_debug.o
xpd_fxs-objs	+= card_fxs.o
xpd_fxo-objs	+= card_fxo.o
xpd_bri-objs	+= card_bri.o
xpd_pri-objs	+= card_pri.o

ifeq	(y,$(PARPORT_DEBUG))
EXTRA_CFLAGS	+= -DDEBUG_SYNC_PARPORT
obj-m		+= parport_debug.o
endif

# Handle versioning
XPP_VERSION_STR	?= $(shell if [ -r $(obj)/.version ]; then echo "\"`cat $(obj)/.version`\""; else echo '"Unknown"'; fi)
clean-files	:= xpp_version.h

$(obj)/card_fxs.o $(obj)/card_fxo.o $(obj)/card_bri.o $(obj)/card_pri.o $(obj)/xpp_usb.o $(obj)/xpp.o: $(obj)/xpp_version.h

$(obj)/xpp_version.h: FORCE
	$(Q)echo '#define	XPP_VERSION	$(XPP_VERSION_STR)' > $@.tmp
	$(Q)if cmp -s $@.tmp $@ ; then echo; else \
		mv $@.tmp $@ ; \
	fi
	$(Q)rm -f $@.tmp

# Validations:
#  - Syntactic verification of perl scripts
#  - Handle country table validation for init_card_2_*

XPP_PROTOCOL_VERSION	:= $(shell grep XPP_PROTOCOL_VERSION $(src)/xproto.h | sed -e 's/^.*XPP_PROTOCOL_VERSION[ \t]*//')

xpp_verifications		= \
				init_card_1_$(XPP_PROTOCOL_VERSION)	\
				init_card_2_$(XPP_PROTOCOL_VERSION)	\
				init_card_3_$(XPP_PROTOCOL_VERSION)	\
				init_card_4_$(XPP_PROTOCOL_VERSION)

xpp_verified			= $(foreach file, $(xpp_verifications), $(file).verified)


always				:= $(xpp_verified)

clean-files			+= $(xpp_verified)

$(obj)/init_card_%_$(XPP_PROTOCOL_VERSION).verified: $(src)/init_card_%_$(XPP_PROTOCOL_VERSION)
	@echo '  VERIFY  $<'
	$(Q)perl -c $< 2> $@ || (cat $@; rm -f $@; exit 1)

.PHONY: FORCE
FORCE: