#
# NetSurf default build setup
#
#
# | WARNING: You should NOT be editing this file.
# |
# |          If you want to configure your build, create a 'Makefile.config'
# |          file with 'override' statements to override the settings here.
# |          Follow the example in 'Makefile.config.example'.
#
#
# This file should be treated as INVIOLATE and only altered to alter
# the defaults by a core developer. If you wish to configure the build
# of NetSurf then instead please create a file called Makefile.config
# and simply override the statements you require in that.  Remember
# that Makefile.config cannot override the TARGET. That must be set on
# the commandline. i.e. 'make TARGET=framebuffer' However
# Makefile.config can use the TARGET variable to control what to set
# the configuration options to.
#
# Some of these options support an 'AUTO' option, as well as YES and NO.
# When an option is set to AUTO, the Makefile will attempt to detect if that
# feature is available, enabling it if possible.
#
# Options marked "highly recommended" have a severe impact on NetSurf's
# use as a web browser and should be set to YES unless there is a particularly
# good reason not to.
#

# ----------------------------------------------------------------------------
# Options relating to all versions of NetSurf
# ----------------------------------------------------------------------------

# Enable NetSurf's use of libcurl for fetching over http(s)
# Valid options: YES, NO, AUTO				  (highly recommended)
NETSURF_USE_CURL := YES

# Enable NetSurf's use of openssl for processing certificates
# Valid options: YES, NO, AUTO
NETSURF_USE_OPENSSL := AUTO

# Enable NetSurf's use of libnsbmp for displaying BMPs and ICOs
# Valid options: YES, NO, AUTO
NETSURF_USE_BMP := AUTO

# Enable NetSurf's use of libnsgif for displaying GIFs
# Valid options: YES, NO, AUTO				  (highly recommended)
NETSURF_USE_GIF := AUTO

# Enable NetSurf's use of libjpeg for displaying JPEGs
# Valid options: YES, NO				  (highly recommended)
NETSURF_USE_JPEG := YES

# Enable NetSurf's use of libjxl for displaying JPEGXLs
# Valid options: YES, NO, AUTO				  (highly recommended)
NETSURF_USE_JPEGXL := AUTO

# Enable NetSurf's use of libpng for displaying PNGs.
# Valid options: YES, NO, AUTO	                          (highly recommended)
NETSURF_USE_PNG := AUTO

# Enable NetSurf's use of gstreamer for displaying videos
# Valid options: YES, NO
NETSURF_USE_VIDEO := NO

# Enable NetSurf's use of libwebp for displaying WEBPs.
# Valid options: YES, NO, AUTO
NETSURF_USE_WEBP := AUTO

# Enable NetSurf's use of duktape for javascript
# Valid options: YES, NO
NETSURF_USE_DUKTAPE := YES

# Enable NetSurf's use of libharu for PDF export and GTK printing support.
# There is no auto-detection available for this, as it does not have a
# pkg-config file.
# Valid options: YES, NO
NETSURF_USE_HARU_PDF := NO

# Enable the use of the Public suffix library to detect supercookies
# Valid options: YES, NO, AUTO	                          (highly recommended)
NETSURF_USE_NSPSL := AUTO

# Enable use of filtered logging library
# Valid options: YES, NO, AUTO	                          (highly recommended)
NETSURF_USE_NSLOG := AUTO
# The minimum logging level *compiled* into netsurf
# Valid options are: DEEPDEBUG, DEBUG, VERBOSE, INFO, WARNING, ERROR, CRITICAL
NETSURF_LOG_LEVEL := VERBOSE
# The log filter set during log initialisation before options are available
NETSURF_BUILTIN_LOG_FILTER := "(level:WARNING || cat:jserrors)"
# The log filter set during log initialisation before options are available
# if the logging level is set to verbose
NETSURF_BUILTIN_VERBOSE_FILTER := "(level:VERBOSE || cat:jserrors)"

# Force using glibc internal iconv implementation instead of external libiconv
# Valid options: YES, NO
NETSURF_USE_LIBICONV_PLUG := YES

# Enable use of utf8proc for international domain name processing
# Valid options: YES, NO, AUTO	                          (highly recommended)
NETSURF_USE_UTF8PROC := YES

# Enable stripping the NetSurf binary
# Valid options: YES, NO
NETSURF_STRIP_BINARY := NO

# Template used for constructing the User Agent: string.  The first
# replacement is OS, the next two are major/minor version.
# Note that the "Mozilla/5.0" prefix is a requirement to enable modern
# web standards on many websites. It should not be removed or modified.
NETSURF_UA_FORMAT_STRING := "Mozilla/5.0 (%s) NetSurf/%d.%d"

# Default home page, if one is not defined by the user.  Note that this
# option does not apply to the RISC OS version, as it has its own local
# home page, and it can be changed by editing the end of gui_init2() in
# riscos/gui.c
NETSURF_HOMEPAGE := "about:welcome"

# Enable building the source object cache filesystem based backing store.
# implementation.
# Valid options: YES, NO
NETSURF_FS_BACKING_STORE := NO

# Enable the ASAN and UBSAN flags regardless of targets
NETSURF_USE_SANITIZERS := NO
# But recover after sanitizer failure
NETSURF_RECOVER_SANITIZERS := YES

# Initial CFLAGS. Optimisation level etc. tend to be target specific.
CFLAGS :=

# Initial CXXFLAGS. Optimisation level etc. tend to be target specific.
CXXFLAGS :=

# Default installation/execution prefix
PREFIX ?= /usr/local


# ----------------------------------------------------------------------------
# Option overrides determined by HOST relating to all versions of NetSurf
# ----------------------------------------------------------------------------

# Configuration overrides for Mac OS X
ifeq ($(HOST),macosx)
    NETSURF_USE_LIBICONV_PLUG := NO
    NETSURF_USE_HARU_PDF := NO
endif

# Configuration overrides for OpenBSD
ifeq ($(HOST),OpenBSD)
    NETSURF_USE_LIBICONV_PLUG := NO
    NETSURF_USE_HARU_PDF := NO
endif

# Configuration overrides for FreeBSD
ifeq ($(HOST),FreeBSD)
    NETSURF_USE_LIBICONV_PLUG := NO
    NETSURF_USE_HARU_PDF := NO
endif


# ----------------------------------------------------------------------------
# Option overrides determined by specific TARGET
# ----------------------------------------------------------------------------
-include frontends/$(TARGET)/Makefile.defaults


# ----------------------------------------------------------------------------
# Detect double inclusion
# ----------------------------------------------------------------------------
ifneq ($(MAKEFILE_DEFAULTS_FINISHED),)
$(error Makefile.defaults has been double-included.  If you did something utterly brain-dead such as copying Makefile.defaults to Makefile.config then you deserve all the pain you can imagine.  Do NOT do that.  Why not read the comments at the top of Makefile.defaults.  They are there to help you, you numpty)
endif
MAKEFILE_DEFAULTS_FINISHED=yes
