Skip to content

Commit 2b8a17a

Browse files
authored
Merge pull request #2953 from mgreter/bugfix/mac-osx-build
Improve Mac OSX shared native makefile build
2 parents e913264 + 50feccb commit 2b8a17a

File tree

2 files changed

+33
-15
lines changed

2 files changed

+33
-15
lines changed

Makefile

+29-9
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,10 @@ STATICLIB = lib/libsass.a
152152
SHAREDLIB = lib/libsass.so
153153
LIB_STATIC = $(SASS_LIBSASS_PATH)/lib/libsass.a
154154
LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.so
155-
155+
ifeq ($(UNAME),Darwin)
156+
SHAREDLIB = lib/libsass.dylib
157+
LIB_SHARED = $(SASS_LIBSASS_PATH)/lib/libsass.dylib
158+
endif
156159
ifeq (Windows,$(UNAME))
157160
SASSC_BIN = $(SASS_SASSC_PATH)/bin/sassc.exe
158161
RESOURCES += res/resource.rc
@@ -206,8 +209,13 @@ lib/libsass.a: $(COBJECTS) $(OBJECTS) | lib
206209
lib/libsass.so: $(COBJECTS) $(OBJECTS) | lib
207210
$(CXX) -shared $(LDFLAGS) -o $@ $(COBJECTS) $(OBJECTS) $(LDLIBS)
208211

212+
lib/libsass.dylib: $(COBJECTS) $(OBJECTS) | lib
213+
$(CXX) -shared $(LDFLAGS) -o $@ $(COBJECTS) $(OBJECTS) $(LDLIBS) \
214+
-install_name @rpath/libsass.dylib
215+
209216
lib/libsass.dll: $(COBJECTS) $(OBJECTS) $(RCOBJECTS) | lib
210-
$(CXX) -shared $(LDFLAGS) -o $@ $(COBJECTS) $(OBJECTS) $(RCOBJECTS) $(LDLIBS) -s -Wl,--subsystem,windows,--out-implib,lib/libsass.a
217+
$(CXX) -shared $(LDFLAGS) -o $@ $(COBJECTS) $(OBJECTS) $(RCOBJECTS) $(LDLIBS) \
218+
-s -Wl,--subsystem,windows,--out-implib,lib/libsass.a
211219

212220
%.o: %.c
213221
$(CC) $(CFLAGS) -c -o $@ $<
@@ -262,13 +270,17 @@ $(DESTDIR)$(PREFIX)/lib/%.dll: lib/%.dll \
262270
| $(DESTDIR)$(PREFIX)/lib
263271
@$(INSTALL) -v -m0755 "$<" "$@"
264272

273+
$(DESTDIR)$(PREFIX)/lib/%.dylib: lib/%.dylib \
274+
| $(DESTDIR)$(PREFIX)/lib
275+
@$(INSTALL) -v -m0755 "$<" "$@"
276+
265277
install-static: $(DESTDIR)$(PREFIX)/lib/libsass.a
266278

267-
install-shared: $(DESTDIR)$(PREFIX)/lib/libsass.so \
279+
install-shared: $(DESTDIR)$(PREFIX)/$(SHAREDLIB) \
268280
install-headers
269281

270282
$(SASSC_BIN): $(BUILD)
271-
$(MAKE) -C $(SASS_SASSC_PATH) build-$(BUILD)-dev
283+
$(MAKE) -C $(SASS_SASSC_PATH) build-$(BUILD)
272284

273285
sassc: $(SASSC_BIN)
274286
$(SASSC_BIN) -v
@@ -279,19 +291,27 @@ version: $(SASSC_BIN)
279291
test: test_build
280292

281293
test_build: $(SASSC_BIN)
282-
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
294+
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass \
295+
--cmd-args "-I $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)" \
296+
$(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
283297

284298
test_full: $(SASSC_BIN)
285-
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass --run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
299+
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass \
300+
--cmd-args "-I $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)" \
301+
--run-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
286302

287303
test_probe: $(SASSC_BIN)
288-
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass --probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
304+
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass \
305+
--cmd-args "-I $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)" \
306+
--probe-todo $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
289307

290308
test_interactive: $(SASSC_BIN)
291-
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass --interactive $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
309+
$(RUBY_BIN) $(SASS_SPEC_PATH)/sass-spec.rb -c $(SASSC_BIN) --impl libsass \
310+
--cmd-args "-I $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)" \
311+
--interactive $(LOG_FLAGS) $(SASS_SPEC_PATH)/$(SASS_SPEC_SPEC_DIR)
292312

293313
clean-objects: | lib
294-
-$(RM) lib/*.a lib/*.so lib/*.dll lib/*.la
314+
-$(RM) lib/*.a lib/*.so lib/*.dll lib/*.dylib lib/*.la
295315
-$(RMDIR) lib
296316
clean: clean-objects
297317
$(RM) $(CLEANUPS)

script/ci-build-libsass

+4-6
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,14 @@ if [ "x$AUTOTOOLS" == "xyes" ]; then
8585

8686
make $MAKE_OPTS clean
8787

88-
# install to prefix directory
89-
PREFIX="$PREFIX" make $MAKE_OPTS install
90-
9188
else
9289

9390
make $MAKE_OPTS clean
9491

9592
# Run C++ unit tests
9693
make -C test clean
9794
make -C test test
95+
9896
fi
9997

10098
# install to prefix directory
@@ -128,10 +126,10 @@ then
128126
echo "Fetching Sass Spec PR $SPEC_PR"
129127
git -C sass-spec fetch -u origin pull/$SPEC_PR/head:ci-spec-pr-$SPEC_PR
130128
git -C sass-spec checkout --force ci-spec-pr-$SPEC_PR
131-
make LD_LIBRARY_PATH="$PREFIX/lib/" DYLD_LIBRARY_PATH="$PREFIX/lib/" $MAKE_OPTS test_probe
129+
make $MAKE_OPTS test_probe
132130
else
133-
make LD_LIBRARY_PATH="$PREFIX/lib/" DYLD_LIBRARY_PATH="$PREFIX/lib/" $MAKE_OPTS test_probe
131+
make $MAKE_OPTS test_probe
134132
fi
135133
else
136-
make LD_LIBRARY_PATH="$PREFIX/lib/" DYLD_LIBRARY_PATH="$PREFIX/lib/" $MAKE_OPTS test_probe
134+
make $MAKE_OPTS test_probe
137135
fi

0 commit comments

Comments
 (0)