This repository was archived by the owner on Jan 17, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
63 lines (47 loc) · 1.58 KB
/
Makefile
File metadata and controls
63 lines (47 loc) · 1.58 KB
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
TARGET = build/Release/node-eclib.node
GF = gf_complete
JERA = Jerasure
ERASURE = erasurecode
LIB_EXT := so
ifeq ($(shell uname -s), Darwin)
LIB_EXT := dylib
endif
ECLIB = $(dir $(abspath $(MAKEFILE_LIST)))
LIBDIR = $(ECLIB)libs
GFPATH = $(ECLIB)gf_complete
JERAPATH = $(ECLIB)Jerasure
ERASUREPATH = $(ECLIB)erasurecode
GFLIB = $(LIBDIR)/lib/lib$(GF).$(LIB_EXT)
JERALIB = $(LIBDIR)/lib/lib$(JERA).$(LIB_EXT)
ERASURELIB = $(LIBDIR)/lib/lib$(ERASURE).$(LIB_EXT)
all: $(TARGET)
$(TARGET): | $(LIBDIR) $(GFLIB) $(JERALIB) $(ERASURELIB)
$(LIBDIR):
mkdir $(LIBDIR)
$(GFPATH):
git clone http://lab.jerasure.org/jerasure/gf-complete.git $@
$(GFPATH)/Makefile: | $(GFPATH)
cd $(GFPATH) && ./autogen.sh && ./configure --prefix=$(LIBDIR)
$(GFLIB): | $(GFPATH)/Makefile
$(MAKE) -C $(GFPATH) && $(MAKE) -C $(GFPATH) install
$(JERAPATH):
git clone http://lab.jerasure.org/jerasure/jerasure.git $@
$(JERAPATH)/Makefile: | $(JERAPATH)
cd $(JERAPATH) && autoreconf --force --install \
&& ./configure --prefix=$(LIBDIR) \
LDFLAGS=-L$(LIBDIR)/lib \
CPPFLAGS=-I$(LIBDIR)/include
$(JERALIB): | $(JERAPATH)/Makefile
$(MAKE) -C $(JERAPATH) && $(MAKE) -C $(JERAPATH) install
$(ERASUREPATH):
git clone https://github.com/openstack/liberasurecode.git $@
$(ERASUREPATH)/Makefile: | $(ERASUREPATH)
cd $(ERASUREPATH) && ./autogen.sh && ./configure --prefix=$(LIBDIR)
$(ERASURELIB): | $(ERASUREPATH)/Makefile
$(MAKE) -C $(ERASUREPATH) && $(MAKE) -C $(ERASUREPATH) install
clean:
$(RM) $(TARGET)
distclean: clean
$(RM) -r $(GFPATH) $(JERAPATH) $(ERASUREPATH)
re: distclean all
.PHONY: all clean distclean re