diff --git a/config/meson.build b/config/meson.build
index 9533bd6..4b862b4 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -1,30 +1,74 @@
 # Gather the Configuration data
 
 conf_data = configuration_data()
-conf_data.set('BMCWEB_HTTP_REQ_BODY_LIMIT_MB', get_option('http-body-limit'))
-enable_redfish_query = get_option('insecure-enable-redfish-query')
-conf_data.set10('BMCWEB_INSECURE_ENABLE_QUERY_PARAMS', enable_redfish_query.allowed())
-# enable_redfish_aggregation = get_option('redfish-aggregation')
-# conf_data.set10('BMCWEB_ENABLE_REDFISH_AGGREGATION', enable_redfish_aggregation.allowed())
-insecure_push_style_notification = get_option('insecure-push-style-notification')
-conf_data.set10(
-    'BMCWEB_INSECURE_ENABLE_HTTP_PUSH_STYLE_EVENTING',
-    insecure_push_style_notification.allowed(),
-)
+
+feature_options = [
+    'basic-auth',
+    'cookie-auth',
+    'dns-resolver',
+    'experimental-http2',
+    'experimental-redfish-multi-computer-system',
+    'google-api',
+    'host-serial-socket',
+    'http-body-limit',
+    'https_port',
+    'ibm-management-console',
+    'insecure-disable-auth',
+    'insecure-disable-csrf',
+    'insecure-disable-ssl',
+    'insecure-enable-redfish-query',
+    'insecure-ignore-content-type',
+    'insecure-push-style-notification',
+    'insecure-tftp-update',
+    'kvm',
+    'mutual-tls-auth',
+    'mutual-tls-common-name-parsing',
+    'redfish-aggregation',
+    'redfish-allow-deprecated-power-thermal',
+    'redfish-bmc-journal',
+    'redfish-cpu-log',
+    'redfish-dbus-log',
+    'redfish-dump-log',
+    'redfish-host-logger',
+    'redfish-new-powersubsystem-thermalsubsystem',
+    'redfish-oem-manager-fan-data',
+    'redfish-provisioning-feature',
+    'redfish',
+    'rest',
+    'session-auth',
+    'static-hosting',
+    'tests',
+    'vm-websocket',
+    'xtoken-auth',
+]
+
+string_options = [
+    'dns-resolver',
+    'mutual-tls-common-name-parsing',
+]
+
+int_options = [
+    'http-body-limit',
+    'https_port',
+]
+
+foreach option_key : feature_options
+
+    option_key_config = option_key.to_upper()
+    option_key_config = option_key_config.replace('-', '_')
+
+    message(option_key_config)
+    opt = get_option(option_key)
+    if string_options.contains(option_key)
+    elif int_options.contains(option_key)
+    else
+        opt = opt.allowed().to_string()
+    endif
+    conf_data.set(option_key_config, opt)
+    summary(option_key, opt, section: 'Features')
+endforeach
+
 conf_data.set('MESON_INSTALL_PREFIX', get_option('prefix'))
-conf_data.set('HTTPS_PORT', get_option('https_port'))
-enable_multi_host = get_option('experimental-redfish-multi-computer-system')
-conf_data.set10('BMCWEB_ENABLE_MULTI_HOST', enable_multi_host.allowed())
-enable_http2 = get_option('experimental-http2')
-conf_data.set10('BMCWEB_ENABLE_HTTP2', enable_http2.allowed())
-
-enable_tls = get_option('insecure-disable-ssl')
-conf_data.set10('BMCWEB_ENABLE_TLS', enable_tls.disabled())
-
-conf_data.set10(
-    'BMCWEB_ENABLE_MTLS_COMMON_NAME_PARSING_META',
-    get_option('mutual-tls-common-name-parsing') == 'meta',
-)
 
 conf_data.set10('BMCWEB_VIRTUAL_MEDIA_VM', get_option('vm-websocket').allowed())
 conf_data.set10('BMCWEB_VIRTUAL_MEDIA_NBD', false)
@@ -32,11 +76,11 @@
 # Logging level
 loglvlopt = get_option('bmcweb-logging')
 if get_option('buildtype').startswith('debug') and loglvlopt == 'disabled'
-    # Override logging level as 'debug' if 'bmcweb-logging' is set as 'dsiabled'
+    # Override logging level as 'debug' if 'bmcweb-logging' is set as 'disabled'
     loglvlopt = 'debug'
 endif
 loglvlopt = loglvlopt.to_upper()
-conf_data.set('BMCWEB_LOGGING_LEVEL', loglvlopt)
+conf_data.set('LOGGING_LEVEL', loglvlopt)
 
 conf_h_dep = declare_dependency(
     include_directories: include_directories('.'),
