summaryrefslogtreecommitdiff
path: root/src/hal/components/Submakefile
blob: 9f55a93367fef7b2d7f67268618bf4018366a155 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
ifneq ($(KERNELRELEASE),)
COMPS := $(patsubst $(BASEPWD)/%,%,$(wildcard $(BASEPWD)/hal/components/*.comp $(BASEPWD)/hal/drivers/*.comp))
include $(patsubst %.comp, $(BASEPWD)/objects/%.mak, $(COMPS))
else
CONVERTERS :=  \
    conv_float_s32.comp conv_float_u32.comp \
    conv_bit_s32.comp conv_bit_u32.comp \
    conv_s32_float.comp conv_s32_bit.comp conv_s32_u32.comp \
    conv_u32_float.comp conv_u32_bit.comp conv_u32_s32.comp
COMPS := $(sort $(wildcard hal/components/*.comp) $(addprefix hal/components/, $(CONVERTERS)))
COMP_MANPAGES := $(patsubst hal/components/%.comp, ../docs/man/man9/%.9, $(COMPS))
COMP_DRIVERS := $(wildcard hal/drivers/*.comp)
COMP_DRIVER_MANPAGES := $(patsubst hal/drivers/%.comp, ../docs/man/man9/%.9, $(COMP_DRIVERS))
manpages: $(COMP_MANPAGES) $(COMP_DRIVER_MANPAGES)
TARGETS += manpages
.PHONY: manpages
ifeq ($(TRIVIAL_BUILD),no)
-include $(patsubst %.comp, objects/%.mak, $(COMPS) $(COMP_DRIVERS))
Makefile: $(patsubst %.comp, objects/%.mak, $(COMPS) $(COMP_DRIVERS))
endif
endif

obj-m += $(patsubst hal/drivers/%.comp, %.o, $(patsubst hal/components/%.comp, %.o, $(COMPS)))

$(COMP_MANPAGES): ../docs/man/man9/%.9: hal/components/%.comp ../bin/comp
	$(ECHO) Making comp manpage $(notdir $@)
	@mkdir -p $(dir $@)
	$(Q)../bin/comp --document -o $@ $<

$(COMP_DRIVER_MANPAGES): ../docs/man/man9/%.9: hal/drivers/%.comp ../bin/comp
	$(ECHO) Making comp manpage $(notdir $@)
	@mkdir -p $(dir $@)
	$(Q)../bin/comp --document -o $@ $<

objects/%.mak: %.comp hal/components/Submakefile
	$(ECHO) "Creating $(notdir $@)"
	@mkdir -p $(dir $@)
	$(Q)echo $(notdir $*)-objs := objects/$*.o > $@.tmp
	$(Q)echo ../rtlib/$(notdir $*)$(MODULE_EXT): objects/rtobjects/$*.o >> $@.tmp
	$(Q)mv -f $@.tmp $@

objects/%.c: %.comp ../bin/comp
	$(ECHO) "Preprocessing $(notdir $<)"
	@mkdir -p $(dir $@)
	$(Q)../bin/comp --require-license -o $@ $<

modules: $(patsubst %.comp, objects/%.c, $(COMPS) $(COMP_DRIVERS))

clean: clean-comp-manpages
clean-comp-manpages:
	-rm -f $(COMP_MANPAGES) $(COMP_DRIVER_MANPAGES)

HALSTREAMERSRCS := hal/components/streamer_usr.c
USERSRCS += $(HALSTREAMERSRCS)

../bin/halstreamer: $(call TOOBJS, $(HALSTREAMERSRCS)) ../lib/liblinuxcnchal.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CC) $(LDFLAGS) -o $@ $^
TARGETS += ../bin/halstreamer

HALSAMPLERSRCS := hal/components/sampler_usr.c
USERSRCS += $(HALSAMPLERSRCS)

../bin/halsampler: $(call TOOBJS, $(HALSAMPLERSRCS)) ../lib/liblinuxcnchal.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CC) $(LDFLAGS) -o $@ $^
TARGETS += ../bin/halsampler

hal/components/conv_float_s32.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh float s32 "" -2147483647-1 2147483647 < $< > $@

hal/components/conv_float_u32.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh float u32 "" 0 2147483647 < $< > $@

hal/components/conv_bit_s32.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh bit s32 // < $< > $@

hal/components/conv_bit_u32.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh bit u32 // < $< > $@

hal/components/conv_s32_float.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh s32 float // < $< > $@

hal/components/conv_s32_bit.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh s32 bit "" 0 1 < $< > $@

hal/components/conv_s32_u32.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh s32 u32 "" 0 0 < $< > $@

hal/components/conv_u32_float.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh u32 float // < $< > $@

hal/components/conv_u32_bit.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh u32 bit "" -1 1 < $< > $@

hal/components/conv_u32_s32.comp: hal/components/conv.comp.in hal/components/mkconv.sh hal/components/Submakefile
	$(ECHO) converting conv for $(notdir $@)
	$(Q)sh hal/components/mkconv.sh u32 s32 "" -1 2147483647 < $< > $@