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
A
Makefile
+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+