mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-27 06:19:42 +03:00
158 lines
6.4 KiB
Makefile
158 lines
6.4 KiB
Makefile
# ----------------------------------------------------------------------------
|
|
# Framebuffer target setup
|
|
# ----------------------------------------------------------------------------
|
|
|
|
|
|
$(eval $(call feature_enabled,MNG,-DWITH_MNG,-lmng,PNG/MNG/JNG (libmng)))
|
|
$(eval $(call feature_enabled,PNG,-DWITH_PNG,-lpng,PNG (libpng) ))
|
|
|
|
ifeq ($(NETSURF_FB_FONTLIB),freetype)
|
|
CFLAGS += -DFB_USE_FREETYPE $(shell freetype-config --cflags)
|
|
LDFLAGS += $(shell freetype-config --libs)
|
|
endif
|
|
|
|
# define additional CFLAGS and LDFLAGS requirements for pkg-configed libs here
|
|
NETSURF_FEATURE_RSVG_CFLAGS := -DWITH_RSVG
|
|
NETSURF_FEATURE_ROSPRITE_CFLAGS := -DWITH_NSSPRITE
|
|
NETSURF_FEATURE_HUBBUB_CFLAGS := -DWITH_HUBBUB
|
|
NETSURF_FEATURE_BMP_CFLAGS := -DWITH_BMP
|
|
NETSURF_FEATURE_GIF_CFLAGS := -DWITH_GIF
|
|
|
|
CFLAGS += -Dnsframebuffer
|
|
|
|
#resource path
|
|
CFLAGS += '-DNETSURF_FB_RESPATH="$(NETSURF_FB_RESPATH_$(NETSURF_FB_FRONTEND))"'
|
|
|
|
# compile time font locations
|
|
CFLAGS += '-DNETSURF_FB_FONTPATH="$(NETSURF_FB_FONTPATH)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_SANS_SERIF="$(NETSURF_FB_FONT_SANS_SERIF)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_SANS_SERIF_BOLD="$(NETSURF_FB_FONT_SANS_SERIF_BOLD)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_SANS_SERIF_ITALIC="$(NETSURF_FB_FONT_SANS_SERIF_ITALIC)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_SANS_SERIF_ITALIC_BOLD="$(NETSURF_FB_FONT_SANS_SERIF_ITALIC_BOLD)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_SERIF="$(NETSURF_FB_FONT_SERIF)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_SERIF_BOLD="$(NETSURF_FB_FONT_SERIF_BOLD)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_MONOSPACE="$(NETSURF_FB_FONT_MONOSPACE)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_MONOSPACE_BOLD="$(NETSURF_FB_FONT_MONOSPACE_BOLD)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_CURSIVE="$(NETSURF_FB_FONT_CURSIVE)"'
|
|
CFLAGS += '-DNETSURF_FB_FONT_FANTASY="$(NETSURF_FB_FONT_FANTASY)"'
|
|
|
|
$(eval $(call pkg_config_find_and_add,ROSPRITE,librosprite,Sprite))
|
|
$(eval $(call pkg_config_find_and_add,BMP,libnsbmp,BMP))
|
|
$(eval $(call pkg_config_find_and_add,GIF,libnsgif,GIF))
|
|
|
|
CFLAGS += -std=c99 -g -I. -Dsmall $(WARNFLAGS) \
|
|
-D_BSD_SOURCE \
|
|
-D_XOPEN_SOURCE=600 \
|
|
-D_POSIX_C_SOURCE=200112L \
|
|
$(shell $(PKG_CONFIG) --cflags libnsfb libhubbub libcss openssl) \
|
|
$(shell xml2-config --cflags)
|
|
|
|
LDFLAGS += -lm -Wl,--whole-archive $(shell $(PKG_CONFIG) --libs libnsfb) -Wl,--no-whole-archive
|
|
|
|
ifeq ($(HOST),mint)
|
|
# freemint does not support pkg-config for libcurl
|
|
CFLAGS += $(shell curl-config --cflags)
|
|
|
|
LDFLAGS += $(shell curl-config --libs)
|
|
LDFLAGS += $(shell $(PKG_CONFIG) --libs libhubbub openssl libcss)
|
|
# xml-config returns -lsocket which is not needed and does not
|
|
# exist on all systems. because of that - hardcoded reference to
|
|
# libxml-2.0 here.
|
|
LDFLAGS += -L/usr/lib/ -lz -liconv
|
|
LDFLAGS += -lm
|
|
else
|
|
CFLAGS += $(shell $(PKG_CONFIG) --cflags libcurl)
|
|
|
|
LDFLAGS += $(shell $(PKG_CONFIG) --libs libxml-2.0 libcurl libdom openssl)
|
|
LDFLAGS += $(shell $(PKG_CONFIG) --libs libcss)
|
|
endif
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# built-in resource setup
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# We make convert_image depend on fb_bitmap.h so that if we change
|
|
# that header, we get new images built just in case.
|
|
$(TOOLROOT)/convert_image: $(TOOLROOT)/created framebuffer/convert_image.c framebuffer/fbtk.h
|
|
$(VQ)echo " HOST CC: $@"
|
|
$(Q)$(HOST_CC) -o $@ framebuffer/convert_image.c -lpng
|
|
|
|
FB_IMAGE_left_arrow := framebuffer/res/icons/back.png
|
|
FB_IMAGE_right_arrow := framebuffer/res/icons/forward.png
|
|
FB_IMAGE_reload := framebuffer/res/icons/reload.png
|
|
FB_IMAGE_stop_image := framebuffer/res/icons/stop.png
|
|
FB_IMAGE_history_image := framebuffer/res/icons/history.png
|
|
|
|
FB_IMAGE_left_arrow_g := framebuffer/res/icons/back_g.png
|
|
FB_IMAGE_right_arrow_g := framebuffer/res/icons/forward_g.png
|
|
FB_IMAGE_reload_g := framebuffer/res/icons/reload_g.png
|
|
FB_IMAGE_stop_image_g := framebuffer/res/icons/stop_g.png
|
|
FB_IMAGE_history_image_g := framebuffer/res/icons/history_g.png
|
|
|
|
FB_IMAGE_scrolll := framebuffer/res/icons/scrolll.png
|
|
FB_IMAGE_scrollr := framebuffer/res/icons/scrollr.png
|
|
FB_IMAGE_scrollu := framebuffer/res/icons/scrollu.png
|
|
FB_IMAGE_scrolld := framebuffer/res/icons/scrolld.png
|
|
|
|
|
|
FB_IMAGE_pointer_image := framebuffer/res/pointers/default.png
|
|
FB_IMAGE_hand_image := framebuffer/res/pointers/point.png
|
|
FB_IMAGE_caret_image := framebuffer/res/pointers/caret.png
|
|
FB_IMAGE_menu_image := framebuffer/res/pointers/menu.png
|
|
FB_IMAGE_progress_image := framebuffer/res/pointers/progress.png
|
|
FB_IMAGE_move_image := framebuffer/res/pointers/move.png
|
|
|
|
FB_IMAGE_throbber0 := framebuffer/res/throbber/throbber0.png
|
|
FB_IMAGE_throbber1 := framebuffer/res/throbber/throbber1.png
|
|
FB_IMAGE_throbber2 := framebuffer/res/throbber/throbber2.png
|
|
FB_IMAGE_throbber3 := framebuffer/res/throbber/throbber3.png
|
|
FB_IMAGE_throbber4 := framebuffer/res/throbber/throbber4.png
|
|
FB_IMAGE_throbber5 := framebuffer/res/throbber/throbber5.png
|
|
FB_IMAGE_throbber6 := framebuffer/res/throbber/throbber6.png
|
|
FB_IMAGE_throbber7 := framebuffer/res/throbber/throbber7.png
|
|
FB_IMAGE_throbber8 := framebuffer/res/throbber/throbber8.png
|
|
|
|
# 1: input file
|
|
# 2: output file
|
|
# 3: bitmap name
|
|
define convert_image
|
|
|
|
S_IMAGES += $(2)
|
|
|
|
$(2): $(1) $(TOOLROOT)/convert_image
|
|
$(Q)$(TOOLROOT)/convert_image $(1) $(2) $(3)
|
|
|
|
endef
|
|
|
|
S_IMAGES :=
|
|
|
|
$(eval $(foreach V,$(filter FB_IMAGE_%,$(.VARIABLES)),$(call convert_image,$($(V)),$(OBJROOT)/$(patsubst FB_IMAGE_%,%,$(V)).c,$(patsubst FB_IMAGE_%,%,$(V)))))
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Source file setup
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# S_FRAMEBUFFER are sources purely for the framebuffer build
|
|
S_FRAMEBUFFER := gui.c framebuffer.c tree.c save.c schedule.c \
|
|
thumbnail.c misc.c bitmap.c filetype.c login.c findfile.c \
|
|
localhistory.c system_colour.c clipboard.c
|
|
|
|
S_FRAMEBUFFER_FBTK := fbtk.c event.c fill.c bitmap.c user.c window.c \
|
|
text.c scroll.c osk.c
|
|
|
|
S_FRAMEBUFFER += font_$(NETSURF_FB_FONTLIB).c
|
|
|
|
ifeq ($(NETSURF_FB_FONTLIB),internal)
|
|
S_FRAMEBUFFER += nsfont_regular.c nsfont_italic.c nsfont_bold.c \
|
|
nsfont_italic_bold.c
|
|
endif
|
|
|
|
S_FRAMEBUFFER := $(addprefix framebuffer/,$(S_FRAMEBUFFER)) $(addprefix framebuffer/fbtk/,$(S_FRAMEBUFFER_FBTK))
|
|
|
|
# This is the final source build list
|
|
# Note this is deliberately *not* expanded here as common and image
|
|
# are not yet available
|
|
SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_FRAMEBUFFER) $(S_IMAGES)
|
|
EXETARGET := nsfb$(SUBTARGET)
|