From 3c129b32212dfe1737cf7e30f041f5ac2b6f322d Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 3 May 2015 14:06:11 +0100 Subject: Improve handling of compiler flags for resource tools with framebuffer --- framebuffer/Makefile.target | 61 ++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 25 deletions(-) (limited to 'framebuffer/Makefile.target') diff --git a/framebuffer/Makefile.target b/framebuffer/Makefile.target index 0431abf69..7b5e85057 100644 --- a/framebuffer/Makefile.target +++ b/framebuffer/Makefile.target @@ -2,17 +2,11 @@ # Framebuffer target setup # ---------------------------------------------------------------------------- -$(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_PNG_CFLAGS := -DWITH_PNG NETSURF_FEATURE_BMP_CFLAGS := -DWITH_BMP NETSURF_FEATURE_GIF_CFLAGS := -DWITH_GIF NETSURF_FEATURE_JS_CFLAGS := -DWITH_JS -DJS_HAS_FILE_OBJECT=0 @@ -36,41 +30,49 @@ 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_enabled,ROSPRITE,librosprite,Sprite)) -$(eval $(call pkg_config_find_and_add_enabled,BMP,libnsbmp,BMP)) -$(eval $(call pkg_config_find_and_add_enabled,GIF,libnsgif,GIF)) -$(eval $(call pkg_config_find_and_add_enabled,MOZJS,mozjs185,JavaScript)) -$(eval $(call pkg_config_find_and_add_enabled,JS,mozilla-js,JavaScript)) - CFLAGS += -std=c99 -g -Dsmall \ -D_BSD_SOURCE \ -D_DEFAULT_SOURCE \ -D_XOPEN_SOURCE=600 \ - -D_POSIX_C_SOURCE=200112L \ - $(shell $(PKG_CONFIG) --cflags libnsfb openssl) + -D_POSIX_C_SOURCE=200112L -LDFLAGS += -lm -Wl,--whole-archive $(shell $(PKG_CONFIG) --libs libnsfb) -Wl,--no-whole-archive +LDFLAGS += -lm +# non optional pkg-configed libs +LDFLAGS += -Wl,--whole-archive +$(eval $(call pkg_config_find_and_add,libnsfb,libnsfb)) +LDFLAGS += -Wl,--no-whole-archive + +$(eval $(call pkg_config_find_and_add,openssl,OpenSSL)) + +# freemint does not support pkg-config for libcurl 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 openssl) - LDFLAGS += -L/usr/lib/ -lz -liconv - LDFLAGS += -lm + LDFLAGS += -L/usr/lib/ -lz -liconv else - CFLAGS += $(shell $(PKG_CONFIG) --cflags libcurl) + $(eval $(call pkg_config_find_and_add,libcurl,Curl )) +endif - LDFLAGS += $(shell $(PKG_CONFIG) --libs libcurl openssl) +# freetype is optional but does not use pkg-config +ifeq ($(NETSURF_FB_FONTLIB),freetype) + CFLAGS += -DFB_USE_FREETYPE $(shell freetype-config --cflags) + LDFLAGS += $(shell freetype-config --libs) endif +# optional pkg configured libraries +$(eval $(call pkg_config_find_and_add_enabled,PNG,libpng,PNG)) +$(eval $(call pkg_config_find_and_add_enabled,ROSPRITE,librosprite,Sprite)) +$(eval $(call pkg_config_find_and_add_enabled,BMP,libnsbmp,BMP)) +$(eval $(call pkg_config_find_and_add_enabled,GIF,libnsgif,GIF)) +$(eval $(call pkg_config_find_and_add_enabled,MOZJS,mozjs185,JavaScript)) +$(eval $(call pkg_config_find_and_add_enabled,JS,mozilla-js,JavaScript)) + # ---------------------------------------------------------------------------- # built-in resource setup # ---------------------------------------------------------------------------- - 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 @@ -107,13 +109,22 @@ FB_IMAGE_throbber6 := framebuffer/res/throbber/throbber6.png FB_IMAGE_throbber7 := framebuffer/res/throbber/throbber7.png FB_IMAGE_throbber8 := framebuffer/res/throbber/throbber8.png +# local compiler flags +ifeq ($(HOST),OpenBSD) + HOST_CFLAGS += $(shell $(PKG_CONFIG) --cflags libpng) + HOST_LDFLAGS += $(shell $(PKG_CONFIG) --libs openssl) +else + HOST_CFLAGS += + HOST_LDFLAGS += -lpng +endif + # Host tool to convert image bitmaps to source code. # # convert_image dependd on fb_bitmap.h so that if we change that # header, we get new images built. $(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 + $(Q)$(HOST_CC) $(HOST_CFLAGS) -o $@ framebuffer/convert_image.c $(HOST_LDFLAGS) # 1: input file # 2: output file -- cgit v1.2.3