commit 91a4aa8

Michael Forney  ·  2013-10-25 05:21:02 +0000 UTC
parent f9bbfb5
Switch build system to plain Makefiles
11 files changed,  +217, -126
+3, -25
 1@@ -5,30 +5,8 @@
 2 protocol/wayland-drm-protocol.c
 3 protocol/wayland-drm-server-protocol.h
 4 
 5-.deps/
 6-.libs/
 7-.dirstamp
 8-
 9-Makefile
10-Makefile.in
11-
12-/aclocal.m4
13-/ar-lib
14-/autom4te.cache/
15-/config.guess
16-/config.log
17-/config.status
18-/config.sub
19-/configure
20-/compile
21-/depcomp
22-/install-sh
23-/libtool
24-/ltmain.sh
25-/m4/
26-/missing
27-
28-/libswc/libswc.la
29-/launch/liblaunch-protocol.la
30+/.deps/
31+/libswc/libswc.a
32+/libswc/libswc.so
33 /launch/swc-launch
34 
+44, -0
 1@@ -0,0 +1,44 @@
 2+# swc: Makefile
 3+
 4+.PHONY: all
 5+all: build
 6+
 7+SUBDIRS     := launch libswc protocol
 8+CLEAN_FILES :=
 9+
10+include config.mk
11+include $(SUBDIRS:%=%/Makefile.local)
12+
13+ifeq ($(if $(V),$(V),0), 0)
14+    define quiet
15+        @echo "  $1	$@"
16+        @$(if $2,$2,$($1))
17+    endef
18+else
19+    quiet = $(if $2,$2,$($1))
20+endif
21+
22+define check_deps
23+    @echo "Checking for dependencies of $1 ($2)"
24+    @$(PKG_CONFIG) --exists --print-errors $2
25+endef
26+
27+compile = $(call quiet,CC) $(CFLAGS) $(CPPFLAGS) -I . -c -MMD -MP -MF .deps/$*.d -o $@ $<
28+link    = $(call quiet,CCLD,$(CC)) $(CFLAGS) -o $@ $^
29+
30+.PHONY: check-dependencies
31+check-dependencies: $(SUBDIRS:%=check-dependencies-%)
32+
33+.PHONY: build
34+build: $(SUBDIRS:%=build-%)
35+
36+.PHONY: install
37+install: $(SUBDIRS:%=install-%)
38+
39+$(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCLUDEDIR):
40+	mkdir -p "$@"
41+
42+.PHONY: clean
43+clean:
44+	rm -f $(CLEAN_FILES)
45+
+13, -0
 1@@ -0,0 +1,13 @@
 2+# swc: Makefile.common
 3+
 4+.PHONY: check-dependencies-$(dir)
 5+check-dependencies-$(dir):
 6+
 7+.PHONY: build-$(dir)
 8+build-$(dir): $($(dir)_TARGETS)
 9+
10+.PHONY: install-$(dir)
11+install-$(dir):
12+
13+CLEAN_FILES += $($(dir)_TARGETS)
14+
+33, -0
 1@@ -0,0 +1,33 @@
 2+# swc: config.mk
 3+
 4+PREFIX          = /usr/local
 5+BINDIR          = $(PREFIX)/bin
 6+LIBDIR          = $(PREFIX)/lib
 7+INCLUDEDIR      = $(PREFIX)/include
 8+
 9+CC              = gcc
10+CPPFLAGS        = -D_GNU_SOURCE # Required for mkostemp
11+CFLAGS          = -O2 -pipe
12+PKG_CONFIG      = pkg-config
13+WAYLAND_SCANNER = wayland-scanner
14+
15+ENABLE_STATIC   = 1
16+ENABLE_SHARED   = 1
17+
18+# Dependencies
19+SWC_PACKAGES    =   \
20+    wayland-server  \
21+    libudev         \
22+    libevdev        \
23+    xkbcommon       \
24+    libdrm          \
25+    pixman-1        \
26+    wld
27+LAUNCH_PACKAGES =   \
28+    libdrm
29+
30+SWC_PACKAGE_CFLAGS      = $$($(PKG_CONFIG) --cflags $(SWC_PACKAGES))
31+SWC_PACKAGE_LIBS        = $$($(PKG_CONFIG) --libs $(SWC_PACKAGES))
32+LAUNCH_PACKAGE_CFLAGS   = $$($(PKG_CONFIG) --cflags $(LAUNCH_PACKAGES))
33+LAUNCH_PACKAGE_LIBS     = $$($(PKG_CONFIG) --libs $(LAUNCH_PACKAGES))
34+
+0, -37
 1@@ -1,37 +0,0 @@
 2-dnl swc: configure.ac
 3-
 4-AC_PREREQ([2.59])
 5-
 6-AC_INIT([swc], [0.0.1], [mforney@mforney.org])
 7-AM_INIT_AUTOMAKE([foreign -Wall -Werror subdir-objects])
 8-AC_LANG([C])
 9-
10-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
11-
12-AC_PROG_CC_C99
13-AC_USE_SYSTEM_EXTENSIONS
14-
15-AM_PROG_AR
16-LT_INIT
17-
18-AC_CONFIG_SRCDIR([libswc/swc.c])
19-AC_CONFIG_MACRO_DIR([m4])
20-
21-PKG_PROG_PKG_CONFIG([0.9.0])
22-
23-dnl Check for libraries {{{
24-PKG_CHECK_MODULES([wayland_server], [wayland-server])
25-PKG_CHECK_MODULES([udev], [libudev])
26-PKG_CHECK_MODULES([libevdev], [libevdev])
27-PKG_CHECK_MODULES([xkbcommon], [xkbcommon])
28-PKG_CHECK_MODULES([drm], [libdrm])
29-PKG_CHECK_MODULES([pixman], [pixman-1])
30-PKG_CHECK_MODULES([wld], [wld])
31-dnl }}}
32-
33-dnl Wayland protocol
34-WAYLAND_SCANNER_RULES(['$(top_srcdir)/protocol'])
35-
36-AC_CONFIG_FILES([Makefile libswc/Makefile launch/Makefile protocol/Makefile])
37-AC_OUTPUT
38-
+0, -13
 1@@ -1,13 +0,0 @@
 2-# launch/Makefile.am
 3-
 4-AM_CFLAGS = $(drm_CFLAGS)
 5-
 6-bin_PROGRAMS = swc-launch
 7-noinst_LTLIBRARIES = liblaunch-protocol.la
 8-
 9-swc_launch_SOURCES = launch.c
10-swc_launch_LDADD = liblaunch-protocol.la $(drm_LIBS)
11-swc_launch_LDFLAGS = -static
12-
13-liblaunch_protocol_la_SOURCES = protocol.c protocol.h
14-
+22, -0
 1@@ -0,0 +1,22 @@
 2+# swc: launch/Makefile.local
 3+
 4+dir := launch
 5+
 6+$(dir)_TARGETS := $(dir)/swc-launch
 7+
 8+$(dir)/launch.o: $(dir)/launch.c
 9+	$(compile) $(LAUNCH_PACKAGE_CFLAGS)
10+
11+$(dir)/swc-launch: $(dir)/launch.o $(dir)/protocol.static.o
12+	$(link) $(LAUNCH_PACKAGE_LIBS)
13+
14+check-dependencies-$(dir):
15+	$(call check_deps,swc-launch,$(LAUNCH_PACKAGES))
16+
17+install-$(dir): $(dir)/swc-launch | $(DESTDIR)$(BINDIR)
18+	install -m4755 launch/swc-launch "$(DESTDIR)$(BINDIR)"
19+
20+CLEAN_FILES += $(dir)/launch.o
21+
22+include Makefile.common
23+
+0, -44
 1@@ -1,44 +0,0 @@
 2-# swc: libswc/Makefile.am
 3-
 4-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
 5-AM_CFLAGS = $(drm_CFLAGS) $(pixman_CFLAGS) $(wld_CFLAGS) $(libevdev_CFLAGS)
 6-
 7-lib_LTLIBRARIES = libswc.la
 8-include_HEADERS = swc.h
 9-
10-libswc_la_SOURCES = \
11-    compositor.c compositor.h \
12-    util.c util.h \
13-    output.c output.h \
14-    plane.c plane.h \
15-    surface.c surface.h \
16-    compositor_surface.c compositor_surface.h \
17-    cursor_surface.c cursor_surface.h \
18-    region.c region.h \
19-    renderer.c renderer.h \
20-    input_focus.c input_focus.h \
21-    keyboard.c keyboard.h \
22-    pointer.c pointer.h \
23-    seat.c seat.h \
24-    data_device_manager.c data_device_manager.h \
25-    data_device.c data_device.h \
26-    data.c data.h \
27-    mode.c mode.h \
28-    evdev_device.c evdev_device.h \
29-    xkb.c xkb.h \
30-    drm.c drm.h \
31-    drm_buffer.c drm_buffer.h \
32-    ../protocol/wayland-drm-protocol.c
33-
34-# Public interface
35-libswc_la_SOURCES += \
36-    swc.c swc.h \
37-    window.c window.h \
38-    shell.c shell.h \
39-    shell_surface.c shell_surface.h \
40-    binding.c binding.h
41-
42-libswc_la_LIBADD = $(wayland_server_LIBS) $(udev_LIBS) $(libevdev_LIBS) \
43-                   $(xkbcommon_LIBS) $(drm_LIBS) $(pixman_LIBS) $(wld_LIBS) \
44-                   ../launch/liblaunch-protocol.la
45-
+83, -0
 1@@ -0,0 +1,83 @@
 2+# swc: libswc/Makefile.local
 3+
 4+dir := libswc
 5+
 6+ifneq ($(ENABLE_STATIC), 0)
 7+$(dir)_TARGETS += $(dir)/libswc.a
 8+endif
 9+
10+ifneq ($(ENABLE_SHARED), 0)
11+$(dir)_TARGETS += $(dir)/libswc.so
12+endif
13+
14+SWC_SOURCES =                       \
15+    libswc/compositor.c             \
16+    libswc/util.c                   \
17+    libswc/output.c                 \
18+    libswc/plane.c                  \
19+    libswc/surface.c                \
20+    libswc/compositor_surface.c     \
21+    libswc/cursor_surface.c         \
22+    libswc/region.c                 \
23+    libswc/renderer.c               \
24+    libswc/input_focus.c            \
25+    libswc/keyboard.c               \
26+    libswc/pointer.c                \
27+    libswc/seat.c                   \
28+    libswc/data_device_manager.c    \
29+    libswc/data_device.c            \
30+    libswc/data.c                   \
31+    libswc/mode.c                   \
32+    libswc/evdev_device.c           \
33+    libswc/xkb.c                    \
34+    libswc/drm.c                    \
35+    libswc/drm_buffer.c             \
36+    protocol/wayland-drm-protocol.c \
37+    launch/protocol.c
38+
39+# Public interface
40+SWC_SOURCES +=                      \
41+    libswc/swc.c                    \
42+    libswc/window.c                 \
43+    libswc/shell.c                  \
44+    libswc/shell_surface.c          \
45+    libswc/binding.c
46+
47+SWC_SHARED_OBJECTS = $(SWC_SOURCES:%.c=%.shared.o)
48+SWC_STATIC_OBJECTS = $(SWC_SOURCES:%.c=%.static.o)
49+
50+# Explicitly state dependencies on generated files
51+$(dir)/drm.c $(dir)/drm_buffer.c: protocol/wayland-drm-server-protocol.h
52+
53+%.shared.o: %.c
54+	@mkdir -p .deps/$(dir $@)
55+	$(compile) -fPIC $(SWC_PACKAGE_CFLAGS)
56+
57+%.static.o: %.c
58+	@mkdir -p .deps/$(dir $@)
59+	$(compile) $(SWC_PACKAGE_CFLAGS)
60+
61+$(dir)/libswc.a: $(SWC_STATIC_OBJECTS)
62+	$(call quiet,AR) cru $@ $^
63+
64+$(dir)/libswc.so: $(SWC_SHARED_OBJECTS)
65+	$(link) -shared $(SWC_PACKAGE_LIBS)
66+
67+.PHONY: install-libswc.a
68+install-libswc.a: $(dir)/libswc.a | $(DESTDIR)$(LIBDIR)
69+	install -m0644 $< "$(DESTDIR)$(LIBDIR)"
70+
71+.PHONY: install-libswc.so
72+install-libswc.so: $(dir)/libswc.so | $(DESTDIR)$(LIBDIR)
73+	install -m0755 $< "$(DESTDIR)$(LIBDIR)"
74+
75+check-dependencies-libswc:
76+	$(call check_deps,libswc,$(SWC_PACKAGES))
77+
78+install-libswc: $($(dir)_TARGETS:$(dir)/%=install-%) | $(DESTDIR)$(INCLUDEDIR)
79+	install -m0644 libswc/swc.h "$(DESTDIR)$(INCLUDEDIR)"
80+
81+CLEAN_FILES += $(SWC_SHARED_OBJECTS) $(SWC_STATIC_OBJECTS)
82+
83+include Makefile.common
84+
+0, -7
1@@ -1,7 +0,0 @@
2-# wld: protocol/Makefile.am
3-
4-BUILT_SOURCES = wayland-drm-protocol.c wayland-drm-server-protocol.h
5-CLEANFILES = $(BUILT_SOURCES)
6-
7-@wayland_scanner_rules@
8-
+19, -0
 1@@ -0,0 +1,19 @@
 2+# swc: protocol/Makefile.local
 3+
 4+dir := protocol
 5+
 6+PROTOCOL_EXTENSIONS =   \
 7+    $(dir)/wayland-drm.xml
 8+
 9+$(dir)/%-protocol.c: $(dir)/%.xml
10+	$(call quiet,GEN,$(WAYLAND_SCANNER)) code < $< > $@
11+
12+$(dir)/%-server-protocol.h: $(dir)/%.xml
13+	$(call quiet,GEN,$(WAYLAND_SCANNER)) server-header < $< > $@
14+
15+CLEAN_FILES +=                                          \
16+    $(PROTOCOL_EXTENSIONS:%.xml=%-protocol.c)           \
17+    $(PROTOCOL_EXTENSIONS:%.xml=%-server-protocol.h)
18+
19+include Makefile.common
20+