diff --git a/.gitignore b/.gitignore index 94abb940..e9263539 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ autom4te.cache/ config.log config.status configure -Makefile +config.mk diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..afee0c31 --- /dev/null +++ b/Makefile @@ -0,0 +1,52 @@ +include config.mk + +subdirs = clients +libs = libwayland-server.so libwayland.so +compositors = wayland-system-compositor + +all : $(libs) $(compositors) subdirs + +libwayland-server.so : \ + wayland.o \ + event-loop.o \ + connection.o \ + wayland-util.o \ + wayland-hash.o \ + wayland-protocol.o + +libwayland.so : \ + wayland-client.o \ + connection.o \ + wayland-util.o \ + wayland-hash.o \ + wayland-protocol.o + +$(libs) : CFLAGS += -fPIC $(FFI_CFLAGS) +$(libs) : LDLIBS += $(FFI_LIBS) +$(libs) : + gcc -shared $^ $(LDLIBS) -o $@ + +wayland-system-compositor : \ + wayland-system-compositor.o \ + evdev.o \ + cairo-util.o \ + wayland-util.o + +wayland-system-compositor : CFLAGS += $(EGL_COMPOSITOR_CFLAGS) +wayland-system-compositor : LDLIBS += ./libwayland-server.so $(EGL_COMPOSITOR_LIBS) -rdynamic -lrt -lEGL + +subdirs-all subdirs-clean : + for f in $(subdirs); do $(MAKE) -C $$f $(@:subdirs-%=%); done + +install : $(libs) $(compositors) + install -d $(libdir) $(libdir)/pkgconfig ${udev_rules_dir} + install $(libs) $(libdir) + install wayland-server.pc wayland.pc $(libdir)/pkgconfig + install wayland-util.h wayland-client.h $(includedir) + install 70-wayland.rules ${udev_rules_dir} + +clean : subdirs-clean + rm -f $(compositors) *.o *.so + +config.mk : config.mk.in + ./config.status diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 72b5e6a4..00000000 --- a/Makefile.in +++ /dev/null @@ -1,73 +0,0 @@ -CFLAGS = @GCC_CFLAGS@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -udev_rules_dir = @sysconfdir@/udev/rules.d - -libs = libwayland-server.so libwayland.so -egl_clients = gears -cairo_clients = flower screenshot terminal image view -compositors = wayland-system-compositor -clients = $(egl_clients) $(cairo_clients) - -all : $(libs) $(compositors) $(clients) - -libwayland-server.so : \ - wayland.o \ - event-loop.o \ - connection.o \ - wayland-util.o \ - wayland-hash.o \ - wayland-protocol.o - -libwayland.so : \ - wayland-client.o \ - connection.o \ - wayland-util.o \ - wayland-hash.o \ - wayland-protocol.o - -$(libs) : CFLAGS += -fPIC @FFI_CFLAGS@ -$(libs) : LDLIBS += @FFI_LIBS@ -$(libs) : - gcc -shared $^ $(LDLIBS) -o $@ - -wayland-system-compositor : \ - wayland-system-compositor.o \ - evdev.o \ - cairo-util.o \ - wayland-util.o - -wayland-system-compositor : CFLAGS += @EGL_COMPOSITOR_CFLAGS@ -wayland-system-compositor : LDLIBS += ./libwayland-server.so @EGL_COMPOSITOR_LIBS@ -rdynamic -lrt -lEGL - -flower : flower.o wayland-glib.o -gears : gears.o window.o wayland-glib.o cairo-util.o -screenshot : screenshot.o wayland-glib.o -terminal : terminal.o window.o wayland-glib.o cairo-util.o -image : image.o window.o wayland-glib.o cairo-util.o -view : view.o window.o wayland-glib.o cairo-util.o - -terminal : LDLIBS += -lutil -image : CFLAGS += @GDK_PIXBUF_CFLAGS@ -image : LDLIBS += @GDK_PIXBUF_LIBS@ -view : CFLAGS += @POPPLER_CFLAGS@ -view : LDLIBS += @POPPLER_LIBS@ - -$(egl_clients) : CFLAGS += @EGL_CLIENT_CFLAGS@ -$(egl_clients) : LDLIBS += -L. -lwayland @EGL_CLIENT_LIBS@ -lrt -lEGL -$(cairo_clients) : CFLAGS += @CAIRO_CLIENT_CFLAGS@ -$(cairo_clients) : LDLIBS += ./libwayland.so @CAIRO_CLIENT_LIBS@ -lrt - -install : $(libs) $(compositors) - install -d @libdir@ @libdir@/pkgconfig ${udev_rules_dir} - install $(libs) @libdir@ - install wayland-server.pc wayland.pc @libdir@/pkgconfig - install wayland-util.h wayland-client.h @includedir@ - install 70-wayland.rules ${udev_rules_dir} - -clean : - rm -f $(clients) $(compositors) *.o *.so - -Makefile : Makefile.in - ./config.status diff --git a/clients/Makefile b/clients/Makefile new file mode 100644 index 00000000..47714395 --- /dev/null +++ b/clients/Makefile @@ -0,0 +1,27 @@ +include ../config.mk + +egl_clients = gears +cairo_clients = flower screenshot terminal image view + +all : $(egl_clients) $(cairo_clients) + +clean : + rm -f $(egl_clients) $(cairo_clients) *.o + +flower : flower.o wayland-glib.o +gears : gears.o window.o wayland-glib.o cairo-util.o +screenshot : screenshot.o wayland-glib.o +terminal : terminal.o window.o wayland-glib.o cairo-util.o +image : image.o window.o wayland-glib.o cairo-util.o +view : view.o window.o wayland-glib.o cairo-util.o + +terminal : LDLIBS += -lutil +image : CFLAGS += $(GDK_PIXBUF_CFLAGS) +image : LDLIBS += $(GDK_PIXBUF_LIBS) +view : CFLAGS += $(POPPLER_CFLAGS) +view : LDLIBS += $(POPPLER_LIBS) + +$(egl_clients) : CFLAGS += $(EGL_CLIENT_CFLAGS) +$(egl_clients) : LDLIBS += -L.. -lwayland $(EGL_CLIENT_LIBS) -lrt +$(cairo_clients) : CFLAGS += $(CAIRO_CLIENT_CFLAGS) +$(cairo_clients) : LDLIBS += -L.. -lwayland $(CAIRO_CLIENT_LIBS) -lrt diff --git a/flower.c b/clients/flower.c similarity index 100% rename from flower.c rename to clients/flower.c diff --git a/gears.c b/clients/gears.c similarity index 100% rename from gears.c rename to clients/gears.c diff --git a/image.c b/clients/image.c similarity index 100% rename from image.c rename to clients/image.c diff --git a/screenshot.c b/clients/screenshot.c similarity index 100% rename from screenshot.c rename to clients/screenshot.c diff --git a/terminal.c b/clients/terminal.c similarity index 100% rename from terminal.c rename to clients/terminal.c diff --git a/view.c b/clients/view.c similarity index 100% rename from view.c rename to clients/view.c diff --git a/config.mk.in b/config.mk.in new file mode 100644 index 00000000..c633655e --- /dev/null +++ b/config.mk.in @@ -0,0 +1,25 @@ +CFLAGS = @GCC_CFLAGS@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +udev_rules_dir = @sysconfdir@/udev/rules.d +libdir = @libdir@ +includedir = @includedir@ + +EGL_COMPOSITOR_CFLAGS = @EGL_COMPOSITOR_CFLAGS@ +EGL_COMPOSITOR_LIBS = @EGL_COMPOSITOR_LIBS@ + +FFI_CFLAGS = @FFI_CFLAGS@ +FFI_LIBS = @FFI_LIBS@ + +EGL_CLIENT_CFLAGS = @EGL_CLIENT_CFLAGS@ +EGL_CLIENT_LIBS = @EGL_CLIENT_LIBS@ + +CAIRO_CLIENT_CFLAGS = @CAIRO_CLIENT_CFLAGS@ +CAIRO_CLIENT_LIBS = @CAIRO_CLIENT_LIBS@ + +GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ +GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ + +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_LIBS = @POPPLER_LIBS@ diff --git a/configure.ac b/configure.ac index f7e4663b..bf3c669c 100644 --- a/configure.ac +++ b/configure.ac @@ -5,8 +5,8 @@ PKG_PROG_PKG_CONFIG() PKG_CHECK_MODULES(FFI, [libffi]) PKG_CHECK_MODULES(EGL_COMPOSITOR, - [gl libpng cairo gdk-pixbuf-2.0 libudev >= 136 libdrm >= 2.4.17]) -PKG_CHECK_MODULES(EGL_CLIENT, [gl cairo glib-2.0 libudev]) + [egl gl libpng cairo gdk-pixbuf-2.0 libudev >= 136 libdrm >= 2.4.17]) +PKG_CHECK_MODULES(EGL_CLIENT, [egl gl cairo glib-2.0 libudev]) PKG_CHECK_MODULES(CAIRO_CLIENT, [cairo-drm glib-2.0]) PKG_CHECK_MODULES(GDK_PIXBUF, [gdk-pixbuf-2.0]) PKG_CHECK_MODULES(POPPLER, [poppler-glib gdk-2.0]) @@ -16,5 +16,5 @@ if test $CC = gcc; then fi AC_SUBST(GCC_CFLAGS) -AC_CONFIG_FILES([Makefile wayland-server.pc wayland.pc]) +AC_CONFIG_FILES([config.mk wayland-server.pc wayland.pc]) AC_OUTPUT