From 146f41008d751e3faed5ff77c74b39252001806f Mon Sep 17 00:00:00 2001 From: lkn Date: Tue, 23 Jun 2026 20:16:33 +0200 Subject: [PATCH] wayland: implement kaboom animation for dock icon removal Splits icon into PIECE_SIZE tiles, animates them falling with gravity using a wl_event_loop timer and a single scene buffer. --- src/Makefile | 1708 +++++++++++++++++++++++++++++++ src/backend/wayland/wl_kaboom.c | 210 ++++ src/backend/wayland/wl_stubs.c | 2 +- src/backend/wayland/wl_types.h | 1 + 4 files changed, 1920 insertions(+), 1 deletion(-) create mode 100644 src/Makefile create mode 100644 src/backend/wayland/wl_kaboom.c diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..bb2775d --- /dev/null +++ b/src/Makefile @@ -0,0 +1,1708 @@ +# Makefile.in generated by automake 1.18.1 from Makefile.am. +# src/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2025 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) +pkgdatadir = $(datadir)/WindowMaker +pkgincludedir = $(includedir)/WindowMaker +pkglibdir = $(libdir)/WindowMaker +pkglibexecdir = $(libexecdir)/WindowMaker +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-pc-linux-gnu +host_triplet = x86_64-pc-linux-gnu +bin_PROGRAMS = wmaker$(EXEEXT) +am__append_1 = \ + backend/x11/x11_compat.h \ + backend/x11/x11_backend.h \ + backend/x11/x11_backend.c \ + backend/x11/x11_event.h \ + backend/x11/x11_event.c \ + backend/x11/x11_props.h \ + backend/x11/x11_props.c \ + backend/x11/x11_monitor.h \ + backend/x11/x11_monitor.c \ + backend/x11/wmspec.h \ + backend/x11/wmspec.c \ + backend/x11/xdnd.h \ + backend/x11/xdnd.c + +am__append_2 = motif.h motif.c +#am__append_3 = osdep_bsd.c +#am__append_4 = osdep_darwin.c +am__append_5 = osdep_linux.c +#am__append_6 = osdep_stub.c +am__append_7 = \ + backend/wayland/wl_backend.h \ + backend/wayland/wl_backend.c \ + backend/wayland/wl_background.c \ + backend/wayland/wl_context.c \ + backend/wayland/wl_event.c \ + backend/wayland/wl_stacking.c \ + backend/wayland/wl_overlay.c \ + backend/wayland/wl_window.c \ + backend/wayland/wl_props.c \ + backend/wayland/wl_client.c \ + backend/wayland/wl_icccm.c \ + backend/wayland/wl_framebuf.c \ + backend/wayland/wl_atom.c \ + backend/wayland/wl_signalfd.c \ + backend/wayland/wl_xkb.c \ + backend/wayland/wl_badge.c \ + backend/wayland/wl_fakeleader.c \ + backend/wayland/wl_extensions.c \ + backend/wayland/wl_events.c \ + backend/wayland/wl_focus.c \ + backend/wayland/wl_screen.c \ + backend/wayland/wl_shm.c \ + backend/wayland/wl_wings.c \ + backend/wayland/wl_stubs.c \ + backend/wayland/wl_clipboard.c \ + backend/wayland/wl_dnd.c \ + backend/wayland/wl_grabs.c \ + backend/wayland/wl_grabstate.c \ + backend/wayland/wl_dragicon.c \ + backend/wayland/wl_pointer_motion.c \ + backend/wayland/wl_pointer_focus.c \ + backend/wayland/wl_grab.c \ + backend/wayland/wl_keyboard.c \ + backend/wayland/wl_popup.c \ + backend/wayland/wl_text_input.c \ + backend/wayland/wl_xdg_activation.c \ + backend/wayland/wl_output_mgmt.c \ + backend/wayland/wl_output.c \ + backend/wayland/wl_layout_sync.c \ + backend/wayland/wl_xdg.c \ + backend/wayland/wl_dock.c \ + backend/wayland/wl_layer_shell.c \ + backend/wayland/wl_handlers.c \ + backend/wayland/wl_icon.c \ + backend/wayland/wl_kaboom.c \ + backend/wayland/wl_virtual_pointer.c \ + backend/wayland/wl_input_fwd.c + +am__append_8 = misc.c \ + xmodifier.c + +#am__append_9 = misc.hack_nf.c \ +# xmodifier.hack_nf.c + +#am__append_10 = misc.hack_nf.c xmodifier.hack_nf.c +am__append_11 = backend/wayland/wl_xdisplay.c backend/wayland/wl_xwayland.c +am__append_12 = -DUSE_XWAYLAND +am__append_13 = -lXinerama -lX11 -lXRes -lXext +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/ld-version-script.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/windowmaker.m4 \ + $(top_srcdir)/m4/wm_attributes.m4 \ + $(top_srcdir)/m4/wm_cflags_check.m4 \ + $(top_srcdir)/m4/wm_i18n.m4 \ + $(top_srcdir)/m4/wm_imgfmt_check.m4 \ + $(top_srcdir)/m4/wm_libexif.m4 $(top_srcdir)/m4/wm_libmath.m4 \ + $(top_srcdir)/m4/wm_library_constructors.m4 \ + $(top_srcdir)/m4/wm_prog_cc_c11.m4 \ + $(top_srcdir)/m4/wm_xext_check.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = wconfig.h +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am__wmaker_SOURCES_DIST = GNUstep.h WindowMaker.h actions.c actions.h \ + appicon.c appicon.h application.c application.h appmenu.c \ + appmenu.h balloon.c balloon.h client.c client.h colormap.c \ + colormap.h cycling.c cycling.h def_pixmaps.h defaults.c \ + defaults.h dialog.c dialog.h dock.c dockedapp.c dockedapp.h \ + dock.h event.c event.h extend_pixmaps.h framewin.c framewin.h \ + geomview.c geomview.h osdep.h icon.c icon.h keybind.h main.c \ + main.h menu.c menu.h misc.h monitor.c monitor.h moveres.c \ + pixmap.c pixmap.h placement.c placement.h properties.c \ + properties.h resources.c resources.h rootmenu.c rootmenu.h \ + screen.c screen.h session.h session.c shutdown.h shutdown.c \ + switchpanel.c switchpanel.h stacking.c stacking.h startup.c \ + startup.h superfluous.c superfluous.h switchmenu.c \ + switchmenu.h texture.c texture.h usermenu.c usermenu.h \ + xinerama.h xinerama.c xmodifier.h xutil.c xutil.h \ + backend/backend.h backend/backend_types.h backend/wm_backend.c \ + backend/x11/x11_compat.h backend/x11/x11_backend.h \ + backend/x11/x11_backend.c backend/x11/x11_event.h \ + backend/x11/x11_event.c backend/x11/x11_props.h \ + backend/x11/x11_props.c backend/x11/x11_monitor.h \ + backend/x11/x11_monitor.c backend/x11/wmspec.h \ + backend/x11/wmspec.c backend/x11/xdnd.h backend/x11/xdnd.c \ + geom.h geom.c wconfig.h wcore.c wcore.h wdefaults.c \ + wdefaults.h window.c window.h winmenu.c winmenu.h winspector.h \ + winspector.c workspace.c workspace.h wsmap.c wsmap.h motif.h \ + motif.c osdep_bsd.c osdep_darwin.c osdep_linux.c osdep_stub.c \ + backend/wayland/wl_backend.h backend/wayland/wl_backend.c \ + backend/wayland/wl_background.c backend/wayland/wl_context.c \ + backend/wayland/wl_event.c backend/wayland/wl_stacking.c \ + backend/wayland/wl_overlay.c backend/wayland/wl_window.c \ + backend/wayland/wl_props.c backend/wayland/wl_client.c \ + backend/wayland/wl_icccm.c backend/wayland/wl_framebuf.c \ + backend/wayland/wl_atom.c backend/wayland/wl_signalfd.c \ + backend/wayland/wl_xkb.c backend/wayland/wl_badge.c \ + backend/wayland/wl_fakeleader.c \ + backend/wayland/wl_extensions.c backend/wayland/wl_events.c \ + backend/wayland/wl_focus.c backend/wayland/wl_screen.c \ + backend/wayland/wl_shm.c backend/wayland/wl_wings.c \ + backend/wayland/wl_stubs.c backend/wayland/wl_clipboard.c \ + backend/wayland/wl_dnd.c backend/wayland/wl_grabs.c \ + backend/wayland/wl_grabstate.c backend/wayland/wl_dragicon.c \ + backend/wayland/wl_pointer_motion.c \ + backend/wayland/wl_pointer_focus.c backend/wayland/wl_grab.c \ + backend/wayland/wl_keyboard.c backend/wayland/wl_popup.c \ + backend/wayland/wl_text_input.c \ + backend/wayland/wl_xdg_activation.c \ + backend/wayland/wl_output_mgmt.c backend/wayland/wl_output.c \ + backend/wayland/wl_layout_sync.c backend/wayland/wl_xdg.c \ + backend/wayland/wl_dock.c backend/wayland/wl_layer_shell.c \ + backend/wayland/wl_handlers.c backend/wayland/wl_icon.c \ + backend/wayland/wl_kaboom.c \ + backend/wayland/wl_virtual_pointer.c \ + backend/wayland/wl_input_fwd.c misc.c xmodifier.c \ + backend/wayland/wl_xdisplay.c backend/wayland/wl_xwayland.c +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = \ + backend/x11/x11_backend.$(OBJEXT) \ + backend/x11/x11_event.$(OBJEXT) \ + backend/x11/x11_props.$(OBJEXT) \ + backend/x11/x11_monitor.$(OBJEXT) \ + backend/x11/wmspec.$(OBJEXT) \ + backend/x11/xdnd.$(OBJEXT) +am__objects_2 = motif.$(OBJEXT) +#am__objects_3 = osdep_bsd.$(OBJEXT) +#am__objects_4 = osdep_darwin.$(OBJEXT) +am__objects_5 = osdep_linux.$(OBJEXT) +#am__objects_6 = osdep_stub.$(OBJEXT) +am__objects_7 = backend/wayland/wl_backend.$(OBJEXT) \ + backend/wayland/wl_background.$(OBJEXT) \ + backend/wayland/wl_context.$(OBJEXT) \ + backend/wayland/wl_event.$(OBJEXT) \ + backend/wayland/wl_stacking.$(OBJEXT) \ + backend/wayland/wl_overlay.$(OBJEXT) \ + backend/wayland/wl_window.$(OBJEXT) \ + backend/wayland/wl_props.$(OBJEXT) \ + backend/wayland/wl_client.$(OBJEXT) \ + backend/wayland/wl_icccm.$(OBJEXT) \ + backend/wayland/wl_framebuf.$(OBJEXT) \ + backend/wayland/wl_atom.$(OBJEXT) \ + backend/wayland/wl_signalfd.$(OBJEXT) \ + backend/wayland/wl_xkb.$(OBJEXT) \ + backend/wayland/wl_badge.$(OBJEXT) \ + backend/wayland/wl_fakeleader.$(OBJEXT) \ + backend/wayland/wl_extensions.$(OBJEXT) \ + backend/wayland/wl_events.$(OBJEXT) \ + backend/wayland/wl_focus.$(OBJEXT) \ + backend/wayland/wl_screen.$(OBJEXT) \ + backend/wayland/wl_shm.$(OBJEXT) \ + backend/wayland/wl_wings.$(OBJEXT) \ + backend/wayland/wl_stubs.$(OBJEXT) \ + backend/wayland/wl_clipboard.$(OBJEXT) \ + backend/wayland/wl_dnd.$(OBJEXT) \ + backend/wayland/wl_grabs.$(OBJEXT) \ + backend/wayland/wl_grabstate.$(OBJEXT) \ + backend/wayland/wl_dragicon.$(OBJEXT) \ + backend/wayland/wl_pointer_motion.$(OBJEXT) \ + backend/wayland/wl_pointer_focus.$(OBJEXT) \ + backend/wayland/wl_grab.$(OBJEXT) \ + backend/wayland/wl_keyboard.$(OBJEXT) \ + backend/wayland/wl_popup.$(OBJEXT) \ + backend/wayland/wl_text_input.$(OBJEXT) \ + backend/wayland/wl_xdg_activation.$(OBJEXT) \ + backend/wayland/wl_output_mgmt.$(OBJEXT) \ + backend/wayland/wl_output.$(OBJEXT) \ + backend/wayland/wl_layout_sync.$(OBJEXT) \ + backend/wayland/wl_xdg.$(OBJEXT) \ + backend/wayland/wl_dock.$(OBJEXT) \ + backend/wayland/wl_layer_shell.$(OBJEXT) \ + backend/wayland/wl_handlers.$(OBJEXT) \ + backend/wayland/wl_icon.$(OBJEXT) \ + backend/wayland/wl_kaboom.$(OBJEXT) \ + backend/wayland/wl_virtual_pointer.$(OBJEXT) \ + backend/wayland/wl_input_fwd.$(OBJEXT) +am__objects_8 = misc.$(OBJEXT) \ + xmodifier.$(OBJEXT) +am__objects_9 = \ + backend/wayland/wl_xdisplay.$(OBJEXT) \ + backend/wayland/wl_xwayland.$(OBJEXT) +am_wmaker_OBJECTS = actions.$(OBJEXT) appicon.$(OBJEXT) \ + application.$(OBJEXT) appmenu.$(OBJEXT) balloon.$(OBJEXT) \ + client.$(OBJEXT) colormap.$(OBJEXT) cycling.$(OBJEXT) \ + defaults.$(OBJEXT) dialog.$(OBJEXT) dock.$(OBJEXT) \ + dockedapp.$(OBJEXT) event.$(OBJEXT) framewin.$(OBJEXT) \ + geomview.$(OBJEXT) icon.$(OBJEXT) main.$(OBJEXT) \ + menu.$(OBJEXT) monitor.$(OBJEXT) moveres.$(OBJEXT) \ + pixmap.$(OBJEXT) placement.$(OBJEXT) properties.$(OBJEXT) \ + resources.$(OBJEXT) rootmenu.$(OBJEXT) screen.$(OBJEXT) \ + session.$(OBJEXT) shutdown.$(OBJEXT) switchpanel.$(OBJEXT) \ + stacking.$(OBJEXT) startup.$(OBJEXT) superfluous.$(OBJEXT) \ + switchmenu.$(OBJEXT) texture.$(OBJEXT) usermenu.$(OBJEXT) \ + xinerama.$(OBJEXT) xutil.$(OBJEXT) \ + backend/wm_backend.$(OBJEXT) $(am__objects_1) geom.$(OBJEXT) \ + wcore.$(OBJEXT) wdefaults.$(OBJEXT) window.$(OBJEXT) \ + winmenu.$(OBJEXT) winspector.$(OBJEXT) workspace.$(OBJEXT) \ + wsmap.$(OBJEXT) $(am__objects_2) $(am__objects_3) \ + $(am__objects_4) $(am__objects_5) $(am__objects_6) \ + $(am__objects_7) $(am__objects_8) $(am__objects_9) +#am__objects_10 = misc.hack_nf.$(OBJEXT) \ +# xmodifier.hack_nf.$(OBJEXT) +nodist_wmaker_OBJECTS = wmaker-popup-v1-protocol.$(OBJEXT) \ + $(am__objects_10) +wmaker_OBJECTS = $(am_wmaker_OBJECTS) $(nodist_wmaker_OBJECTS) +am__DEPENDENCIES_1 = +wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ + $(top_builddir)/WINGs/libWUtil.la \ + $(top_builddir)/wrlib/libwraster.la $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/actions.Po ./$(DEPDIR)/appicon.Po \ + ./$(DEPDIR)/application.Po ./$(DEPDIR)/appmenu.Po \ + ./$(DEPDIR)/balloon.Po ./$(DEPDIR)/client.Po \ + ./$(DEPDIR)/colormap.Po ./$(DEPDIR)/cycling.Po \ + ./$(DEPDIR)/defaults.Po ./$(DEPDIR)/dialog.Po \ + ./$(DEPDIR)/dock.Po ./$(DEPDIR)/dockedapp.Po \ + ./$(DEPDIR)/event.Po ./$(DEPDIR)/framewin.Po \ + ./$(DEPDIR)/geom.Po ./$(DEPDIR)/geomview.Po \ + ./$(DEPDIR)/icon.Po ./$(DEPDIR)/main.Po ./$(DEPDIR)/menu.Po \ + ./$(DEPDIR)/misc.Po ./$(DEPDIR)/misc.hack_nf.Po \ + ./$(DEPDIR)/monitor.Po ./$(DEPDIR)/motif.Po \ + ./$(DEPDIR)/moveres.Po ./$(DEPDIR)/osdep_bsd.Po \ + ./$(DEPDIR)/osdep_darwin.Po ./$(DEPDIR)/osdep_linux.Po \ + ./$(DEPDIR)/osdep_stub.Po ./$(DEPDIR)/pixmap.Po \ + ./$(DEPDIR)/placement.Po ./$(DEPDIR)/properties.Po \ + ./$(DEPDIR)/resources.Po ./$(DEPDIR)/rootmenu.Po \ + ./$(DEPDIR)/screen.Po ./$(DEPDIR)/session.Po \ + ./$(DEPDIR)/shutdown.Po ./$(DEPDIR)/stacking.Po \ + ./$(DEPDIR)/startup.Po ./$(DEPDIR)/superfluous.Po \ + ./$(DEPDIR)/switchmenu.Po ./$(DEPDIR)/switchpanel.Po \ + ./$(DEPDIR)/texture.Po ./$(DEPDIR)/usermenu.Po \ + ./$(DEPDIR)/wcore.Po ./$(DEPDIR)/wdefaults.Po \ + ./$(DEPDIR)/window.Po ./$(DEPDIR)/winmenu.Po \ + ./$(DEPDIR)/winspector.Po \ + ./$(DEPDIR)/wmaker-popup-v1-protocol.Po \ + ./$(DEPDIR)/workspace.Po ./$(DEPDIR)/wsmap.Po \ + ./$(DEPDIR)/xinerama.Po ./$(DEPDIR)/xmodifier.Po \ + ./$(DEPDIR)/xmodifier.hack_nf.Po ./$(DEPDIR)/xutil.Po \ + backend/$(DEPDIR)/wm_backend.Po \ + backend/wayland/$(DEPDIR)/wl_atom.Po \ + backend/wayland/$(DEPDIR)/wl_backend.Po \ + backend/wayland/$(DEPDIR)/wl_background.Po \ + backend/wayland/$(DEPDIR)/wl_badge.Po \ + backend/wayland/$(DEPDIR)/wl_client.Po \ + backend/wayland/$(DEPDIR)/wl_clipboard.Po \ + backend/wayland/$(DEPDIR)/wl_context.Po \ + backend/wayland/$(DEPDIR)/wl_dnd.Po \ + backend/wayland/$(DEPDIR)/wl_dock.Po \ + backend/wayland/$(DEPDIR)/wl_dragicon.Po \ + backend/wayland/$(DEPDIR)/wl_event.Po \ + backend/wayland/$(DEPDIR)/wl_events.Po \ + backend/wayland/$(DEPDIR)/wl_extensions.Po \ + backend/wayland/$(DEPDIR)/wl_fakeleader.Po \ + backend/wayland/$(DEPDIR)/wl_focus.Po \ + backend/wayland/$(DEPDIR)/wl_framebuf.Po \ + backend/wayland/$(DEPDIR)/wl_grab.Po \ + backend/wayland/$(DEPDIR)/wl_grabs.Po \ + backend/wayland/$(DEPDIR)/wl_grabstate.Po \ + backend/wayland/$(DEPDIR)/wl_handlers.Po \ + backend/wayland/$(DEPDIR)/wl_icccm.Po \ + backend/wayland/$(DEPDIR)/wl_icon.Po \ + backend/wayland/$(DEPDIR)/wl_input_fwd.Po \ + backend/wayland/$(DEPDIR)/wl_keyboard.Po \ + backend/wayland/$(DEPDIR)/wl_layer_shell.Po \ + backend/wayland/$(DEPDIR)/wl_layout_sync.Po \ + backend/wayland/$(DEPDIR)/wl_output.Po \ + backend/wayland/$(DEPDIR)/wl_output_mgmt.Po \ + backend/wayland/$(DEPDIR)/wl_overlay.Po \ + backend/wayland/$(DEPDIR)/wl_pointer_focus.Po \ + backend/wayland/$(DEPDIR)/wl_pointer_motion.Po \ + backend/wayland/$(DEPDIR)/wl_popup.Po \ + backend/wayland/$(DEPDIR)/wl_props.Po \ + backend/wayland/$(DEPDIR)/wl_screen.Po \ + backend/wayland/$(DEPDIR)/wl_shm.Po \ + backend/wayland/$(DEPDIR)/wl_signalfd.Po \ + backend/wayland/$(DEPDIR)/wl_stacking.Po \ + backend/wayland/$(DEPDIR)/wl_stubs.Po \ + backend/wayland/$(DEPDIR)/wl_text_input.Po \ + backend/wayland/$(DEPDIR)/wl_virtual_pointer.Po \ + backend/wayland/$(DEPDIR)/wl_window.Po \ + backend/wayland/$(DEPDIR)/wl_wings.Po \ + backend/wayland/$(DEPDIR)/wl_xdg.Po \ + backend/wayland/$(DEPDIR)/wl_xdg_activation.Po \ + backend/wayland/$(DEPDIR)/wl_xdisplay.Po \ + backend/wayland/$(DEPDIR)/wl_xkb.Po \ + backend/wayland/$(DEPDIR)/wl_xwayland.Po \ + backend/x11/$(DEPDIR)/wmspec.Po \ + backend/x11/$(DEPDIR)/x11_backend.Po \ + backend/x11/$(DEPDIR)/x11_event.Po \ + backend/x11/$(DEPDIR)/x11_monitor.Po \ + backend/x11/$(DEPDIR)/x11_props.Po \ + backend/x11/$(DEPDIR)/xdnd.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(wmaker_SOURCES) $(nodist_wmaker_SOURCES) +DIST_SOURCES = $(am__wmaker_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/wconfig.h.in \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} '/home/lkn/src/wmaker/missing' aclocal-1.18 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AR = ar +AUTOCONF = ${SHELL} '/home/lkn/src/wmaker/missing' autoconf +AUTOHEADER = ${SHELL} '/home/lkn/src/wmaker/missing' autoheader +AUTOMAKE = ${SHELL} '/home/lkn/src/wmaker/missing' automake-1.18 +AWK = gawk +CC = gcc +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 -Wall -Wextra -Wno-sign-compare -Werror=trampolines -Wno-deprecated -Wno-deprecated-declarations +CPP = gcc -E +CPPFLAGS = -DNDEBUG -D_XOPEN_SOURCE=700 -D_GNU_SOURCE +CSCOPE = cscope +CTAGS = ctags +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /usr/bin/grep -E +ETAGS = etags +EXEEXT = +FCLIBS = -lfontconfig +FGREP = /usr/bin/grep -F +FILECMD = file +GFXLIBS = -lXpm -lpng -ljpeg -lgif -ltiff -lwebp +GREP = /usr/bin/grep +GROFF = +HEADER_SEARCH_PATH = -I${includedir} +ICONEXT = tiff +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +INTLIBS = +LD = /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64 +LDFLAGS = +LIBBSD = +LIBEXIF = +LIBM = -lm +LIBOBJS = +LIBRARY_SEARCH_PATH = -L${libdir} +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIBXINERAMA = -lXinerama +LIBXMU = -lXmu +LIBXRANDR = +LINGUAS = +LIPO = +LN_S = ln -s +LTLIBOBJS = +LT_SYS_LIBRARY_PATH = +MAGICKFLAGS = +MAGICKLIBS = +MAKEINFO = ${SHELL} '/home/lkn/src/wmaker/missing' makeinfo +MANIFEST_TOOL = : +MANLANGDIRS = +MKDIR_P = /usr/bin/mkdir -p +MSGFMT = +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OTOOL = +OTOOL64 = +PACKAGE = WindowMaker +PACKAGE_BUGREPORT = wmaker-dev@googlegroups.com +PACKAGE_NAME = WindowMaker +PACKAGE_STRING = WindowMaker 0.96.0 +PACKAGE_TARNAME = WindowMaker +PACKAGE_URL = http://www.windowmaker.org/ +PACKAGE_VERSION = 0.96.0 +PANGO_CFLAGS = -I/usr/include/pango-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include +PANGO_LIBS = -lpangoxft-1.0 -lpangoft2-1.0 -lpango-1.0 -lXft -lfontconfig -lharfbuzz -lfreetype -lgobject-2.0 -lglib-2.0 +PATH_SEPARATOR = : +PIXMAN_CFLAGS = -I/usr/include/pixman-1 +PIXMAN_LIBS = -lpixman-1 +PKG_CONFIG = /usr/bin/pkg-config +PKG_CONFIG_LIBDIR = +PKG_CONFIG_PATH = +PTHREAD_CC = gcc +PTHREAD_CFLAGS = +PTHREAD_LIBS = +RANLIB = ranlib +SED = /usr/bin/sed +SET_MAKE = +SHELL = /bin/sh +STRIP = strip +UTILMOFILES = +VERSION = 0.96.0 +WAYLAND_CLIENT_CFLAGS = -I/usr/lib64/libffi/include +WAYLAND_CLIENT_LIBS = -lwayland-client -lm -lxkbcommon +WAYLAND_PROTOCOLS_DIR = //usr/share/wayland-protocols +WAYLAND_SCANNER = /usr/bin/wayland-scanner +WEB_REPO_ROOT = +WINGSMOFILES = +WINGS_PANGO_LIBS_NO_XFT = -lpangoft2-1.0 -lpango-1.0 -lfontconfig -lharfbuzz -lfreetype -lgobject-2.0 -lglib-2.0 +WINGS_VERSION = 5:0:2 +WLROOTS_CFLAGS = -I/usr/include/wlroots-0.19 -I/usr/include/libdrm -I/usr/include/elogind -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -DWLR_USE_UNSTABLE +WLROOTS_LIBS = -lwlroots-0.19 -lwayland-server -lm -lxkbcommon -lpixman-1 +WMAKERMOFILES = +WPREFSMOFILES = +WRASTERMOFILES = +WRASTER_GFXLIBS_NO_XPM = -lpng -ljpeg -lgif -ltiff -lwebp +WRASTER_VERSION = 7:0:1 +WUTIL_VERSION = 5:0:0 +XCFLAGS = +XFTCONFIG = +XFT_CFLAGS = -I/usr/include/freetype2 +XFT_LIBS = -lXft +XGETTEXT = xgettext +XLFLAGS = +XLIBS = -lX11 -lXRes -lXext +XMKMF = +X_CFLAGS = +X_EXTRA_LIBS = +X_LIBRARY_PATH = +X_LIBS = +X_PRE_LIBS = -lSM -lICE +abs_builddir = /home/lkn/src/wmaker/src +abs_srcdir = /home/lkn/src/wmaker/src +abs_top_builddir = /home/lkn/src/wmaker +abs_top_srcdir = /home/lkn/src/wmaker +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_DUMPBIN = +am__include = include +am__leading_dot = . +am__quote = +am__rm_f_notfound = +am__tar = tar --format=ustar -chf - "$$tardir" +am__untar = tar -xf - +am__xargs_n = xargs -n +ax_pthread_config = +bindir = ${exec_prefix}/bin +build = x86_64-pc-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = pc +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-pc-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = pc +htmldir = ${docdir} +inc_search_path = -I${includedir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/lkn/src/wmaker/install-sh +lcov_output_directory = +lib_search_path = -L${libdir} +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +pixmapdir = ${datadir}/pixmaps +pkgconfdir = ${sysconfdir}/${PACKAGE_TARNAME} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +runstatedir = ${localstatedir}/run +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. +wprefs_bindir = ${exec_prefix}/bin +wprefs_datadir = ${datarootdir}/WPrefs +AUTOMAKE_OPTIONS = subdir-objects + +# Wayland protocol sources from wayland-protocols package +WL_PROTO_DIR = $(WAYLAND_PROTOCOLS_DIR) +# wlroots protocol sources - check for packaged wlr-protocols first, fallback to wlroots source tree +WLR_PROTO_DIR = $(shell pkg-config --variable=pkgdatadir wlr-protocols 2>/dev/null || echo "/home/lkn/src/wlroots/protocol") +BUILT_SOURCES = wconfig.h \ + wmaker-popup-v1-server-protocol.h \ + wmaker-popup-v1-protocol.c \ + protocols/pointer-constraints-unstable-v1-protocol.h \ + protocols/wlr-output-power-management-unstable-v1-protocol.h \ + protocols/wlr-layer-shell-unstable-v1-protocol.h \ + protocols/xdg-shell-protocol.h \ + protocols/xdg-shell-protocol.c + +EXTRA_DIST = +nodist_wmaker_SOURCES = wmaker-popup-v1-protocol.c \ + wmaker-popup-v1-server-protocol.h $(am__append_9) +CLEANFILES = wmaker-popup-v1-server-protocol.h \ + wmaker-popup-v1-protocol.c \ + protocols/pointer-constraints-unstable-v1-protocol.h \ + protocols/wlr-output-power-management-unstable-v1-protocol.h \ + protocols/wlr-layer-shell-unstable-v1-protocol.h \ + protocols/xdg-shell-protocol.h protocols/xdg-shell-protocol.c \ + $(am__append_10) +wmaker_SOURCES = GNUstep.h WindowMaker.h actions.c actions.h appicon.c \ + appicon.h application.c application.h appmenu.c appmenu.h \ + balloon.c balloon.h client.c client.h colormap.c colormap.h \ + cycling.c cycling.h def_pixmaps.h defaults.c defaults.h \ + dialog.c dialog.h dock.c dockedapp.c dockedapp.h dock.h \ + event.c event.h extend_pixmaps.h framewin.c framewin.h \ + geomview.c geomview.h osdep.h icon.c icon.h keybind.h main.c \ + main.h menu.c menu.h misc.h monitor.c monitor.h moveres.c \ + pixmap.c pixmap.h placement.c placement.h properties.c \ + properties.h resources.c resources.h rootmenu.c rootmenu.h \ + screen.c screen.h session.h session.c shutdown.h shutdown.c \ + switchpanel.c switchpanel.h stacking.c stacking.h startup.c \ + startup.h superfluous.c superfluous.h switchmenu.c \ + switchmenu.h texture.c texture.h usermenu.c usermenu.h \ + xinerama.h xinerama.c xmodifier.h xutil.c xutil.h \ + backend/backend.h backend/backend_types.h backend/wm_backend.c \ + $(am__append_1) geom.h geom.c wconfig.h wcore.c wcore.h \ + wdefaults.c wdefaults.h window.c window.h winmenu.c winmenu.h \ + winspector.h winspector.c workspace.c workspace.h wsmap.c \ + wsmap.h $(am__append_2) $(am__append_3) $(am__append_4) \ + $(am__append_5) $(am__append_6) $(am__append_7) \ + $(am__append_8) $(am__append_11) +AM_CFLAGS = -I/usr/include/pango-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/wlroots-0.19 -I/usr/include/libdrm -I/usr/include/elogind -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -DWLR_USE_UNSTABLE +AM_CPPFLAGS = $(DFLAGS) -I$(top_builddir)/wrlib -I$(top_srcdir)/WINGs \ + -I$(top_builddir)/WINGs -I$(srcdir)/backend/wayland \ + -I${includedir} $(am__append_12) +wmaker_LDADD = $(top_builddir)/WINGs/libWINGs.la \ + $(top_builddir)/WINGs/libWUtil.la \ + $(top_builddir)/wrlib/libwraster.la -lwlroots-0.19 -lwayland-server -lm -lxkbcommon -lpixman-1 -lm \ + $(am__append_13) + +###################################################################### + +# Create a 'silent rule' for our make check the same way automake does +AM_V_CHKOPTS = $(am__v_CHKOPTS_$(V)) +am__v_CHKOPTS_ = $(am__v_CHKOPTS_$(AM_DEFAULT_VERBOSITY)) +am__v_CHKOPTS_0 = @echo " CHK $@" ; +am__v_CHKOPTS_1 = + +# Policy files that have been cleaned of direct X11 includes. +# This list grows as each file is ported to the WMBackend vtable. +# Add new files here once all direct X11 function calls have been moved +# behind wm_backend->... dispatch. +WM_POLICY_CLEAN_FILES = \ + $(srcdir)/xinerama.c \ + $(srcdir)/stacking.c \ + $(srcdir)/placement.c \ + $(srcdir)/cycling.c \ + $(srcdir)/workspace.c \ + $(srcdir)/actions.c \ + $(srcdir)/moveres.c \ + $(srcdir)/window.c \ + $(srcdir)/screen.c \ + $(srcdir)/event.c \ + $(srcdir)/colormap.c \ + $(srcdir)/switchmenu.c \ + $(srcdir)/superfluous.c \ + $(srcdir)/balloon.c \ + $(srcdir)/wsmap.c \ + $(srcdir)/switchpanel.c \ + $(srcdir)/properties.c \ + $(srcdir)/backend/x11/wmspec.c \ + $(srcdir)/application.c \ + $(srcdir)/appicon.c \ + $(srcdir)/dock.c \ + $(srcdir)/dockedapp.c \ + $(srcdir)/icon.c \ + $(srcdir)/motif.c \ + $(srcdir)/pixmap.c \ + $(srcdir)/resources.c \ + $(srcdir)/session.c \ + $(srcdir)/shutdown.c \ + $(srcdir)/texture.c \ + $(srcdir)/winspector.c \ + $(srcdir)/backend/x11/xdnd.c \ + $(srcdir)/rootmenu.c \ + $(srcdir)/xutil.c \ + $(srcdir)/misc.c \ + $(srcdir)/winmenu.c \ + $(srcdir)/appmenu.c \ + $(srcdir)/monitor.c \ + $(srcdir)/usermenu.c \ + $(srcdir)/main.c \ + $(srcdir)/defaults.c \ + $(srcdir)/dialog.c \ + $(srcdir)/menu.c \ + $(srcdir)/wdefaults.c \ + $(srcdir)/xmodifier.c \ + $(srcdir)/framewin.c \ + $(srcdir)/client.c \ + $(srcdir)/startup.c + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +wconfig.h: $(top_builddir)/config.status $(srcdir)/wconfig.h.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files + +clean-binPROGRAMS: + $(am__rm_f) $(bin_PROGRAMS) + test -z "$(EXEEXT)" || $(am__rm_f) $(bin_PROGRAMS:$(EXEEXT)=) +backend/$(am__dirstamp): + @$(MKDIR_P) backend + @: >>backend/$(am__dirstamp) +backend/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) backend/$(DEPDIR) + @: >>backend/$(DEPDIR)/$(am__dirstamp) +backend/wm_backend.$(OBJEXT): backend/$(am__dirstamp) \ + backend/$(DEPDIR)/$(am__dirstamp) +backend/x11/$(am__dirstamp): + @$(MKDIR_P) backend/x11 + @: >>backend/x11/$(am__dirstamp) +backend/x11/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) backend/x11/$(DEPDIR) + @: >>backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/x11/x11_backend.$(OBJEXT): backend/x11/$(am__dirstamp) \ + backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/x11/x11_event.$(OBJEXT): backend/x11/$(am__dirstamp) \ + backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/x11/x11_props.$(OBJEXT): backend/x11/$(am__dirstamp) \ + backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/x11/x11_monitor.$(OBJEXT): backend/x11/$(am__dirstamp) \ + backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/x11/wmspec.$(OBJEXT): backend/x11/$(am__dirstamp) \ + backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/x11/xdnd.$(OBJEXT): backend/x11/$(am__dirstamp) \ + backend/x11/$(DEPDIR)/$(am__dirstamp) +backend/wayland/$(am__dirstamp): + @$(MKDIR_P) backend/wayland + @: >>backend/wayland/$(am__dirstamp) +backend/wayland/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) backend/wayland/$(DEPDIR) + @: >>backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_backend.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_background.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_context.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_event.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_stacking.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_overlay.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_window.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_props.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_client.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_icccm.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_framebuf.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_atom.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_signalfd.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_xkb.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_badge.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_fakeleader.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_extensions.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_events.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_focus.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_screen.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_shm.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_wings.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_stubs.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_clipboard.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_dnd.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_grabs.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_grabstate.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_dragicon.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_pointer_motion.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_pointer_focus.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_grab.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_keyboard.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_popup.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_text_input.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_xdg_activation.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_output_mgmt.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_output.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_layout_sync.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_xdg.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_dock.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_layer_shell.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_handlers.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_icon.$(OBJEXT): backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_virtual_pointer.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_input_fwd.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_xdisplay.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) +backend/wayland/wl_xwayland.$(OBJEXT): \ + backend/wayland/$(am__dirstamp) \ + backend/wayland/$(DEPDIR)/$(am__dirstamp) + +wmaker$(EXEEXT): $(wmaker_OBJECTS) $(wmaker_DEPENDENCIES) $(EXTRA_wmaker_DEPENDENCIES) + @rm -f wmaker$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(wmaker_OBJECTS) $(wmaker_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f backend/*.$(OBJEXT) + -rm -f backend/wayland/*.$(OBJEXT) + -rm -f backend/x11/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/actions.Po # am--include-marker +include ./$(DEPDIR)/appicon.Po # am--include-marker +include ./$(DEPDIR)/application.Po # am--include-marker +include ./$(DEPDIR)/appmenu.Po # am--include-marker +include ./$(DEPDIR)/balloon.Po # am--include-marker +include ./$(DEPDIR)/client.Po # am--include-marker +include ./$(DEPDIR)/colormap.Po # am--include-marker +include ./$(DEPDIR)/cycling.Po # am--include-marker +include ./$(DEPDIR)/defaults.Po # am--include-marker +include ./$(DEPDIR)/dialog.Po # am--include-marker +include ./$(DEPDIR)/dock.Po # am--include-marker +include ./$(DEPDIR)/dockedapp.Po # am--include-marker +include ./$(DEPDIR)/event.Po # am--include-marker +include ./$(DEPDIR)/framewin.Po # am--include-marker +include ./$(DEPDIR)/geom.Po # am--include-marker +include ./$(DEPDIR)/geomview.Po # am--include-marker +include ./$(DEPDIR)/icon.Po # am--include-marker +include ./$(DEPDIR)/main.Po # am--include-marker +include ./$(DEPDIR)/menu.Po # am--include-marker +include ./$(DEPDIR)/misc.Po # am--include-marker +include ./$(DEPDIR)/misc.hack_nf.Po # am--include-marker +include ./$(DEPDIR)/monitor.Po # am--include-marker +include ./$(DEPDIR)/motif.Po # am--include-marker +include ./$(DEPDIR)/moveres.Po # am--include-marker +include ./$(DEPDIR)/osdep_bsd.Po # am--include-marker +include ./$(DEPDIR)/osdep_darwin.Po # am--include-marker +include ./$(DEPDIR)/osdep_linux.Po # am--include-marker +include ./$(DEPDIR)/osdep_stub.Po # am--include-marker +include ./$(DEPDIR)/pixmap.Po # am--include-marker +include ./$(DEPDIR)/placement.Po # am--include-marker +include ./$(DEPDIR)/properties.Po # am--include-marker +include ./$(DEPDIR)/resources.Po # am--include-marker +include ./$(DEPDIR)/rootmenu.Po # am--include-marker +include ./$(DEPDIR)/screen.Po # am--include-marker +include ./$(DEPDIR)/session.Po # am--include-marker +include ./$(DEPDIR)/shutdown.Po # am--include-marker +include ./$(DEPDIR)/stacking.Po # am--include-marker +include ./$(DEPDIR)/startup.Po # am--include-marker +include ./$(DEPDIR)/superfluous.Po # am--include-marker +include ./$(DEPDIR)/switchmenu.Po # am--include-marker +include ./$(DEPDIR)/switchpanel.Po # am--include-marker +include ./$(DEPDIR)/texture.Po # am--include-marker +include ./$(DEPDIR)/usermenu.Po # am--include-marker +include ./$(DEPDIR)/wcore.Po # am--include-marker +include ./$(DEPDIR)/wdefaults.Po # am--include-marker +include ./$(DEPDIR)/window.Po # am--include-marker +include ./$(DEPDIR)/winmenu.Po # am--include-marker +include ./$(DEPDIR)/winspector.Po # am--include-marker +include ./$(DEPDIR)/wmaker-popup-v1-protocol.Po # am--include-marker +include ./$(DEPDIR)/workspace.Po # am--include-marker +include ./$(DEPDIR)/wsmap.Po # am--include-marker +include ./$(DEPDIR)/xinerama.Po # am--include-marker +include ./$(DEPDIR)/xmodifier.Po # am--include-marker +include ./$(DEPDIR)/xmodifier.hack_nf.Po # am--include-marker +include ./$(DEPDIR)/xutil.Po # am--include-marker +include backend/$(DEPDIR)/wm_backend.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_atom.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_backend.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_background.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_badge.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_client.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_clipboard.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_context.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_dnd.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_dock.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_dragicon.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_event.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_events.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_extensions.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_fakeleader.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_focus.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_framebuf.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_grab.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_grabs.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_grabstate.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_handlers.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_icccm.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_icon.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_input_fwd.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_keyboard.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_layer_shell.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_layout_sync.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_output.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_output_mgmt.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_overlay.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_pointer_focus.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_pointer_motion.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_popup.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_props.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_screen.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_shm.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_signalfd.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_stacking.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_stubs.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_text_input.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_virtual_pointer.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_window.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_wings.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_xdg.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_xdg_activation.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_xdisplay.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_xkb.Po # am--include-marker +include backend/wayland/$(DEPDIR)/wl_xwayland.Po # am--include-marker +include backend/x11/$(DEPDIR)/wmspec.Po # am--include-marker +include backend/x11/$(DEPDIR)/x11_backend.Po # am--include-marker +include backend/x11/$(DEPDIR)/x11_event.Po # am--include-marker +include backend/x11/$(DEPDIR)/x11_monitor.Po # am--include-marker +include backend/x11/$(DEPDIR)/x11_props.Po # am--include-marker +include backend/x11/$(DEPDIR)/xdnd.Po # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @: >>$@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ + $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Plo +# $(AM_V_CC)source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -$(am__rm_f) $(CLEANFILES) + +distclean-generic: + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) backend/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) backend/$(am__dirstamp) + -$(am__rm_f) backend/wayland/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) backend/wayland/$(am__dirstamp) + -$(am__rm_f) backend/x11/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) backend/x11/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -$(am__rm_f) $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/actions.Po + -rm -f ./$(DEPDIR)/appicon.Po + -rm -f ./$(DEPDIR)/application.Po + -rm -f ./$(DEPDIR)/appmenu.Po + -rm -f ./$(DEPDIR)/balloon.Po + -rm -f ./$(DEPDIR)/client.Po + -rm -f ./$(DEPDIR)/colormap.Po + -rm -f ./$(DEPDIR)/cycling.Po + -rm -f ./$(DEPDIR)/defaults.Po + -rm -f ./$(DEPDIR)/dialog.Po + -rm -f ./$(DEPDIR)/dock.Po + -rm -f ./$(DEPDIR)/dockedapp.Po + -rm -f ./$(DEPDIR)/event.Po + -rm -f ./$(DEPDIR)/framewin.Po + -rm -f ./$(DEPDIR)/geom.Po + -rm -f ./$(DEPDIR)/geomview.Po + -rm -f ./$(DEPDIR)/icon.Po + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/menu.Po + -rm -f ./$(DEPDIR)/misc.Po + -rm -f ./$(DEPDIR)/misc.hack_nf.Po + -rm -f ./$(DEPDIR)/monitor.Po + -rm -f ./$(DEPDIR)/motif.Po + -rm -f ./$(DEPDIR)/moveres.Po + -rm -f ./$(DEPDIR)/osdep_bsd.Po + -rm -f ./$(DEPDIR)/osdep_darwin.Po + -rm -f ./$(DEPDIR)/osdep_linux.Po + -rm -f ./$(DEPDIR)/osdep_stub.Po + -rm -f ./$(DEPDIR)/pixmap.Po + -rm -f ./$(DEPDIR)/placement.Po + -rm -f ./$(DEPDIR)/properties.Po + -rm -f ./$(DEPDIR)/resources.Po + -rm -f ./$(DEPDIR)/rootmenu.Po + -rm -f ./$(DEPDIR)/screen.Po + -rm -f ./$(DEPDIR)/session.Po + -rm -f ./$(DEPDIR)/shutdown.Po + -rm -f ./$(DEPDIR)/stacking.Po + -rm -f ./$(DEPDIR)/startup.Po + -rm -f ./$(DEPDIR)/superfluous.Po + -rm -f ./$(DEPDIR)/switchmenu.Po + -rm -f ./$(DEPDIR)/switchpanel.Po + -rm -f ./$(DEPDIR)/texture.Po + -rm -f ./$(DEPDIR)/usermenu.Po + -rm -f ./$(DEPDIR)/wcore.Po + -rm -f ./$(DEPDIR)/wdefaults.Po + -rm -f ./$(DEPDIR)/window.Po + -rm -f ./$(DEPDIR)/winmenu.Po + -rm -f ./$(DEPDIR)/winspector.Po + -rm -f ./$(DEPDIR)/wmaker-popup-v1-protocol.Po + -rm -f ./$(DEPDIR)/workspace.Po + -rm -f ./$(DEPDIR)/wsmap.Po + -rm -f ./$(DEPDIR)/xinerama.Po + -rm -f ./$(DEPDIR)/xmodifier.Po + -rm -f ./$(DEPDIR)/xmodifier.hack_nf.Po + -rm -f ./$(DEPDIR)/xutil.Po + -rm -f backend/$(DEPDIR)/wm_backend.Po + -rm -f backend/wayland/$(DEPDIR)/wl_atom.Po + -rm -f backend/wayland/$(DEPDIR)/wl_backend.Po + -rm -f backend/wayland/$(DEPDIR)/wl_background.Po + -rm -f backend/wayland/$(DEPDIR)/wl_badge.Po + -rm -f backend/wayland/$(DEPDIR)/wl_client.Po + -rm -f backend/wayland/$(DEPDIR)/wl_clipboard.Po + -rm -f backend/wayland/$(DEPDIR)/wl_context.Po + -rm -f backend/wayland/$(DEPDIR)/wl_dnd.Po + -rm -f backend/wayland/$(DEPDIR)/wl_dock.Po + -rm -f backend/wayland/$(DEPDIR)/wl_dragicon.Po + -rm -f backend/wayland/$(DEPDIR)/wl_event.Po + -rm -f backend/wayland/$(DEPDIR)/wl_events.Po + -rm -f backend/wayland/$(DEPDIR)/wl_extensions.Po + -rm -f backend/wayland/$(DEPDIR)/wl_fakeleader.Po + -rm -f backend/wayland/$(DEPDIR)/wl_focus.Po + -rm -f backend/wayland/$(DEPDIR)/wl_framebuf.Po + -rm -f backend/wayland/$(DEPDIR)/wl_grab.Po + -rm -f backend/wayland/$(DEPDIR)/wl_grabs.Po + -rm -f backend/wayland/$(DEPDIR)/wl_grabstate.Po + -rm -f backend/wayland/$(DEPDIR)/wl_handlers.Po + -rm -f backend/wayland/$(DEPDIR)/wl_icccm.Po + -rm -f backend/wayland/$(DEPDIR)/wl_icon.Po + -rm -f backend/wayland/$(DEPDIR)/wl_input_fwd.Po + -rm -f backend/wayland/$(DEPDIR)/wl_keyboard.Po + -rm -f backend/wayland/$(DEPDIR)/wl_layer_shell.Po + -rm -f backend/wayland/$(DEPDIR)/wl_layout_sync.Po + -rm -f backend/wayland/$(DEPDIR)/wl_output.Po + -rm -f backend/wayland/$(DEPDIR)/wl_output_mgmt.Po + -rm -f backend/wayland/$(DEPDIR)/wl_overlay.Po + -rm -f backend/wayland/$(DEPDIR)/wl_pointer_focus.Po + -rm -f backend/wayland/$(DEPDIR)/wl_pointer_motion.Po + -rm -f backend/wayland/$(DEPDIR)/wl_popup.Po + -rm -f backend/wayland/$(DEPDIR)/wl_props.Po + -rm -f backend/wayland/$(DEPDIR)/wl_screen.Po + -rm -f backend/wayland/$(DEPDIR)/wl_shm.Po + -rm -f backend/wayland/$(DEPDIR)/wl_signalfd.Po + -rm -f backend/wayland/$(DEPDIR)/wl_stacking.Po + -rm -f backend/wayland/$(DEPDIR)/wl_stubs.Po + -rm -f backend/wayland/$(DEPDIR)/wl_text_input.Po + -rm -f backend/wayland/$(DEPDIR)/wl_virtual_pointer.Po + -rm -f backend/wayland/$(DEPDIR)/wl_window.Po + -rm -f backend/wayland/$(DEPDIR)/wl_wings.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xdg.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xdg_activation.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xdisplay.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xkb.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xwayland.Po + -rm -f backend/x11/$(DEPDIR)/wmspec.Po + -rm -f backend/x11/$(DEPDIR)/x11_backend.Po + -rm -f backend/x11/$(DEPDIR)/x11_event.Po + -rm -f backend/x11/$(DEPDIR)/x11_monitor.Po + -rm -f backend/x11/$(DEPDIR)/x11_props.Po + -rm -f backend/x11/$(DEPDIR)/xdnd.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/actions.Po + -rm -f ./$(DEPDIR)/appicon.Po + -rm -f ./$(DEPDIR)/application.Po + -rm -f ./$(DEPDIR)/appmenu.Po + -rm -f ./$(DEPDIR)/balloon.Po + -rm -f ./$(DEPDIR)/client.Po + -rm -f ./$(DEPDIR)/colormap.Po + -rm -f ./$(DEPDIR)/cycling.Po + -rm -f ./$(DEPDIR)/defaults.Po + -rm -f ./$(DEPDIR)/dialog.Po + -rm -f ./$(DEPDIR)/dock.Po + -rm -f ./$(DEPDIR)/dockedapp.Po + -rm -f ./$(DEPDIR)/event.Po + -rm -f ./$(DEPDIR)/framewin.Po + -rm -f ./$(DEPDIR)/geom.Po + -rm -f ./$(DEPDIR)/geomview.Po + -rm -f ./$(DEPDIR)/icon.Po + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/menu.Po + -rm -f ./$(DEPDIR)/misc.Po + -rm -f ./$(DEPDIR)/misc.hack_nf.Po + -rm -f ./$(DEPDIR)/monitor.Po + -rm -f ./$(DEPDIR)/motif.Po + -rm -f ./$(DEPDIR)/moveres.Po + -rm -f ./$(DEPDIR)/osdep_bsd.Po + -rm -f ./$(DEPDIR)/osdep_darwin.Po + -rm -f ./$(DEPDIR)/osdep_linux.Po + -rm -f ./$(DEPDIR)/osdep_stub.Po + -rm -f ./$(DEPDIR)/pixmap.Po + -rm -f ./$(DEPDIR)/placement.Po + -rm -f ./$(DEPDIR)/properties.Po + -rm -f ./$(DEPDIR)/resources.Po + -rm -f ./$(DEPDIR)/rootmenu.Po + -rm -f ./$(DEPDIR)/screen.Po + -rm -f ./$(DEPDIR)/session.Po + -rm -f ./$(DEPDIR)/shutdown.Po + -rm -f ./$(DEPDIR)/stacking.Po + -rm -f ./$(DEPDIR)/startup.Po + -rm -f ./$(DEPDIR)/superfluous.Po + -rm -f ./$(DEPDIR)/switchmenu.Po + -rm -f ./$(DEPDIR)/switchpanel.Po + -rm -f ./$(DEPDIR)/texture.Po + -rm -f ./$(DEPDIR)/usermenu.Po + -rm -f ./$(DEPDIR)/wcore.Po + -rm -f ./$(DEPDIR)/wdefaults.Po + -rm -f ./$(DEPDIR)/window.Po + -rm -f ./$(DEPDIR)/winmenu.Po + -rm -f ./$(DEPDIR)/winspector.Po + -rm -f ./$(DEPDIR)/wmaker-popup-v1-protocol.Po + -rm -f ./$(DEPDIR)/workspace.Po + -rm -f ./$(DEPDIR)/wsmap.Po + -rm -f ./$(DEPDIR)/xinerama.Po + -rm -f ./$(DEPDIR)/xmodifier.Po + -rm -f ./$(DEPDIR)/xmodifier.hack_nf.Po + -rm -f ./$(DEPDIR)/xutil.Po + -rm -f backend/$(DEPDIR)/wm_backend.Po + -rm -f backend/wayland/$(DEPDIR)/wl_atom.Po + -rm -f backend/wayland/$(DEPDIR)/wl_backend.Po + -rm -f backend/wayland/$(DEPDIR)/wl_background.Po + -rm -f backend/wayland/$(DEPDIR)/wl_badge.Po + -rm -f backend/wayland/$(DEPDIR)/wl_client.Po + -rm -f backend/wayland/$(DEPDIR)/wl_clipboard.Po + -rm -f backend/wayland/$(DEPDIR)/wl_context.Po + -rm -f backend/wayland/$(DEPDIR)/wl_dnd.Po + -rm -f backend/wayland/$(DEPDIR)/wl_dock.Po + -rm -f backend/wayland/$(DEPDIR)/wl_dragicon.Po + -rm -f backend/wayland/$(DEPDIR)/wl_event.Po + -rm -f backend/wayland/$(DEPDIR)/wl_events.Po + -rm -f backend/wayland/$(DEPDIR)/wl_extensions.Po + -rm -f backend/wayland/$(DEPDIR)/wl_fakeleader.Po + -rm -f backend/wayland/$(DEPDIR)/wl_focus.Po + -rm -f backend/wayland/$(DEPDIR)/wl_framebuf.Po + -rm -f backend/wayland/$(DEPDIR)/wl_grab.Po + -rm -f backend/wayland/$(DEPDIR)/wl_grabs.Po + -rm -f backend/wayland/$(DEPDIR)/wl_grabstate.Po + -rm -f backend/wayland/$(DEPDIR)/wl_handlers.Po + -rm -f backend/wayland/$(DEPDIR)/wl_icccm.Po + -rm -f backend/wayland/$(DEPDIR)/wl_icon.Po + -rm -f backend/wayland/$(DEPDIR)/wl_input_fwd.Po + -rm -f backend/wayland/$(DEPDIR)/wl_keyboard.Po + -rm -f backend/wayland/$(DEPDIR)/wl_layer_shell.Po + -rm -f backend/wayland/$(DEPDIR)/wl_layout_sync.Po + -rm -f backend/wayland/$(DEPDIR)/wl_output.Po + -rm -f backend/wayland/$(DEPDIR)/wl_output_mgmt.Po + -rm -f backend/wayland/$(DEPDIR)/wl_overlay.Po + -rm -f backend/wayland/$(DEPDIR)/wl_pointer_focus.Po + -rm -f backend/wayland/$(DEPDIR)/wl_pointer_motion.Po + -rm -f backend/wayland/$(DEPDIR)/wl_popup.Po + -rm -f backend/wayland/$(DEPDIR)/wl_props.Po + -rm -f backend/wayland/$(DEPDIR)/wl_screen.Po + -rm -f backend/wayland/$(DEPDIR)/wl_shm.Po + -rm -f backend/wayland/$(DEPDIR)/wl_signalfd.Po + -rm -f backend/wayland/$(DEPDIR)/wl_stacking.Po + -rm -f backend/wayland/$(DEPDIR)/wl_stubs.Po + -rm -f backend/wayland/$(DEPDIR)/wl_text_input.Po + -rm -f backend/wayland/$(DEPDIR)/wl_virtual_pointer.Po + -rm -f backend/wayland/$(DEPDIR)/wl_window.Po + -rm -f backend/wayland/$(DEPDIR)/wl_wings.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xdg.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xdg_activation.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xdisplay.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xkb.Po + -rm -f backend/wayland/$(DEPDIR)/wl_xwayland.Po + -rm -f backend/x11/$(DEPDIR)/wmspec.Po + -rm -f backend/x11/$(DEPDIR)/x11_backend.Po + -rm -f backend/x11/$(DEPDIR)/x11_event.Po + -rm -f backend/x11/$(DEPDIR)/x11_monitor.Po + -rm -f backend/x11/$(DEPDIR)/x11_props.Po + -rm -f backend/x11/$(DEPDIR)/xdnd.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: all check check-am install install-am install-exec \ + install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am \ + check-local clean clean-binPROGRAMS clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS + +.PRECIOUS: Makefile + + +wmaker-popup-v1-server-protocol.h: $(top_srcdir)/protocols/wmaker-popup-v1.xml + $(WAYLAND_SCANNER) server-header $< $@ + +wmaker-popup-v1-protocol.c: $(top_srcdir)/protocols/wmaker-popup-v1.xml \ + wmaker-popup-v1-server-protocol.h + $(WAYLAND_SCANNER) private-code $< $@ + +# Generate protocol headers for Wayland compositor backend +protocols/pointer-constraints-unstable-v1-protocol.h: + @mkdir -p protocols + $(WAYLAND_SCANNER) server-header \ + $(WL_PROTO_DIR)/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml $@ + +protocols/wlr-output-power-management-unstable-v1-protocol.h: + @mkdir -p protocols + $(WAYLAND_SCANNER) server-header \ + $(WLR_PROTO_DIR)/wlr-output-power-management-unstable-v1.xml $@ + +protocols/wlr-layer-shell-unstable-v1-protocol.h: + @mkdir -p protocols + $(WAYLAND_SCANNER) server-header \ + $(WLR_PROTO_DIR)/wlr-layer-shell-unstable-v1.xml $@ + +protocols/xdg-shell-protocol.h: + @mkdir -p protocols + $(WAYLAND_SCANNER) server-header \ + $(WL_PROTO_DIR)/stable/xdg-shell/xdg-shell.xml $@ + +protocols/xdg-shell-protocol.c: protocols/xdg-shell-protocol.h + @mkdir -p protocols + $(WAYLAND_SCANNER) private-code \ + $(WL_PROTO_DIR)/stable/xdg-shell/xdg-shell.xml $@ + +#misc.hack_nf.c: misc.c $(top_srcdir)/script/nested-func-to-macro.sh +# $(AM_V_GEN)$(top_srcdir)/script/nested-func-to-macro.sh \ +# $(srcdir)/misc.c -o $(builddir)/misc.hack_nf.c \ +# -f "append_string" -f "append_modifier" + +#xmodifier.hack_nf.c: xmodifier.c $(top_srcdir)/script/nested-func-to-macro.sh +# $(AM_V_GEN)$(top_srcdir)/script/nested-func-to-macro.sh \ +# $(srcdir)/xmodifier.c -o $(builddir)/xmodifier.hack_nf.c \ +# -f "modwarn" -f "modbarf" -f "check_modifier" -f "store_modifier" + +check-local: defaults-callbacks-static defaults-callbacks-dynamic check-no-x11-policy + +# Check that the callback functions used to load the configuration match +# the type of the variable where the value will be stored +defaults-callbacks-static: + $(AM_V_CHKOPTS)$(top_srcdir)/script/check-wmaker-loaddef-callbacks.sh \ + --source "$(srcdir)/defaults.c" --structure "staticOptionList" \ + --field-value-ptr 4 --field-callback 5 \ + --struct-def "wPreferences=$(srcdir)/WindowMaker.h" \ + --callback "getBool=char, getEnum=char, getInt=int" \ + --callback "getModMask=int" + +defaults-callbacks-dynamic: + $(AM_V_CHKOPTS)$(top_srcdir)/script/check-wmaker-loaddef-callbacks.sh \ + --source "$(srcdir)/defaults.c" --structure "optionList" \ + --field-value-ptr 4 --field-callback 5 \ + --struct-def "wPreferences=$(srcdir)/WindowMaker.h" \ + --struct-def "legacy_minipreview_config=$(srcdir)/defaults.c" \ + --callback "getBool=char, getEnum=char, getInt=int" \ + --callback "getPathList=char*, getCoord=WCoord" + +check-no-x11-policy: + $(AM_V_CHKOPTS)for f in $(WM_POLICY_CLEAN_FILES); do \ + if grep -q '#include[[:space:]]*&2; \ + exit 1; \ + fi; \ + done; \ + echo " X11 policy check passed ($(words $(WM_POLICY_CLEAN_FILES)) files clean)" + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/src/backend/wayland/wl_kaboom.c b/src/backend/wayland/wl_kaboom.c new file mode 100644 index 0000000..ba5f0ab --- /dev/null +++ b/src/backend/wayland/wl_kaboom.c @@ -0,0 +1,210 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include +#include +#include +#include +#include "../../wconfig.h" +#include "../../screen.h" +#include "../../window.h" +#include "wl_types.h" + +#ifdef NORMAL_ICON_KABOOM + +#define PIECE_SIZE ICON_KABOOM_PIECE_SIZE +#define ANIM_FRAMES 12 +#define ANIM_INTERVAL_MS 30 +#define GRAVITY 2 + +struct kaboom_piece { + int x, y; + int vx, vy; + uint32_t pixels[PIECE_SIZE * PIECE_SIZE]; +}; + +struct kaboom_state { + struct wlr_scene_tree *tree; + struct wlr_scene_buffer *scene_buf; + struct wlr_buffer base; + pixman_image_t *image; + struct wl_event_source *timer; + struct kaboom_piece *pieces; + int npieces; + int width, height; + int frame; +}; + +static void kaboom_destroy(struct kaboom_state *state) +{ + if (state->timer) + wl_event_source_remove(state->timer); + if (state->tree) + wlr_scene_node_destroy(&state->tree->node); + if (state->image) + pixman_image_unref(state->image); + wlr_buffer_drop(&state->base); + free(state->pieces); + free(state); +} + +static bool kaboom_buf_begin_data_ptr_access(struct wlr_buffer *buf, + uint32_t flags, void **data, uint32_t *format, size_t *stride) +{ + struct kaboom_state *state = wl_container_of(buf, state, base); + (void)flags; + *data = pixman_image_get_data(state->image); + *format = DRM_FORMAT_ARGB8888; + *stride = pixman_image_get_stride(state->image); + return true; +} + +static void kaboom_buf_end_data_ptr_access(struct wlr_buffer *buf) +{ + (void)buf; +} + +static void kaboom_buf_destroy(struct wlr_buffer *buf) +{ + (void)buf; +} + +static const struct wlr_buffer_impl kaboom_buf_impl = { + .destroy = kaboom_buf_destroy, + .begin_data_ptr_access = kaboom_buf_begin_data_ptr_access, + .end_data_ptr_access = kaboom_buf_end_data_ptr_access, +}; + +static void kaboom_render(struct kaboom_state *state) +{ + /* Clear to transparent */ + uint32_t *dst = pixman_image_get_data(state->image); + int stride = pixman_image_get_stride(state->image) / 4; + memset(dst, 0, stride * 4 * state->height); + + /* Draw each piece at its current position */ + for (int i = 0; i < state->npieces; i++) { + struct kaboom_piece *p = &state->pieces[i]; + for (int py = 0; py < PIECE_SIZE; py++) { + int dy = p->y + py; + if (dy < 0 || dy >= state->height) continue; + for (int px = 0; px < PIECE_SIZE; px++) { + int dx = p->x + px; + if (dx < 0 || dx >= state->width) continue; + dst[dy * stride + dx] = p->pixels[py * PIECE_SIZE + px]; + } + } + } +} + +static int kaboom_timer_cb(void *data) +{ + struct kaboom_state *state = data; + state->frame++; + + if (state->frame >= ANIM_FRAMES) { + kaboom_destroy(state); + return 0; + } + + /* Update piece positions */ + for (int i = 0; i < state->npieces; i++) { + struct kaboom_piece *p = &state->pieces[i]; + p->vy += GRAVITY; + p->x += p->vx; + p->y += p->vy; + } + + kaboom_render(state); + wlr_scene_buffer_set_buffer_with_damage(state->scene_buf, &state->base, NULL); + wl_event_source_timer_update(state->timer, ANIM_INTERVAL_MS); + return 0; +} + +void wl_do_kaboom(WScreen *scr, WNativeWindow win, int x, int y) +{ + (void)scr; + struct wl_frame_buf *fb = frame_buf_find(win); + if (!fb || !fb->image || !wl_state.scene) + return; + + int w = fb->width; + int h = fb->height; + int cols = w / PIECE_SIZE; + int rows = h / PIECE_SIZE; + int npieces = cols * rows; + if (npieces <= 0) + return; + + struct kaboom_state *state = calloc(1, sizeof(*state)); + if (!state) return; + + state->pieces = calloc(npieces, sizeof(struct kaboom_piece)); + if (!state->pieces) { free(state); return; } + state->npieces = npieces; + state->width = w; + state->height = h; + state->frame = 0; + + /* Copy pixel data from icon into pieces */ + uint32_t *src = pixman_image_get_data(fb->image); + int src_stride = pixman_image_get_stride(fb->image) / 4; + for (int r = 0; r < rows; r++) { + for (int c = 0; c < cols; c++) { + struct kaboom_piece *p = &state->pieces[r * cols + c]; + p->x = c * PIECE_SIZE; + p->y = r * PIECE_SIZE; + /* Random velocity: horizontal spread, slight upward */ + p->vx = (rand() % 7) - 3; + p->vy = -(rand() % 4) - 1; + for (int py = 0; py < PIECE_SIZE; py++) { + for (int px = 0; px < PIECE_SIZE; px++) { + int sx = c * PIECE_SIZE + px; + int sy = r * PIECE_SIZE + py; + if (sx < w && sy < h) + p->pixels[py * PIECE_SIZE + px] = src[sy * src_stride + sx]; + } + } + } + } + + /* Create scene buffer for animation */ + state->image = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h, NULL, 0); + if (!state->image) { free(state->pieces); free(state); return; } + + wlr_buffer_init(&state->base, &kaboom_buf_impl, w, h); + + struct wlr_scene_tree *parent = wl_state.level_trees[WL_LAYER_OVERLAY] + ? wl_state.level_trees[WL_LAYER_OVERLAY] : &wl_state.scene->tree; + state->tree = wlr_scene_tree_create(parent); + if (!state->tree) { kaboom_destroy(state); return; } + wlr_scene_node_set_position(&state->tree->node, x, y); + + state->scene_buf = wlr_scene_buffer_create(state->tree, &state->base); + if (!state->scene_buf) { kaboom_destroy(state); return; } + + /* Render first frame (original positions) and hide original icon */ + kaboom_render(state); + wlr_scene_buffer_set_buffer_with_damage(state->scene_buf, &state->base, NULL); + if (fb->tree) + wlr_scene_node_set_enabled(&fb->tree->node, false); + else if (fb->scene_buf) + wlr_scene_node_set_enabled(&fb->scene_buf->node, false); + + /* Start animation timer */ + struct wl_event_loop *loop = wl_display_get_event_loop(wl_state.display); + state->timer = wl_event_loop_add_timer(loop, kaboom_timer_cb, state); + wl_event_source_timer_update(state->timer, ANIM_INTERVAL_MS); +} + +#else /* !NORMAL_ICON_KABOOM */ + +void wl_do_kaboom(WScreen *scr, WNativeWindow win, int x, int y) +{ + (void)scr; (void)win; (void)x; (void)y; +} + +#endif diff --git a/src/backend/wayland/wl_stubs.c b/src/backend/wayland/wl_stubs.c index 841d9de..8921504 100644 --- a/src/backend/wayland/wl_stubs.c +++ b/src/backend/wayland/wl_stubs.c @@ -490,7 +490,7 @@ const WMBackend wl_backend = { .clip_icon_paint = wl_clip_icon_paint, .drawer_icon_paint = wl_drawer_icon_paint, .balloon_init = wl_balloon_init, - .do_kaboom = wl_noop_do_kaboom, + .do_kaboom = wl_do_kaboom, .menu_paint_entry = wl_menu_paint_entry, .menu_draw_frame = wl_menu_draw_frame, .draw_bevel = wl_noop_draw_bevel, diff --git a/src/backend/wayland/wl_types.h b/src/backend/wayland/wl_types.h index 657230d..d454433 100644 --- a/src/backend/wayland/wl_types.h +++ b/src/backend/wayland/wl_types.h @@ -521,6 +521,7 @@ void fb_attach_tree_listener(struct wl_frame_buf *fb); void fb_attach_scene_buf_listener(struct wl_frame_buf *fb); void wl_frame_paint_button(WCoreWindow *button, WTexture *texture, unsigned long color, WPixmap *image, int pushed); unsigned long wl_atom_intern(const char *name); +void wl_do_kaboom(WScreen *scr, WNativeWindow win, int x, int y); /* Signalfd module declarations (extracted to wl_signalfd.c) */ int wl_signalfd_handler(int fd, uint32_t mask, void *data);