Makefile: clone dependencies into 'deps' folder

We used to rely on out-of-tree git clones to be prepared by the user.

This commit changes the system to make sure we clone all git repos
we depend upon into the 'deps' folder, and then setup the symlinks
to that folder.  As a result, we should be able to support
self-contained builds using the makefiles in this repo.
This commit is contained in:
Harald Welte 2017-12-12 16:30:53 +01:00
parent 4c5ef5b3e1
commit 6807982106
11 changed files with 81 additions and 10 deletions

View File

@ -14,7 +14,11 @@ PARALLEL_MAKE:=-j4
# make bsc/all
# make bsc (equivalent to bsc/all)
default: all
default: deps all
.PHONY: deps
deps:
$(MAKE) -C deps
compile: $(foreach dir,$(SUBDIRS),$(dir)/compile)
clean: $(foreach dir,$(SUBDIRS),$(dir)/clean)

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

67
deps/Makefile vendored Normal file
View File

@ -0,0 +1,67 @@
ECLIPSEGIT:=https://github.com/eclipse
ECLIPSEGIT2:=git://git.eclipse.org/gitroot/titan
ECLIPSEGIT_REPOS= titan.Libraries.TCCUsefulFunctions \
titan.ProtocolModules.ICMP \
titan.ProtocolModules.ICMPv6 \
titan.ProtocolModules.IP \
titan.ProtocolModules.L2TP \
titan.ProtocolModules.M3UA \
titan.ProtocolModules.SMPP \
titan.ProtocolModules.TCP \
titan.ProtocolModules.UDP \
titan.ProtocolModules.RTP \
titan.TestPorts.Common_Components.Socket-API \
titan.TestPorts.IPL4asp \
titan.TestPorts.LANL2asp \
titan.TestPorts.PCAPasp \
titan.TestPorts.SCTPasp \
titan.TestPorts.SIPmsg \
titan.TestPorts.TCPasp \
titan.TestPorts.TELNETasp \
titan.TestPorts.UDPasp \
titan.TestPorts.UNIX_DOMAIN_SOCKETasp
ECLIPSEGIT2_REPOS= titan.ProtocolModules.GRE \
titan.ProtocolModules.M2PA \
titan.ProtocolModules.SCTP \
titan.ProtocolModules.SUA \
titan.ProtocolModules.SDP \
titan.TestPorts.GPIO \
titan.ProtocolModules.BSSAPP_v7.3.0 \
titan.ProtocolModules.BSSGP_v13.0.0 \
titan.ProtocolModules.BSSMAP_v11.2.0 \
titan.ProtocolModules.GTP_v13.5.0 \
titan.ProtocolModules.GTPv2_v13.7.0 \
titan.ProtocolModules.ISUP_Q.762 \
titan.ProtocolModules.LLC_v7.1.0 \
titan.ProtocolModules.MobileL3_v13.4.0 \
titan.ProtocolModules.NS_v7.3.0 \
titan.ProtocolModules.SNDCP_v7.0.0
ALL_REPOS=$(ECLIPSEGIT_REPOS) $(ECLIPSEGIT2_REPOS)
all: $(ALL_REPOS)
update: $(foreach dir,$(ALL_REPOS),$(dir)/update)
clean: $(foreach dir,$(ALL_REPOS),$(dir)/clean)
define GIT_template
$(1):
git clone $(2)/$(1)
.PHONY:$(1)/update
$(1)/update: $(1)
(cd $(1) && git fetch && git checkout -f -B master)
.PHONY: $(1)/clean
$(1)/clean:
@rm -rf $(1)
endef
$(foreach dir,$(ECLIPSEGIT_REPOS), \
$(eval $(call GIT_template,$(dir),$(ECLIPSEGIT))))
$(foreach dir,$(ECLIPSEGIT2_REPOS), \
$(eval $(call GIT_template,$(dir),$(ECLIPSEGIT2))))

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1

View File

@ -1,6 +1,6 @@
#!/bin/sh
BASEDIR=~/projects/git
BASEDIR=../deps
gen_links() {
DIR=$1