+OBJPATH = $(topdir)/objs
+LIBPATH = $(OBJPATH)/$(BUILD)/lib
+DEBUG_LIBPATH = $(OBJPATH)/debug/lib
+RELEASE_LIBPATH = $(OBJPATH)/release/lib
+ifeq ($(OS),Darwin)
+ STATIC_LIB_SUFFIX = a
+ DYNAMIC_LIB_SUFFIX = dylib
+else ifeq ($(findstring MINGW,$(OS)),MINGW)
+ STATIC_LIB_SUFFIX = a
+ DYNAMIC_LIB_SUFFIX = dll
+else
+ STATIC_LIB_SUFFIX = a
+ DYNAMIC_LIB_SUFFIX = so
+endif
+STATIC_LIB_NAME = $(LIB_NAME).$(STATIC_LIB_SUFFIX)
+DYNAMIC_LIB_NAME = $(LIB_NAME).$(DYNAMIC_LIB_SUFFIX)
+STATIC_LIB = $(LIBPATH)/$(STATIC_LIB_NAME)
+DYNAMIC_LIB = $(LIBPATH)/$(DYNAMIC_LIB_NAME)
+DEBUG_STATIC_LIB = $(DEBUG_LIBPATH)/$(STATIC_LIB_NAME)
+DEBUG_DYNAMIC_LIB = $(DEBUG_LIBPATH)/$(DYNAMIC_LIB_NAME)
+RELEASE_STATIC_LIB = $(RELEASE_LIBPATH)/$(STATIC_LIB_NAME)
+RELEASE_DYNAMIC_LIB = $(RELEASE_LIBPATH)/$(DYNAMIC_LIB_NAME)
+ifeq ($(OS),Darwin)
+ LINKD = $(CC) -dynamiclib -flat_namespace -undefined suppress -install_name $(DYNAMIC_LIB)
+else
+ LINKD = $(CC) -shared
+endif