diff --git a/package/exim/Config.in b/package/exim/Config.in index a71106b2bb..af54acbbf2 100644 --- a/package/exim/Config.in +++ b/package/exim/Config.in @@ -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 diff --git a/package/exim/exim.mk b/package/exim/exim.mk index 0f9c6af784..2e51a0d9b9 100644 --- a/package/exim/exim.mk +++ b/package/exim/exim.mk @@ -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"