# config -include Make.config include mk/Variables.mk # add our flags + libs CFLAGS += -DVERSION='"$(VERSION)"' -DLIB='"$(LIB)"' # build TARGETS := xenlog xenscreen xenwatch xenstore-gtk \ mdns-browser mdns-publish-xendom mdns-publish-vnc \ vnc-client BUILD_XENSTORE := xenlog xenwatch xenstore-gtk \ mdns-publish-xendom mdns-publish-vnc BUILD_GTK := xenwatch xenstore-gtk mdns-browser vnc-client BUILD_AVAHI := mdns-browser mdns-publish-xendom mdns-publish-vnc BUILD_GTK_VNC := vnc-client NEEDS_XENSTORE := xenlog xenscreen xenwatch xenstore-gtk mdns-publish-xendom mdns-publish-vnc NEEDS_LIBVIRT := xenscreen NEEDS_GTK := xenwatch xenstore-gtk mdns-browser vnc-client NEEDS_AVAHI := mdns-browser mdns-publish-xendom mdns-publish-vnc NEEDS_GTK_VNC := xenwatch mdns-browser vnc-client # default target all: build ################################################################# # poor man's autoconf ;-) include mk/Autoconf.mk define make-config LIB := $(LIB) HAVE_GTK := $(call ac_pkg_config,gtk+-x11-2.0) HAVE_AVAHI := $(call ac_pkg_config,avahi-glib) HAVE_LIBVIRT := $(call ac_pkg_config,libvirt) HAVE_GTK_VNC := $(call ac_pkg_config,gtk-vnc-1.0) HAVE_XENSTORE := $(call ac_lib,xs_daemon_open,xenstore) endef # gtk ifeq ($(HAVE_GTK),yes) $(NEEDS_GTK) : CFLAGS += -Wno-strict-prototypes $(NEEDS_GTK) : pkglst += gtk+-x11-2.0 else TARGETS := $(filter-out $(BUILD_GTK), $(TARGETS)) endif # gtk-vnc ifeq ($(HAVE_GTK_VNC),yes) $(NEEDS_GTK_VNC) : pkglst += gtk-vnc-1.0 else TARGETS := $(filter-out $(BUILD_GTK_VNC), $(TARGETS)) endif # avahi ifeq ($(HAVE_AVAHI),yes) $(NEEDS_AVAHI) : pkglst += avahi-client avahi-glib else TARGETS := $(filter-out $(BUILD_AVAHI), $(TARGETS)) endif # xenstore ifeq ($(HAVE_XENSTORE),yes) $(NEEDS_XENSTORE) : LDLIBS += -lxenstore else TARGETS := $(filter-out $(BUILD_XENSTORE), $(TARGETS)) endif # libvirt ifeq ($(HAVE_LIBVIRT),yes) $(NEEDS_LIBVIRT) : pkglst += libvirt libxml-2.0 endif # compile flags CFLAGS += $(call ac_inc_cflags,XENSTORE LIBVIRT AVAHI GTK_VNC) CFLAGS += $(shell test "$(pkglst)" != "" && pkg-config --cflags $(pkglst)) LDLIBS += $(shell test "$(pkglst)" != "" && pkg-config --libs $(pkglst)) # desktop files DESKTOP := $(wildcard $(patsubst %,%.desktop,$(TARGETS))) ######################################################################## # rules build: $(TARGETS) xenscreenrc install: build $(INSTALL_DIR) -d $(DESTDIR)/etc/xen $(bindir) $(appdir) $(INSTALL_DATA) xenscreenrc $(DESTDIR)/etc/xen $(INSTALL_BINARY) $(TARGETS) $(bindir) $(INSTALL_DATA) $(DESKTOP) $(appdir) clean: -rm -f *.o *~ $(depfiles) realclean distclean: clean -rm -f Make.config -rm -f $(TARGETS) *~ xpm/*~ *.bak ############################################# xenlog: xenlog.o xs_tools.o xenscreen: xenscreen.o xs_tools.o apps.o xenwatch: xenwatch.o xd_view.o xd_store.o apps.o apps-x11.o tcp.o vnc.o x11.o xenstore-gtk: xenstore-gtk.o xs_view.o xs_store.o mdns-browser: mdns-browser.o mdns.o vnc.o x11.o apps.o apps-x11.o mdns-publish-xendom: mdns-publish-xendom.o mdns-publish.o mdns-publish-vnc: mdns-publish-vnc.o mdns-publish.o xs_tools.o vnc-client: vnc-client.o vnc.o x11.o xenscreenrc: xenscreen ./xenscreen -b > $@ include mk/Compile.mk include mk/Maintainer.mk -include $(depfiles)