@@ -29,9 +29,11 @@ CP ?= cp
29
29
ECHO ?= echo
30
30
FSHARPC ?= fsharpc
31
31
GENDARME ?= gendarme
32
+ INSTALL ?= install
32
33
MCS ?= mcs
33
34
MKDIR ?= mkdir
34
35
PKG_CONFIG ?= pkg-config
36
+ PREFIX ?= /usr/local
35
37
SED ?= sed
36
38
TAR ?= tar
37
39
XBUILD ?= xbuild
@@ -47,7 +49,6 @@ ifeq ($(MODE), Debug)
47
49
MCS_FLAGS += -debug
48
50
else
49
51
override xb_mode = net_4_0_Release
50
- override mono_opt =
51
52
52
53
FSHARPC_FLAGS += --optimize
53
54
MCS_FLAGS += -optimize
@@ -56,19 +57,18 @@ endif
56
57
FSHARPC_FLAGS += --nologo --warnaserror
57
58
GENDARME_FLAGS += --severity all --confidence all
58
59
MCS_FLAGS += -langversion:experimental -unsafe -warnaserror
59
- XBUILD_FLAGS += /verbosity:quiet /property:Configuration=$(xb_mode )
60
+ XBUILD_FLAGS += /nologo /property:Configuration=$(xb_mode ) /verbosity:quiet
60
61
61
62
FSHARPC_TEST_FLAGS += --debug+ --nologo --warnaserror
62
63
MCS_TEST_FLAGS += -debug -langversion:experimental -unsafe -warnaserror
63
64
64
- .PHONY : all check clean clean-check clean-deps gendarme update-deps
65
+ .PHONY : all check clean clean-check clean-deps clean-release gendarme install release uninstall update-deps
65
66
66
67
override results = \
67
- LICENSE \
68
- README \
69
68
sdb.exe \
70
69
sdb.exe.config \
71
- sdb
70
+ sdb \
71
+ sdb-dev
72
72
73
73
all : $(addprefix bin/, $(results ) )
74
74
@@ -104,7 +104,7 @@ override tests = \
104
104
$(addprefix chk/fs/, $(addsuffix .mdb, $(fs_tests ) ) )
105
105
106
106
check : chk/check.exe $(addprefix bin/, $(results ) ) $(tests )
107
- $(CD ) chk && MONO_PATH=. $(MONO_PREFIX ) /bin/mono check.exe
107
+ $(CD ) chk && MONO_PATH=. $(MONO_PREFIX ) /bin/mono $( notdir $< )
108
108
109
109
clean :
110
110
$(RM ) -r bin
@@ -116,9 +116,40 @@ clean-check:
116
116
clean-deps :
117
117
$(CD ) dep/debugger-libs && $(XBUILD ) $(XBUILD_FLAGS ) /target:Clean
118
118
119
+ clean-release :
120
+ $(RM ) -r rel
121
+
119
122
gendarme : bin/sdb.exe
120
123
$(GENDARME ) $(GENDARME_FLAGS ) --log bin/sdb.log $<
121
124
125
+ install : $(addprefix bin/, $(results ) )
126
+ $(INSTALL ) -m755 -d $(PREFIX ) /lib/sdb
127
+ $(INSTALL ) -m755 bin/ICSharpCode.NRefactory.dll $(PREFIX ) /lib/sdb
128
+ $(INSTALL ) -m755 bin/ICSharpCode.NRefactory.CSharp.dll $(PREFIX ) /lib/sdb
129
+ $(INSTALL ) -m755 bin/Mono.Cecil.dll $(PREFIX ) /lib/sdb
130
+ $(INSTALL ) -m755 bin/Mono.Cecil.Mdb.dll $(PREFIX ) /lib/sdb
131
+ $(INSTALL ) -m755 bin/Mono.Debugger.Soft.dll $(PREFIX ) /lib/sdb
132
+ $(INSTALL ) -m755 bin/Mono.Debugging.dll $(PREFIX ) /lib/sdb
133
+ $(INSTALL ) -m755 bin/Mono.Debugging.Soft.dll $(PREFIX ) /lib/sdb
134
+ $(INSTALL ) -m755 bin/sdb.exe $(PREFIX ) /lib/sdb
135
+ $(INSTALL ) -m755 bin/sdb.exe.config $(PREFIX ) /lib/sdb
136
+ $(INSTALL ) -m755 -d $(PREFIX ) /bin
137
+ $(INSTALL ) -m755 bin/sdb $(PREFIX ) /bin
138
+
139
+ release : rel/sdb.tar.gz
140
+
141
+ uninstall :
142
+ $(RM ) $(PREFIX ) /lib/sdb/ICSharpCode.NRefactory.dll
143
+ $(RM ) $(PREFIX ) /lib/sdb/ICSharpCode.NRefactory.CSharp.dll
144
+ $(RM ) $(PREFIX ) /lib/sdb/Mono.Cecil.dll
145
+ $(RM ) $(PREFIX ) /lib/sdb/Mono.Cecil.Mdb.dll
146
+ $(RM ) $(PREFIX ) /lib/sdb/Mono.Debugger.Soft.dll
147
+ $(RM ) $(PREFIX ) /lib/sdb/Mono.Debugging.dll
148
+ $(RM ) $(PREFIX ) /lib/sdb/Mono.Debugging.Soft.dll
149
+ $(RM ) $(PREFIX ) /lib/sdb/sdb.exe
150
+ $(RM ) $(PREFIX ) /lib/sdb/sdb.exe.config
151
+ $(RM ) $(PREFIX ) /bin/sdb
152
+
122
153
override refs = \
123
154
ICSharpCode.NRefactory.dll \
124
155
ICSharpCode.NRefactory.CSharp.dll \
@@ -196,32 +227,38 @@ override srcs = \
196
227
src/State.cs \
197
228
src/Utilities.cs
198
229
199
- bin/sdb.exe : $(srcs ) $(addprefix bin/, $(refs ) ) mono.snk
200
- $(MCS ) $(MCS_FLAGS ) -keyfile:mono.snk -lib:bin -out:bin/sdb.exe -target:exe -r:Mono.Posix $(addprefix -r:, $(refs ) ) $(srcs )
230
+ bin/sdb.exe : mono.snk $(srcs ) $(addprefix bin/, $(refs ) )
231
+ $(MCS ) $(MCS_FLAGS ) -keyfile:$< -lib:bin -out:$@ -target:exe -r:Mono.Posix $(addprefix -r:, $(refs ) ) $(srcs )
201
232
202
233
bin/sdb.exe.config : sdb.exe.config
203
234
$(MKDIR ) -p bin
204
235
$(CP ) $< $@
205
236
206
237
bin/sdb : sdb.in
207
238
$(MKDIR ) -p bin
208
- $(SED ) s/__MONO_OPTIONS__/ $(mono_opt ) / $< > $@
239
+ $(SED ) -e s+__LIB_PATH_EXTRA__+/../lib/sdb+ -e s+__MONO_OPTIONS_EXTRA__+ $(mono_opt ) + $< > $@
209
240
$(CHMOD ) +x $@
210
241
211
- bin/LICENSE : LICENSE
242
+ bin/sdb-dev : sdb.in
212
243
$(MKDIR ) -p bin
213
- $(CP ) $< $@
214
-
215
- bin/README : README.md
216
- $(MKDIR ) -p bin
217
- $(CP ) $< $@
244
+ $(SED ) -e s+__LIB_PATH_EXTRA__++ -e s+__MONO_OPTIONS_EXTRA__+$(mono_opt ) + $< > $@
245
+ $(CHMOD ) +x $@
218
246
219
247
chk/check.exe : chk/check.fs mono.snk
220
- $(FSHARPC ) $(FSHARPC_FLAGS ) --keyfile:mono.snk --out:$@ --target:exe chk/check.fs
248
+ $(FSHARPC ) $(FSHARPC_FLAGS ) --keyfile:mono.snk --out:$@ --target:exe $<
221
249
222
- sdb.tar.gz : $(addprefix bin/, $(results ) )
223
- $(RM ) sdb.tar.gz
224
- $(CD ) bin && $(TAR ) -zcf ../sdb.tar.gz $(results ) $(refs )
250
+ override artifacts = \
251
+ README.md \
252
+ LICENSE \
253
+ $(addprefix bin/, $(refs ) ) \
254
+ bin/sdb.exe \
255
+ bin/sdb.exe.config
256
+
257
+ rel/sdb.tar.gz : sdb.in $(artifacts )
258
+ $(MKDIR ) -p rel
259
+ $(CP ) $(artifacts ) rel
260
+ $(CP ) bin/sdb-dev rel/sdb
261
+ $(CD ) rel && $(TAR ) -zcf $(notdir $@ ) $(notdir $(artifacts ) ) sdb
225
262
226
263
update-deps :
227
264
$(ECHO ) " /* DO NOT EDIT - OVERWRITTEN BY MAKEFILE */\n" > src/Options.cs
0 commit comments