blob: 37e48e2fca589c44f0f7241dd5636d0f0eef184d [file] [log] [blame]
Harald Welte68079822017-12-12 16:30:53 +01001
2ECLIPSEGIT:=https://github.com/eclipse
3ECLIPSEGIT2:=git://git.eclipse.org/gitroot/titan
Harald Welte701b5742018-01-22 11:29:13 +01004OSMOGITHUB:=https://github.com/osmocom
Harald Welte68079822017-12-12 16:30:53 +01005
6ECLIPSEGIT_REPOS= titan.Libraries.TCCUsefulFunctions \
7 titan.ProtocolModules.ICMP \
8 titan.ProtocolModules.ICMPv6 \
9 titan.ProtocolModules.IP \
10 titan.ProtocolModules.L2TP \
11 titan.ProtocolModules.M3UA \
Harald Welte36296dc2018-04-16 17:37:31 +020012 titan.ProtocolModules.SMPP \
Harald Welte68079822017-12-12 16:30:53 +010013 titan.ProtocolModules.TCP \
14 titan.ProtocolModules.UDP \
15 titan.ProtocolModules.RTP \
16 titan.TestPorts.Common_Components.Socket-API \
17 titan.TestPorts.IPL4asp \
18 titan.TestPorts.LANL2asp \
19 titan.TestPorts.PCAPasp \
Harald Welte68079822017-12-12 16:30:53 +010020 titan.TestPorts.SIPmsg \
21 titan.TestPorts.TCPasp \
22 titan.TestPorts.TELNETasp \
Harald Weltea28dce12018-04-14 22:04:05 +020023 titan.TestPorts.UDPasp \
24 titan.TestPorts.UNIX_DOMAIN_SOCKETasp
Harald Welte68079822017-12-12 16:30:53 +010025
26ECLIPSEGIT2_REPOS= titan.ProtocolModules.GRE \
27 titan.ProtocolModules.M2PA \
28 titan.ProtocolModules.SCTP \
29 titan.ProtocolModules.SUA \
30 titan.ProtocolModules.SDP \
31 titan.TestPorts.GPIO \
32 titan.ProtocolModules.BSSAPP_v7.3.0 \
33 titan.ProtocolModules.BSSGP_v13.0.0 \
34 titan.ProtocolModules.BSSMAP_v11.2.0 \
35 titan.ProtocolModules.GTP_v13.5.0 \
36 titan.ProtocolModules.GTPv2_v13.7.0 \
37 titan.ProtocolModules.ISUP_Q.762 \
38 titan.ProtocolModules.LLC_v7.1.0 \
39 titan.ProtocolModules.MobileL3_v13.4.0 \
40 titan.ProtocolModules.NS_v7.3.0 \
Harald Welteb1add592018-03-27 20:43:40 +020041 titan.ProtocolModules.SNDCP_v7.0.0 \
42 titan.ProtocolEmulations.SCCP
Harald Welte68079822017-12-12 16:30:53 +010043
Harald Welte6fc784e2018-02-25 23:31:37 +010044OSMOGITHUB_REPOS= titan.TestPorts.SCTPasp \
Harald Weltec87abfc2018-03-18 10:58:00 +010045 titan.TestPorts.MTP3asp \
Harald Welteb1add592018-03-27 20:43:40 +020046 titan.ProtocolEmulations.M3UA
Harald Welte701b5742018-01-22 11:29:13 +010047
48ALL_REPOS=$(ECLIPSEGIT_REPOS) $(ECLIPSEGIT2_REPOS) $(OSMOGITHUB_REPOS)
Harald Welte68079822017-12-12 16:30:53 +010049
Stefan Sperling61c11e92018-03-20 18:25:26 +010050# Tag names from 'git-describe --tags'; if not available, a commit hash may be used instead.
51# In order to keep local changes in the repository of a dependency, set its commit to the
52# name of a local branch here (e.g. 'master').
Stefan Sperling61c11e92018-03-20 18:25:26 +010053titan.Libraries.TCCUsefulFunctions_commit= R.30.A
Harald Welteb1add592018-03-27 20:43:40 +020054titan.ProtocolEmulations.M3UA_commit= R.2.A-1-g53dead2
55titan.ProtocolEmulations.SCCP_commit= R.7.A-2-g724c83f
Stefan Sperling61c11e92018-03-20 18:25:26 +010056titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A
57titan.ProtocolModules.BSSGP_v13.0.0_commit= R.2.A
58titan.ProtocolModules.BSSMAP_v11.2.0_commit= R.2.A
59titan.ProtocolModules.GRE_commit= R.2.A
60titan.ProtocolModules.GTP_v13.5.0_commit= R.2.A
61titan.ProtocolModules.GTPv2_v13.7.0_commit= R.2.A
62titan.ProtocolModules.ICMP_commit= R.2.A
63titan.ProtocolModules.ICMPv6_commit= R.2.A
64titan.ProtocolModules.IP_commit= R.10.B-1-g99d0ec9
65titan.ProtocolModules.ISUP_Q.762_commit= R.8.A
66titan.ProtocolModules.L2TP_commit= R.2.A
67titan.ProtocolModules.LLC_v7.1.0_commit= R.2.A
68titan.ProtocolModules.M2PA_commit= R.2.A
69titan.ProtocolModules.M3UA_commit= R.2.A
70titan.ProtocolModules.MobileL3_v13.4.0_commit= R.2.A
71titan.ProtocolModules.NS_v7.3.0_commit= R.2.A
72titan.ProtocolModules.RTP_commit= R.5.A
73titan.ProtocolModules.SCTP_commit= R.2.A
74titan.ProtocolModules.SDP_commit= R.14.A
Harald Welte36296dc2018-04-16 17:37:31 +020075titan.ProtocolModules.SMPP_commit= R.2.A-2-gb7aee69
Stefan Sperling61c11e92018-03-20 18:25:26 +010076titan.ProtocolModules.SNDCP_v7.0.0_commit= R.2.A
77titan.ProtocolModules.SUA_commit= R.5.A
78titan.ProtocolModules.TCP_commit= R.3.A
79titan.ProtocolModules.UDP_commit= R.4.A
80titan.TestPorts.Common_Components.Socket-API_commit= R.6.A
81titan.TestPorts.GPIO_commit= R.3.A
82titan.TestPorts.IPL4asp_commit= R.29.A
83titan.TestPorts.LANL2asp_commit= R.8.B
84titan.TestPorts.MTP3asp_commit= 1cecdad6f3641a5f19b3833703bff6e5005eff11
85titan.TestPorts.PCAPasp_commit= R.7.A
86titan.TestPorts.SCTPasp_commit= R.11.A-2-g2faa9cf
87titan.TestPorts.SIPmsg_commit= R.15.A-1-ge4f9dd0
88titan.TestPorts.TCPasp_commit= R.9.A
89titan.TestPorts.TELNETasp_commit= R.9.A
90titan.TestPorts.UDPasp_commit= R.8.A
Harald Welte0a068c32018-04-06 13:52:35 +020091titan.TestPorts.UNIX_DOMAIN_SOCKETasp_commit= R.2.A-4-gbacd73d
Harald Welte68079822017-12-12 16:30:53 +010092
Stefan Sperling61c11e92018-03-20 18:25:26 +010093all: $(foreach dir,$(ALL_REPOS),$(dir)/update)
Harald Welte68079822017-12-12 16:30:53 +010094clean: $(foreach dir,$(ALL_REPOS),$(dir)/clean)
Stefan Sperlinga2b54492018-03-22 10:22:25 +010095distclean: $(foreach dir,$(ALL_REPOS),$(dir)/distclean)
Harald Welte68079822017-12-12 16:30:53 +010096
97define GIT_template
Stefan Sperling61c11e92018-03-20 18:25:26 +010098$(1)_ORIGIN!= if [ -d $(1) ]; then cd $(1) && git remote get-url origin; fi
99$(1)_HEAD!= if [ -d $(1) ]; then cd $(1) && git describe --tags 2>/dev/null || git rev-parse HEAD; fi
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100100$(1)_MODIFIED!= if [ -d $(1) ]; then cd $(1) && git diff --quiet --exit-code || echo -n "1"; fi
Stefan Sperling61c11e92018-03-20 18:25:26 +0100101
Harald Welte68079822017-12-12 16:30:53 +0100102$(1):
103 git clone $(2)/$(1)
104
Stefan Sperling61c11e92018-03-20 18:25:26 +0100105.PHONY: $(1)/update
Harald Welte68079822017-12-12 16:30:53 +0100106$(1)/update: $(1)
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100107ifeq ($$($(1)_MODIFIED),1)
108 @echo "WARNING: $(1) skipped because it contains uncommitted modifications!"
109else
Stefan Sperling61c11e92018-03-20 18:25:26 +0100110ifneq ($$($(1)_ORIGIN),$(2)/$(1))
111 cd $(1) && git remote set-url origin $(2)/$(1) && git fetch
112endif
113ifneq ($$($(1)_HEAD),$($(1)_commit))
Harald Welte035f7f82018-03-27 20:49:27 +0200114 cd $(1) && git fetch && git checkout -q -f "$($(1)_commit)"
Stefan Sperling61c11e92018-03-20 18:25:26 +0100115endif
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100116endif
Harald Welte68079822017-12-12 16:30:53 +0100117
118.PHONY: $(1)/clean
Harald Welte4c294b62018-02-15 18:27:10 +0100119$(1)/clean: $(1)
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100120ifeq ($$($(1)_MODIFIED),1)
121 @echo "WARNING: $(1) skipped because it contains uncommitted modifications!"
122else
Harald Welte035f7f82018-03-27 20:49:27 +0200123 cd $(1) && git fetch && git checkout -q -f "$($(1)_commit)" && git reset --hard
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100124endif
Harald Welte4c294b62018-02-15 18:27:10 +0100125
126.PHONY: $(1)/distclean
127$(1)/distclean:
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100128ifeq ($$($(1)_MODIFIED),1)
129 @echo "WARNING: $(1) skipped because it contains uncommitted modifications!"
130else
Harald Welte68079822017-12-12 16:30:53 +0100131 @rm -rf $(1)
Stefan Sperlinga2b54492018-03-22 10:22:25 +0100132endif
Harald Welte68079822017-12-12 16:30:53 +0100133endef
134
135$(foreach dir,$(ECLIPSEGIT_REPOS), \
136 $(eval $(call GIT_template,$(dir),$(ECLIPSEGIT))))
137
138$(foreach dir,$(ECLIPSEGIT2_REPOS), \
139 $(eval $(call GIT_template,$(dir),$(ECLIPSEGIT2))))
Harald Welte701b5742018-01-22 11:29:13 +0100140
141$(foreach dir,$(OSMOGITHUB_REPOS), \
142 $(eval $(call GIT_template,$(dir),$(OSMOGITHUB))))