summaryrefslogtreecommitdiff
path: root/Makefile
blob: 51537c1ac7fb20b6617197678bd5be39bd6fe500 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
descend = \
	+mkdir -p $(OUTPUT)$(1) && \
	$(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) $(2)

help:
	@echo 'Possible targets:'
	@echo ''
	@echo '  igb               - igb module'
	@echo ''
	@echo '  lib               - igb library'
	@echo ''
	@echo '  daemons_all       - build all daemons (mrpd gptp maap)'
	@echo '  mrpd              - mrpd daemon'
	@echo '  gptp              - gptp daemon for linux'
	@echo '  maap              - maap daemon'
	@echo ''
	@echo '  avtp_pipeline     - AVTP pipeline'
	@echo '  avtp_pipeline_doc - AVTP pipeline doc'
	@echo ''
	@echo '  examples_all      - build all examples (simple_talker simple_listener mrp_client live_stream jackd-talker jackd-listener)'
	@echo '  simple_talker     - simple_talker application'
	@echo '  simple_listener   - simple_listener application'
	@echo '  mrp_client        - mrp_client application'
	@echo '  jackd-talker      - jackd-talker application'
	@echo '  jackd-listener    - jackd-listener application'
	@echo '  live_stream       - live_stream application'
	@echo ''
	@echo 'Cleaning targets:'
	@echo ''
	@echo '  all of the above with the "_clean" string appended cleans'
	@echo '    the respective build directory.'
	@echo '  clean: a summary clean target to clean _all_ folders'
	@echo ''

igb: FORCE
	$(call descend,kmod/$@)

igb_clean:
	$(call descend,kmod/igb/,clean)

lib: FORCE
	$(call descend,lib/igb)
	$(call descend,lib/common)

lib_clean:
	$(call descend,lib/igb/,clean)
	$(call descend,lib/common/,clean)

mrpd:
	$(call descend,daemons/$@)

mrpd_clean:
	$(call descend,daemons/mrpd/,clean)

gptp:
	$(call descend,daemons/$@/linux/build/)

gptp_clean:
	$(call descend,daemons/gptp/linux/build/,clean)

maap:
	$(call descend,daemons/$@/linux/build/)

maap_clean:
	$(call descend,daemons/maap/linux/build/,clean)

daemons_all: mrpd maap gptp

daemons_all_clean: mrpd_clean gptp_clean maap_clean

examples_common:
	$(call descend,examples/common)

examples_common_clean:
	$(call descend,examples/common/,clean)

simple_talker:
	$(MAKE) lib
	$(call descend,examples/$@)

simple_talker_clean:
	$(call descend,examples/simple_talker/,clean)

simple_listener:
	$(MAKE) lib
	$(call descend,examples/$@)

simple_listener_clean:
	$(call descend,examples/simple_listener/,clean)

simple_rx:
	$(MAKE) lib
	$(call descend,examples/$@)

simple_rx_clean:
	$(call descend,examples/simple_rx/,clean)

mrp_client:
	$(call descend,examples/$@)

mrp_client_clean:
	$(call descend,examples/mrp_client/,clean)

jackd-talker:
	$(MAKE) lib
	$(call descend,examples/$@)

jackd-talker_clean:
	$(call descend,examples/jackd-talker/,clean)

jackd-listener:
	$(MAKE) lib
	$(call descend,examples/$@)

jackd-listener_clean:
	$(call descend,examples/jackd-listener/,clean)

live_stream:
	$(MAKE) lib
	$(call descend,examples/$@)

live_stream_clean:
	$(call descend,examples/live_stream/,clean)

avtp_pipeline: lib
	$(MAKE) -s -C lib/avtp_pipeline -f avtp_pipeline.mk

avtp_pipeline_clean:
	$(MAKE) -s -C lib/avtp_pipeline -f avtp_pipeline.mk clean

avtp_pipeline_doc: lib
	$(MAKE) -s -C lib/avtp_pipeline -f avtp_pipeline.mk doc

examples_all: examples_common simple_talker simple_listener mrp_client live_stream jackd-talker \
	jackd-listener simple_rx

examples_all_clean: examples_common_clean simple_talker_clean simple_listener_clean mrp_client_clean \
	jackd-talker_clean jackd-listener_clean live_stream_clean simple_rx_clean

all: igb lib daemons_all examples_all avtp_pipeline

clean: igb_clean lib_clean daemons_all_clean examples_all_clean avtp_pipeline_clean

.PHONY: FORCE