-
Notifications
You must be signed in to change notification settings - Fork 0
/
makefile
123 lines (86 loc) · 3 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
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
# Makefile for compiling makerouter, collecting javascript and scss files,
# and for creating RPM modules
# Designed for Fedora. Should be compatible with RPM systems
#
# Copyright 2014-15 Jaypha.
# Distributed under the Boost V1.0 license.
RDMD = rdmd
SPINNA_ROOT = .
DUB_ROOT = $(HOME)/.dub/packages
BININSTALL = /usr/local/bin
LIBINSTALL = /usr/local/lib
include makefile.include
DUB_DIRS = $(addprefix $(DUB_ROOT)/,$(DUB_PACKAGES))
LIBDIR = $(DUB_ROOT)/dyaml-0.5.0 .
LIBS = fcgi dyaml
IMPDIR = $(SPINNA_ROOT)/src $(DUB_DIRS)
LIBFLAGS= $(addprefix -L-l,$(LIBS)) $(addprefix -L-L,$(LIBDIR))
JFLAGS = $(addprefix -J,$(IMPDIR))
IFLAGS = $(addprefix -I,$(IMPDIR))
DFLAGS = $(IFLAGS) $(JFLAGS)
RDFLAGS = $(DFLAGS) -release -O
DDFLAGS = $(DFLAGS) -g -debug
LFLAGS = $(LIBFLAGS)
TESTSRC = $(addprefix $(SPINNA_ROOT)/srctest/,$(TESTFILES))
build: bin res
res: css js
css: res/_spinna.scss res/_spinna_no_widgets.scss
js: res/spinna.js res/spinna_no_widgets.js
bin: bin/makerouter
# --------------------------
bin/makerouter: src/makerouter.d
$(RDMD) $(RDFLAGS) $(LFLAGS) -ofbin/makerouter --build-only src/makerouter.d
# makerouter for testing
makerouter: src/makerouter.d
$(RDMD) $(DDFLAGS) $(LFLAGS) -ofmakerouter --build-only src/makerouter.d
# --------------------------
# This is for installing support programs, not finished software.
install:
cp bin/makerouter $(BININSTALL)
strip $(BININSTALL)/makerouter
# --------------------------
clean:
rm -f makerouter
rm -f bin/*
rm -f lib/*
rm -f res/*.scss
rm -f res/*.js
#----------------------------------------------------
# Javascript and css resources
res/spinna.js: $(JSFILES) $(JSWFILES)
js -C $(addprefix -f ,$(JSFILES)) $(addprefix -f ,$(JSWFILES))
cat $(JSFILES) $(JSWFILES) > res/spinna.js
res/spinna_no_widgets.js: $(JSFILES)
js -C $(addprefix -f ,$(JSFILES))
cat $(JSFILES) > res/spinnanowidgets.js
res/_spinna.scss: $(SCSSFILES) $(SCSSWFILES)
cat $(SCSSFILES) $(SCSSWFILES) > res/_spinna.scss
res/_spinna_no_widgets.scss: $(SCSSFILES)
#cat $(SCSSFILES) > res/_spinnanowidgets.scss
touch res/_spinnanowidgets.scss
#----------------------------------------------------
# Test programs for code that cannot be tested with unittest.
test:
for i in $(TESTFILES); do \
echo $$i; \
$(RDMD) -I./srctest $(DDFLAGS) $(LFLAGS) -of./bin/$$i -J./srctest -unittest ./srctest/$$i.d ; \
done
echo finished testing
#----------------------------------------------------
# Install for rpm
rpminstall: build
rm -rf $(DESTDIR)/*
mkdir $(DESTDIR)/usr
mkdir $(DESTDIR)/usr/bin
mkdir $(DESTDIR)/usr/lib64
mkdir $(DESTDIR)/usr/include
mkdir $(DESTDIR)/usr/include/spinna
mkdir $(DESTDIR)/usr/include/spinna/src
cp bin/makerouter $(DESTDIR)/usr/bin
strip $(DESTDIR)/usr/bin/makerouter
cp -R src/backtrace $(DESTDIR)/usr/include/spinna/src
cp -R src/jaypha $(DESTDIR)/usr/include/spinna/src
cp src/*.d $(DESTDIR)/usr/include/spinna/src
cp -R thirdparty $(DESTDIR)/usr/include/spinna
cp -R licenses $(DESTDIR)/usr/include/spinna
cp -R res $(DESTDIR)/usr/include/spinna