27
27
endif
28
28
CAT ?= $(if $(filter $(OS ) ,Windows_NT) ,type,cat)
29
29
30
+ ifdef WASM
31
+ CFLAGS += -D_WASM
32
+ CXXFLAGS += -D_WASM
33
+ endif
34
+
35
+ ifdef WASM
36
+ UNAME := WebAssembly
37
+ else
30
38
ifneq (,$(findstring /cygdrive/,$(PATH ) ) )
31
39
UNAME := Cygwin
32
40
else
44
52
endif
45
53
endif
46
54
endif
55
+ endif
47
56
48
57
ifndef LIBSASS_VERSION
49
58
ifneq ($(wildcard ./.git/ ),)
@@ -161,18 +170,28 @@ ifeq (Windows,$(UNAME))
161
170
LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.dll
162
171
endif
163
172
else
173
+ ifdef WASM
174
+ SASSC_BIN = $(SASS_SASSC_PATH)/bin/sassc.wasm
175
+ SHAREDLIB = lib/libsass.wasm
176
+ LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.wasm
177
+ else
164
178
ifneq (Cygwin,$(UNAME ) )
165
179
CFLAGS += -fPIC
166
180
CXXFLAGS += -fPIC
167
181
LDFLAGS += -fPIC
168
182
endif
169
183
endif
184
+ endif
170
185
171
186
include Makefile.conf
172
187
OBJECTS = $(addprefix src/,$(SOURCES:.cpp=.o ) )
173
188
COBJECTS = $(addprefix src/,$(CSOURCES:.c=.o ) )
174
189
RCOBJECTS = $(RESOURCES:.rc=.o )
175
190
191
+ ifdef WASM
192
+ WASMOBJECTS = wasm/libcxxabi_stubs.o
193
+ endif
194
+
176
195
DEBUG_LVL ?= NONE
177
196
178
197
CLEANUPS ?=
@@ -198,15 +217,18 @@ debug-shared: shared
198
217
lib :
199
218
$(MKDIR ) lib
200
219
201
- lib/libsass.a : $(COBJECTS ) $(OBJECTS ) | lib
202
- $(AR ) rcvs $@ $(COBJECTS ) $(OBJECTS )
220
+ lib/libsass.a : $(COBJECTS ) $(OBJECTS ) $( WASMOBJECTS ) | lib
221
+ $(AR ) rcvs $@ $(COBJECTS ) $(OBJECTS ) $( WASMOBJECTS )
203
222
204
223
lib/libsass.so : $(COBJECTS ) $(OBJECTS ) | lib
205
224
$(CXX ) -shared $(LDFLAGS ) -o $@ $(COBJECTS ) $(OBJECTS ) $(LDLIBS )
206
225
207
226
lib/libsass.dll : $(COBJECTS ) $(OBJECTS ) $(RCOBJECTS ) | lib
208
227
$(CXX ) -shared $(LDFLAGS ) -o $@ $(COBJECTS ) $(OBJECTS ) $(RCOBJECTS ) $(LDLIBS ) -s -Wl,--subsystem,windows,--out-implib,lib/libsass.a
209
228
229
+ lib/libsass.wasm : $(COBJECTS ) $(OBJECTS ) $(WASMOBJECTS ) | lib
230
+ $(CXX ) $(LDFLAGS ) -o $@ $(COBJECTS ) $(OBJECTS ) $(WASMOBJECTS ) $(LDLIBS )
231
+
210
232
% .o : % .c
211
233
$(CC ) $(CFLAGS ) -c -o $@ $<
212
234
@@ -269,7 +291,9 @@ $(SASSC_BIN): $(BUILD)
269
291
$(MAKE ) -C $(SASS_SASSC_PATH ) build-$(BUILD ) -dev
270
292
271
293
sassc : $(SASSC_BIN )
294
+ ifndef WASM
272
295
$(SASSC_BIN) -v
296
+ endif
273
297
274
298
version : $(SASSC_BIN )
275
299
$(SASSC_BIN ) -v
@@ -286,7 +310,7 @@ test_probe: $(SASSC_BIN)
286
310
$(RUBY_BIN ) $(SASS_SPEC_PATH ) /sass-spec.rb -c $(SASSC_BIN ) --impl libsass --probe-todo $(LOG_FLAGS ) $(SASS_SPEC_PATH ) /$(SASS_SPEC_SPEC_DIR )
287
311
288
312
clean-objects : | lib
289
- -$(RM ) lib/* .a lib/* .so lib/* .dll lib/* .la
313
+ -$(RM ) lib/* .a lib/* .so lib/* .dll lib/* .la lib/ * .wasm
290
314
-$(RMDIR ) lib
291
315
clean : clean-objects
292
316
$(RM ) $(CLEANUPS )
0 commit comments