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