Subversion Repositories Kolibri OS

Rev

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)
94
INSTALL_ITEMS := $(INSTALL_ITEMS) /lib:$(OUTPUT)