-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
79 lines (63 loc) · 2.94 KB
/
Makefile
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
SHELL:=bash
GTEST_VER:=1.7.0
MOZJS_VER:=50.1.0
MOZJS_VER_SUFFIX:=
MOZJS_CONFIG_FLAGS+=--disable-jemalloc --disable-shared-js --disable-tests --enable-install-strip --without-intl-api
CACHE_PATH:=~/Downloads
EXTERNALS:=$(CURDIR)/externals
INSTALLED:=$(EXTERNALS)/installed
INSTALLED_INC:=$(INSTALLED)/include
INSTALLED_LIB:=$(INSTALLED)/lib
INSTALLED_DIRS:=$(EXTERNALS) $(INSTALLED) $(INSTALLED_INC) $(INSTALLED_LIB)
MOZJS_ARCHIVE_NAME:=mozjs-$(MOZJS_VER).tar.bz2
MOZJS_ARCHIVE_PATH:=$(EXTERNALS)/$(MOZJS_ARCHIVE_NAME)
MOZJS_SOURCE_PATH:=$(EXTERNALS)/mozjs-$(MOZJS_VER)
MOZJS_BUILD_PATH:=$(MOZJS_SOURCE_PATH)/js/src/build_OPT.OBJ
MOZJS_H:=$(INSTALLED_INC)/mozjs/jsapi.h
MOZJS_LIB:=$(INSTALLED_LIB)/libjs_static.ajs
GTEST_ARCHIVE_NAME:=gtest-$(GTEST_VER).zip
GTEST_ARCHIVE_PATH:=$(EXTERNALS)/$(GTEST_ARCHIVE_NAME)
GTEST_H:=$(INSTALLED_INC)/gtest/gtest.h
GTEST_LIB:=$(INSTALLED_LIB)/libgtest.a
.PHONY: build all test examples clean .jsapi .googletest
.PRECIOUS: $(MOZJS_ARCHIVE_PATH) $(GTEST_ARCHIVE_PATH) $(MOZJS_LIB) $(GTEST_LIB)
.NOTPARALLEL: test
build all test: .jsapi .googletest
cd src/libjsapi && $(MAKE) $@
examples: build
cd examples && $(MAKE)
clean:
cd src/libjsapi && $(MAKE) $@
cd examples && $(MAKE) $@
.jsapi: $(MOZJS_LIB)
.googletest: $(GTEST_LIB)
$(MOZJS_LIB): $(MOZJS_ARCHIVE_PATH)
mkdir -p $(INSTALLED_DIRS) && \
cd $(MOZJS_BUILD_PATH) && \
$(MAKE) MAKEOVERRIDES= && \
$(MAKE) install MAKEOVERRIDES= && \
export LIBMOZGLUE=dist/sdk/lib/libmozglue.a && if [ -e $${LIBMOZGLUE} ]; then cp -fp $${LIBMOZGLUE} $(INSTALLED_LIB); fi && \
export LIBMOZGLUE=dist/sdk/lib/libmozglue.dylib && if [ -e $${LIBMOZGLUE} ]; then cp -fp $${LIBMOZGLUE} $(INSTALLED_LIB); fi && \
cd $(INSTALLED_INC) && \
if [ -L mozjs ]; then rm mozjs; fi && ln -s mozjs-?? mozjs
$(MOZJS_ARCHIVE_PATH):
mkdir -p $(INSTALLED_DIRS) && \
cd $(EXTERNALS) && \
(test -f $(CACHE_PATH)/$(MOZJS_ARCHIVE_NAME) && cp -fp $(CACHE_PATH)/$(MOZJS_ARCHIVE_NAME) .) || curl http://cdn.ripcordsoftware.com/mozjs-$(MOZJS_VER)$(MOZJS_VER_SUFFIX).tar.bz2 -o $(MOZJS_ARCHIVE_NAME) && \
mkdir -p $(MOZJS_SOURCE_PATH) && cd $(MOZJS_SOURCE_PATH) && \
tar xfj ../$(MOZJS_ARCHIVE_NAME) --strip-components=1 && \
mkdir -p $(MOZJS_BUILD_PATH) && cd $(MOZJS_BUILD_PATH) && \
CC="$(CC)" CFLAGS="$(CFLAGS)" CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" ../configure --prefix=$(INSTALLED) $(MOZJS_CONFIG_FLAGS)
$(GTEST_LIB): $(GTEST_ARCHIVE_PATH)
mkdir -p $(INSTALLED_DIRS) && \
cd $(EXTERNALS)/gtest-$(GTEST_VER) && \
$(MAKE) MAKEOVERRIDES= && \
cp -Rfp include/* $(INSTALLED_INC) && \
cp -Rfp lib/.libs/* $(INSTALLED_LIB)
$(GTEST_ARCHIVE_PATH):
mkdir -p $(INSTALLED_DIRS) && \
cd $(EXTERNALS) && \
(test -f $(CACHE_PATH)/$(GTEST_ARCHIVE_NAME) && cp -fp $(CACHE_PATH)/$(GTEST_ARCHIVE_NAME) .) || curl http://cdn.ripcordsoftware.com/gtest-$(GTEST_VER).zip -o $(GTEST_ARCHIVE_NAME) && \
unzip -o $(GTEST_ARCHIVE_NAME) && \
cd gtest-$(GTEST_VER) && \
CC="$(CC)" CFLAGS="$(CFLAGS)" CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" ./configure