Commit a27c0117 authored by Luca Ceresoli's avatar Luca Ceresoli Committed by Thomas Petazzoni
Browse files

exim: allow using a custom configuration file



exim has lots of options configurable before the build process. It's not
useful to have all of them exposed in Buildroot, yet users may need to tweak
them.

Allow the user to pass an entire configuration file to make exim totally
reconfigurable without bloating the Buildroot menus.

[Thomas: remove "for exim" from Config.in options prompts.]

Signed-off-by: default avatarLuca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent fbcfbf66
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -8,3 +8,28 @@ config BR2_PACKAGE_EXIM
	  Cambridge for use on Unix systems connected to the Internet.

	  http://www.exim.org/

if BR2_PACKAGE_EXIM

config BR2_PACKAGE_EXIM_CUSTOM_CONFIG
	bool "Use a custom configuration file"
	help
	  By default Buildroot generates configuration file for exim with
	  reasonable settings.
	  Enable this option if you want to override the configuration file
	  generated by Buildroot with a customized file. Then set the path
	  to your configuration file in BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE.

config BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE
	string "Custom configuration file"
	depends on BR2_PACKAGE_EXIM_CUSTOM_CONFIG
	help
	  Specify a file to use as the exim configuration file.

	  This file shall comply with the syntax defined in the exim
	  documentation (http://www.exim.org/docs.html).
	  Buildroot will generate a configuration file composed of the
	  content of the file you provide plus the toolchain-related
	  settings needed for cross-compilation.

endif
+24 −1
Original line number Diff line number Diff line
@@ -30,7 +30,12 @@ define exim-config-add # variable-name, variable-value
	echo "$1=$2" >>$(@D)/Local/Makefile
endef

define EXIM_CONFIGURE_CMDS
define EXIM_USE_CUSTOM_CONFIG_FILE
	$(INSTALL) -m 0644 $(BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE) \
		$(@D)/Local/Makefile
endef

define EXIM_USE_DEFAULT_CONFIG_FILE
	$(INSTALL) -m 0644 $(@D)/src/EDITME $(@D)/Local/Makefile
	$(call exim-config-change,BIN_DIRECTORY,/usr/sbin)
	$(call exim-config-change,CONFIGURE_FILE,/etc/exim/configure)
@@ -41,6 +46,9 @@ define EXIM_CONFIGURE_CMDS
	$(call exim-config-change,PCRE_CONFIG,no)
	$(call exim-config-change,HAVE_ICONV,no)
	$(call exim-config-unset,EXIM_MONITOR)
endef

define EXIM_CONFIGURE_TOOLCHAIN
	$(call exim-config-add,CC,$(TARGET_CC))
	$(call exim-config-add,CFLAGS,$(TARGET_CFLAGS))
	$(call exim-config-add,AR,$(TARGET_AR) cq)
@@ -49,6 +57,21 @@ define EXIM_CONFIGURE_CMDS
	$(call exim-config-add,HOSTCFLAGS,$(HOSTCFLAGS))
endef

ifeq ($(BR2_PACKAGE_EXIM_CUSTOM_CONFIG),y)
ifeq ($(call qstrip,$(BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE)),)
$(error No exim configuration file specified, check your BR2_PACKAGE_EXIM_CUSTOM_CONFIG_FILE setting)
endif
define EXIM_CONFIGURE_CMDS
	$(EXIM_USE_CUSTOM_CONFIG_FILE)
	$(EXIM_CONFIGURE_TOOLCHAIN)
endef
else # CUSTOM_CONFIG
define EXIM_CONFIGURE_CMDS
	$(EXIM_USE_DEFAULT_CONFIG_FILE)
	$(EXIM_CONFIGURE_TOOLCHAIN)
endef
endif # CUSTOM_CONFIG

# exim needs a bit of love to build statically
ifeq ($(BR2_PREFER_STATIC_LIB),y)
EXIM_STATIC_FLAGS = LFLAGS="-pthread --static"