Print this page
OS-2552 add node-lockfd (v0.0.2) to platform
OS-2558 smartos-live should run tools from proto.strap, not proto
*** 114,123 ****
--- 114,132 ----
$(KSTAT.NODE) : CXXFLAGS += $(NODE_CFLAGS)
$(KSTAT.NODE) : LDFLAGS += $(NODE_LDFLAGS)
$(KSTAT.NODE) : LIBS += -lkstat
#
+ # The lockfd Node add-on is based on v8plus, which has its own system of
+ # Makefiles.
+ #
+ LOCKFD_BINDING.NODE = node-lockfd/lib/lockfd_binding.node
+
+ LOCKFD_SRC_DIR = $(PWD)/node-lockfd/src
+ LOCKFD_V8PLUS_DIR = $(PWD)/node-lockfd/node_modules/v8plus
+
+ #
# The dtrace-provider add-on uses a combination of C, assembly and C++ files in
# multiple directories.
#
DTRACE_PROVIDER_OBJDIR = node-dtrace-provider/build/Release
DTRACE_PROVIDER_SRCDIR = node-dtrace-provider
*** 312,321 ****
--- 321,331 ----
zfs_send \
zoneevent \
$(EXPAT.NODE) \
$(DTRACE_PROVIDER.NODE) \
$(KSTAT.NODE) \
+ $(LOCKFD_BINDING.NODE) \
$(MICROTIME.NODE) \
$(SYSLOG.NODE) \
$(SQLITE3_BINDINGS.NODE) \
$(UUID.NODE) \
$(ZSOCK_BINDINGS.NODE) \
*** 342,351 ****
--- 352,363 ----
mkdir -p $(DESTDIR)/smartdc/lib
cp -p $(SMARTDC_LIB_TARGETS) $(DESTDIR)/smartdc/lib
mkdir -m 0755 -p $(PREFIX_NODE)/node_modules
cp -Pr node_modules/* $(PREFIX_NODE)/node_modules
cp $(KSTAT.NODE) $(PREFIX_NODE)/node_modules/
+ cp node-lockfd/lib/index.js $(PREFIX_NODE)/node_modules/lockfd.js
+ cp $(LOCKFD_BINDING.NODE) $(PREFIX_NODE)/node_modules/lockfd_binding.node
cp $(MICROTIME.NODE) $(PREFIX_NODE)/node_modules/
rm -rf $(DESTDIR)/usr/vm
cp -PR vm $(DESTDIR)/usr/
mkdir -m 0755 -p $(DESTDIR)/usr/vm/node_modules
mkdir -p $(PREFIX_NODE)/node_modules/{zsock,zutil}/build/Release
*** 460,469 ****
--- 472,482 ----
clean:
-rm -f $(TARGETS) $(SMARTDC_TARGETS) $(SMARTDC_LIB_TARGETS) *.o \
$(CLEANFILES)
-rm -rf node-sqlite3/build
+ cd $(LOCKFD_SRC_DIR) && $(MAKE) clean
include Makefile.targ
#
# Custom rules for building our various real targets follow. Generic rules
*** 494,503 ****
--- 507,533 ----
$(EXPAT.NODE): node-expat/node-expat.cc
@mkdir -p $(EXPAT_OBJDIR)
$(GXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
#
+ # node-lockfd is built using the v8plus-based Makefile contained within the
+ # project. We use LD_OPTIONS, here, to induce the linker to include libc,
+ # which gcc as configured in proto.strap does not, but which other C compilers
+ # generally do.
+ #
+ $(LOCKFD_BINDING.NODE): FRC
+ cd $(LOCKFD_SRC_DIR) && \
+ LD_OPTIONS=-lc \
+ $(MAKE) \
+ CC=$(GCC) CXX=$(GXX) \
+ PREFIX_NODE=$(PREFIX_NODE) \
+ NODE_EXEC=$(NODE_EXEC) \
+ V8PLUS=$(LOCKFD_V8PLUS_DIR) \
+ CTFCONVERT=$(CTFCONVERT) \
+ CTFMERGE=$(CTFMERGE)
+
+ #
# The next two are used to build libusdt files into
# $(DTRACE_PROVIDER_OBJDIR)/libusdt/*.o, instead of building libusdt.a
#
$(DTRACE_PROVIDER_OBJDIR)/%.o: $(DTRACE_PROVIDER_SRCDIR)/%.c \
$(DTRACE_PROVIDER_HDRS)
*** 551,555 ****
--- 581,587 ----
@mkdir -p $(ZUTIL_OBJDIR)
$(GXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
$(ZUTIL_BINDINGS.NODE): $(ZUTIL_BINDINGS_OBJS)
$(GXX) $(LDFLAGS) -o $@ $(ZUTIL_BINDINGS_OBJS) $(LIBS)
+
+ FRC: