+######################################################################
# qapi
common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o
diff --git a/libqblock/Makefile b/libqblock/Makefile
index 734d90e..cdbfffb 100644
--- a/libqblock/Makefile
+++ b/libqblock/Makefile
@@ -1,4 +1,31 @@
TOOLS += libqblock.la
-libqblock.la:
- @true
+# objects linked into a shared library, built with libtool with -fPIC if
required
+libqblock-obj-y = $(libqblock-y) $(util-obj-y)
+libqblock-obj-y += $(filter-out stubs/set-fd-handler.o, $(stub-obj-y))
+libqblock-obj-y += $(block-obj-y)
+
+libqblock-lobj-y=$(patsubst %.o, %.lo, $(libqblock-obj-y))
+
+# libtool will build the .o files, too
+$(libqblock-obj-y): | $(libqblock-lobj-y)
+
+LIBQBLOCK_CLEAN_TARGETS=$(libqblock-lobj-y) libqblock.la libqblock/.libs
+SUBDIR_CLEAN_RULES+=libqblock-clean
+
+all: libqblock.la
+
+#########################################################################
+# Rules for building libqblock standalone library
+
+$(libqblock-lobj-y): QEMU_CFLAGS+= -fvisibility=hidden -D LIBQB_BUILD
+libqblock.la: LDFLAGS += -rpath $(libdir) -no-undefined \
+ -export-syms $(SRC_PATH)/libqblock/libqblock.syms
+libqblock.la: $(libqblock-lobj-y)
+ $(call LINK,$^)
+
+
+.PHONY: libqblock-clean
+
+libqblock-clean:
+ rm $(LIBQBLOCK_CLEAN_TARGETS) -rf
diff --git a/libqblock/libqblock-error.c b/libqblock/libqblock-error.c
new file mode 100644
index 0000000..e69de29
diff --git a/libqblock/libqblock.c b/libqblock/libqblock.c
new file mode 100644
index 0000000..e69de29