-LIBS += $(call ldflags_for_lib, xcb-icccm, xcb-icccm)
-LIBS += $(call ldflags_for_lib, xcb-xinerama, xcb-xinerama)
-LIBS += $(call ldflags_for_lib, xcb-randr, xcb-randr)
-LIBS += $(call ldflags_for_lib, xcb, xcb)
-LIBS += $(call ldflags_for_lib, xcursor, Xcursor)
-LIBS += $(call ldflags_for_lib, x11, X11)
-LIBS += $(call ldflags_for_lib, yajl, yajl)
-LIBS += $(call ldflags_for_lib, libev, ev)
-
+LIBS += $(call ldflags_for_lib, xcb-icccm,xcb-icccm)
+LIBS += $(call ldflags_for_lib, xcb-xinerama,xcb-xinerama)
+LIBS += $(call ldflags_for_lib, xcb-randr,xcb-randr)
+LIBS += $(call ldflags_for_lib, xcb,xcb)
+LIBS += $(call ldflags_for_lib, xcursor,Xcursor)
+LIBS += $(call ldflags_for_lib, x11,X11)
+LIBS += $(call ldflags_for_lib, yajl,yajl)
+LIBS += $(call ldflags_for_lib, libev,ev)
+LIBS += $(call ldflags_for_lib, libpcre,pcre)
+LIBS += $(call ldflags_for_lib, libstartup-notification-1.0,startup-notification-1)
+
+# Please test if -Wl,--as-needed works on your platform and send me a patch.
+# it is known not to work on Darwin (Mac OS X)
+ifneq (,$(filter Linux GNU GNU/%, $(UNAME)))