summaryrefslogtreecommitdiff
path: root/gtk/Makefile.target
blob: ef9c979782678aced98a1a39ee2886f1b82a7e75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# ----------------------------------------------------------------------------
# GTK flag setup (using pkg-config)
# ----------------------------------------------------------------------------


  LDFLAGS += $(shell $(PKG_CONFIG) --libs libxml-2.0 libcurl libhubbub libcss)
  LDFLAGS += $(shell $(PKG_CONFIG) --libs openssl)

  # define additional CFLAGS and LDFLAGS requirements for pkg-configed libs here
  NETSURF_FEATURE_RSVG_CFLAGS := -DWITH_RSVG
  NETSURF_FEATURE_NSSVG_CFLAGS := -DWITH_NS_SVG
  NETSURF_FEATURE_ROSPRITE_CFLAGS := -DWITH_NSSPRITE
  NETSURF_FEATURE_BMP_CFLAGS := -DWITH_BMP
  NETSURF_FEATURE_GIF_CFLAGS := -DWITH_GIF
  NETSURF_FEATURE_PNG_CFLAGS := -DWITH_PNG
  NETSURF_FEATURE_WEBP_CFLAGS := -DWITH_WEBP

  # add a line similar to below for each optional pkg-configed lib here
  $(eval $(call pkg_config_find_and_add,RSVG,librsvg-2.0,SVG))
  $(eval $(call pkg_config_find_and_add,NSSVG,libsvgtiny,SVG))
  $(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))
  $(eval $(call pkg_config_find_and_add,PNG,libpng,PNG  ))

  # no pkg-config for this library
  $(eval $(call feature_enabled,WEBP,-DWITH_WEBP,-lwebp -lvpx,WebP (libwebp)))

  GTKCFLAGS := -std=c99 -Dgtk -Dnsgtk \
		-DGTK_DISABLE_DEPRECATED \
		-D_BSD_SOURCE \
		-D_XOPEN_SOURCE=600 \
		-D_POSIX_C_SOURCE=200112L \
		-D_NETBSD_SOURCE \
		-DGTK_RESPATH=\"$(NETSURF_GTK_RESOURCES)\" \
		$(WARNFLAGS) -I. -g \
		$(shell $(PKG_CONFIG) --cflags libglade-2.0 gtk+-2.0) \
		$(shell $(PKG_CONFIG) --cflags libhubbub libcurl) \
		$(shell $(PKG_CONFIG) --cflags openssl) \
		$(shell xml2-config --cflags)

  GTKLDFLAGS := $(shell $(PKG_CONFIG) --cflags --libs libglade-2.0 gtk+-2.0 gthread-2.0 gmodule-2.0 lcms)

  CFLAGS += $(GTKCFLAGS)
  LDFLAGS += $(GTKLDFLAGS)

  # ---------------------------------------------------------------------------
  # Windows flag setup
  # ---------------------------------------------------------------------------

  ifeq ($(HOST),Windows_NT)
    CFLAGS += -U__STRICT_ANSI__
  endif

# ----------------------------------------------------------------------------
# Source file setup
# ----------------------------------------------------------------------------

# S_GTK are sources purely for the GTK build
S_GTK := font_pango.c gtk_bitmap.c gtk_gui.c gtk_schedule.c		\
	gtk_thumbnail.c gtk_plotters.c gtk_treeview.c gtk_scaffolding.c	\
	gtk_completion.c gtk_login.c gtk_throbber.c gtk_selection.c	\
	gtk_history.c gtk_window.c gtk_filetype.c gtk_download.c	\
	gtk_menu.c gtk_print.c gtk_save.c gtk_search.c gtk_tabs.c	\
	gtk_theme.c gtk_toolbar.c sexy_icon_entry.c gtk_compat.c	\
	gtk_cookies.c gtk_hotlist.c					\
	$(addprefix dialogs/,gtk_options.c gtk_about.c gtk_source.c)
S_GTK := $(addprefix gtk/,$(S_GTK)) $(addprefix utils/,container.c)
# code in utils/container.ch is non-universal it seems

SOURCES := $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_PDF) $(S_GTK)
EXETARGET := nsgtk