Rev 4364 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3584 | sourcerer | 1 | # Component settings |
2 | COMPONENT := nsfb |
||
3 | COMPONENT_VERSION := 0.0.2 |
||
4 | # Default to a static library |
||
5 | COMPONENT_TYPE ?= lib-static |
||
6 | |||
7 | # Setup the tooling |
||
4821 | ashmew2 | 8 | #PREFIX ?= /opt/netsurf |
9 | PREFIX ?= /usr |
||
3584 | sourcerer | 10 | NSSHARED ?= $(PREFIX)/share/netsurf-buildsystem |
11 | include $(NSSHARED)/makefiles/Makefile.tools |
||
12 | |||
13 | # Reevaluate when used, as BUILDDIR won't be defined yet |
||
14 | TESTRUNNER = test/runtest.sh $(BUILDDIR) $(EXEEXT) |
||
15 | |||
16 | # Toolchain flags |
||
17 | WARNFLAGS := -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align \ |
||
18 | -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ |
||
19 | -Wmissing-declarations -Wnested-externs -Werror -pedantic \ |
||
20 | -Wno-overlength-strings # For nsglobe.c |
||
21 | CFLAGS := -g -std=c99 -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112L \ |
||
22 | -I$(CURDIR)/include/ -I$(CURDIR)/src $(WARNFLAGS) $(CFLAGS) |
||
23 | |||
24 | NSFB_XCB_PKG_NAMES := xcb xcb-icccm xcb-image xcb-keysyms xcb-atom |
||
25 | |||
26 | $(eval $(call pkg_config_package_available,NSFB_VNC_AVAILABLE,libvncserver)) |
||
27 | $(eval $(call pkg_config_package_available,NSFB_SDL_AVAILABLE,sdl)) |
||
28 | $(eval $(call pkg_config_package_available,NSFB_XCB_AVAILABLE,$(NSFB_XCB_PKG_NAMES))) |
||
29 | |||
30 | ifeq ($(NSFB_SDL_AVAILABLE),yes) |
||
31 | $(eval $(call pkg_config_package_add_flags,sdl,CFLAGS)) |
||
32 | $(eval $(call pkg_config_package_add_flags,sdl,TESTCFLAGS,TESTLDFLAGS)) |
||
33 | |||
34 | REQUIRED_PKGS := $(REQUIRED_PKGS) sdl |
||
35 | endif |
||
36 | |||
37 | ifeq ($(NSFB_XCB_AVAILABLE),yes) |
||
38 | # Size hint allocators were removed in xcb-icccm 0.3.0 |
||
39 | $(eval $(call pkg_config_package_min_version,NSFB_XCB_ICCCM_SIZE_HINTS,xcb-icccm,0.3.0)) |
||
40 | ifeq ($(NSFB_XCB_ICCCM_SIZE_HINTS),yes) |
||
41 | CFLAGS := $(CFLAGS) -DNSFB_NEED_HINTS_ALLOC |
||
42 | endif |
||
43 | |||
44 | # xcb-icccm 0.3.8 introduced an additional "icccm_" in function names |
||
45 | $(eval $(call pkg_config_package_min_version,NSFB_XCB_ICCCM_API_PREFIX,xcb-icccm,0.3.8)) |
||
46 | ifeq ($(NSFB_XCB_ICCCM_API_PREFIX),yes) |
||
47 | CFLAGS := $(CFLAGS) -DNSFB_NEED_ICCCM_API_PREFIX |
||
48 | endif |
||
49 | |||
50 | # xcbproto 1.6 incorporated atoms previously found in xcb_atom |
||
51 | # However, libxcb <1.3 did not report xcbproto versions. Assume xcbproto 1.5 in this case. |
||
52 | $(eval $(call pkg_config_package_min_version,NSFB_HAVE_MODERN_XCB,xcb,1.3)) |
||
53 | ifeq ($(NSFB_HAVE_MODERN_XCB),yes) |
||
54 | $(eval $(call pkg_config_get_variable,NSFB_XCBPROTO_VERSION,xcb,xcbproto_version)) |
||
55 | NSFB_XCBPROTO_MAJOR_VERSION := $(word 1,$(subst ., ,$(NSFB_XCBPROTO_VERSION))) |
||
56 | NSFB_XCBPROTO_MINOR_VERSION := $(word 2,$(subst ., ,$(NSFB_XCBPROTO_VERSION))) |
||
57 | CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MAJOR_VERSION=$(NSFB_XCBPROTO_MAJOR_VERSION) |
||
58 | CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MINOR_VERSION=$(NSFB_XCBPROTO_MINOR_VERSION) |
||
59 | else |
||
60 | CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MAJOR_VERSION=1 |
||
61 | CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MINOR_VERSION=5 |
||
62 | endif |
||
63 | |||
64 | $(eval $(call pkg_config_package_add_flags,$(NSFB_XCB_PKG_NAMES),CFLAGS)) |
||
65 | $(eval $(call pkg_config_package_add_flags,$(NSFB_XCB_PKG_NAMES),TESTCFLAGS,TESTLDFLAGS)) |
||
66 | |||
67 | REQUIRED_PKGS := $(REQUIRED_PKGS) $(NSFB_XCB_PKG_NAMES) |
||
68 | |||
69 | $(eval $(call pkg_config_package_available,NSFB_XCB_UTIL_AVAILABLE,xcb-util)) |
||
70 | ifeq ($(NSFB_XCB_UTIL_AVAILABLE),yes) |
||
71 | REQUIRED_PKGS := $(REQUIRED_PKGS) xcb-util |
||
72 | endif |
||
73 | endif |
||
74 | |||
75 | ifeq ($(NSFB_VNC_AVAILABLE),yes) |
||
76 | $(eval $(call pkg_config_package_add_flags,libvncserver,CFLAGS)) |
||
77 | $(eval $(call pkg_config_package_add_flags,libvncserver,TESTCFLAGS,TESTLDFLAGS)) |
||
78 | |||
79 | REQUIRED_PKGS := $(REQUIRED_PKGS) libvncserver |
||
80 | endif |
||
81 | |||
82 | TESTLDFLAGS := -lm -Wl,--whole-archive -l$(COMPONENT) -Wl,--no-whole-archive $(TESTLDFLAGS) |
||
83 | |||
84 | include $(NSBUILD)/Makefile.top |
||
85 | |||
86 | # Extra installation rules |
||
87 | I := /include |
||
88 | INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/libnsfb.h |
||
89 | INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/libnsfb_plot.h |
||
90 | INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/libnsfb_plot_util.h |
||
91 | INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/libnsfb_event.h |
||
92 | INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/libnsfb_cursor.h |
||
93 | INSTALL_ITEMS := $(INSTALL_ITEMS) /lib/pkgconfig:lib$(COMPONENT).pc.in |
||
94 | INSTALL_ITEMS := $(INSTALL_ITEMS) /lib:$(OUTPUT)1.3> |