
# This makefile includes all default values used to configure AWS. You can
# update variables here or set the corresponding variable on the command
# line. You should not have do change the main makefile.
#
# IMPORTANT: each time you change the definitions here make sure you run
#            $ make setup

##############################################################################
# TARGET platform
#
# TARGET is the name for gprbuild --target option
#
TARGET = $(shell gcc -dumpmachine)

##############################################################################
# AWS will be installed under $(prefix). Update this variable to point to
# the install directory. By default, it is set to the current GNAT root
# directory to have AWS project files automatically available.
#

ifeq ($(TARGET), $(shell gcc -dumpmachine))
prefix = $(dir $(shell which gnatls))..
else
prefix = $(dir $(shell which $(TARGET)-gnatls))..
endif

##############################################################################
# Set to true if the AWS shared runtime must be built. If ENABLE_SHARED is
# set to false only the static version is built. The default value is true if
# the platform supports shared libraries.
#
# Note that all dependents libraries (like XML/Ada) must have been compiled
# and installed as shared libraries if this option is set.
#
# ENABLE_SHARED = [true|false]
#
ENABLE_SHARED=$(shell $(GNAT) make -c -q -p \
                -XTARGET=$(TARGET) -XPRJ_TARGET=$(PRJ_TARGET) \
		-Pconfig/setup/test_shared 2>/dev/null && echo "true")

##############################################################################
# XMLADA optional, needed if you want to build SOAP's AWS support. Set XMLADA
# to true to activate XML/Ada support, you must also set ADA_PROJECT_PATH
# to point to the XML/Ada project files if not installed in the standard
# location.
#
# XMLADA = [true/false]
#
ifeq ($(shell gnat ls -Pxmlada 2>&1 | grep 'project file .* not found'),)
XMLADA = true
else
XMLADA = false
endif

##############################################################################
# LAL optional, needed if you want to build ada2wsdl tool. This tool can be
# used to create a WSDL document from an Ada spec. Set LAL to true to
# activate LAL support. You must also set ADA_PROJECT_PATH to point to the
# LAL project files if not installed in the standard location.
#
# If you activate LAL you also need to activate XMLADA above.
#
# LAL = [true|false]
#
ifeq ($(shell gnat ls -Plibadalang 2>&1 | grep 'project file .* not found'),)
LAL = true
else
LAL = false
endif

##############################################################################
# Zlib mandatory, check if zlib is already installed and recent enought,
# otherwise compile the one coming with AWS.
#
# ZLIB = [true|false]
#
ZLIB	= $(shell $(GNAT) make -q -p \
                  -XTARGET=$(TARGET) -XPRJ_TARGET=$(PRJ_TARGET) \
                  -Pconfig/setup/test_zlib 2>/dev/null \
                  && .build/$(TARGET)/setup/zobj/mzlib \
		  && echo "true")

##############################################################################
# NETLIB, optional. "gnat" option works on GNAT 20 version ans later. If you
# need backward compartibility you can choose either "ipv4" or "ipv6". "ipv4"
# based on GNAT.Sockets functionality without using new functions. "ipv6"
# option ipmlementing IPv6 functions without relation to GNAT.Sockets.
#
# NETLIB = [gnat|ipv6|ipv4]
#
NETLIB	= gnat

##############################################################################
# AWS supports SSL (Secure Socket Layer). To build AWS's with SSL support
# you need to set SOCKET to openssl or gnutls, in this case you must have
# installed the corresponding SSL library on your computer.
#
# SOCKET = [std|openssl|gnutls]
#
SOCKET	= std

##############################################################################
# AWS supports SSL (Secure Socket Layer). To be able to support SSL optionally
# at runtime only when appropriate dynamic libraries is available in search
# path, use this option. This option can be true only when SOCKET option has
# either "openssl" or "gnutls" value. If this option is true, application
# linked with AWS can start even if SSL library not found in dynamic library
# search pathes but runtime exception will be raised in attempt to open secure
# connection.
#
# SSL_DYNAMIC = [true|false]
#
SSL_DYNAMIC = false

##############################################################################
# AWS provides a binding to the LDAP API. This binding will use the standard
# LDAP DLL provided with Windows OS. On GNU/Linux you need to install OpenLDAP
# if it is not already installed. If LDAP is installed on your system you can
# set LDAP=true below.
#
# LDAP = [true|false]
#
LDAP	= false

##############################################################################
# To activate the debug mode just uncomment the variable below. This will
# build AWS with debug information and will output more build information.
#
# DEBUG = [true|false]
#
DEBUG	= true

##############################################################################
# Number of parallel compilations to do.
#
PROCESSORS	= 0

##############################################################################
# HTTP2 server activated
#
SERVER_HTTP2 = $(strip \
                 $(shell sed -ns 's/HTTP2_Activated.*:= *\([a-zA-Z]*\);/\1/p' \
                     src/core/aws-default.ads | tr '[:upper:]' '[:lower:]'))

##############################################################################
# HTTP2 client activated
#
C_HTTP2 = $(shell sed -ns 's/HTTP_Default.* renames *\([a-zA-Z1-9]*\);/\1/p' \
                     src/core/aws-client.ads)

ifeq ($(strip $(C_HTTP2)),HTTPv1)
   CLIENT_HTTP2=false
else
   CLIENT_HTTP2=true
endif

##############################################################################
# Tools used by AWS
#
CP	 	  = cp -p
GNAT		  = gnat
GPRBUILD	  = gprbuild
GPRCLEAN	  = gprclean
GPRINSTALL	  = gprinstall
GPS		  = gps
MKDIR	 	  = mkdir -p
PYTHON            = python
RM	 	  = rm
SED	 	  = sed

##############################################################################
# Load current setup if any
#
-include makefile.setup
#  user setup

##############################################################################
# Compute PRJ_TARGET which is a simplified set for the TARGET value.
# It can be UNIX, Darwin, Windows_NT and vxworks.
#
ifeq ($(strip $(findstring vxworks, $(TARGET))),vxworks)
   PRJ_TARGET=vxworks
else
ifeq ($(strip $(findstring mingw32, $(TARGET))),mingw32)
   PRJ_TARGET=Windows_NT
else
ifeq ($(strip $(findstring darwin, $(TARGET))),darwin)
   PRJ_TARGET=Darwin
else
ifeq ($(strip $(findstring freebsd, $(TARGET))),freebsd)
   PRJ_TARGET=freebsd
else
   PRJ_TARGET=UNIX
endif
endif
endif
endif

ifeq ($(TARGET), $(shell gcc -dumpmachine))
   IS_CROSS=false
   GCC= gcc
else
   IS_CROSS=true
   GCC = $(TARGET)-gcc
endif
