Commit e6cc90bf authored by Dmitry Safonov's avatar Dmitry Safonov Committed by Pavel Emelyanov

build/feature-test: simplify adding a new feature

To add a new feature test - add it to FEATURES_LIST.

Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent e85638fd
...@@ -4,7 +4,7 @@ include ../scripts/feature-tests.mak ...@@ -4,7 +4,7 @@ include ../scripts/feature-tests.mak
CONFIG_HEADER := include/config.h CONFIG_HEADER := include/config.h
ifeq ($(call try-cc,$(LIBBSD_DEV_TEST),-lbsd),y) ifeq ($(call try-cc,$(FEATURE_TEST_LIBBSD_DEV),-lbsd),y)
LIBS += -lbsd LIBS += -lbsd
DEFINES += -DCONFIG_HAS_LIBBSD DEFINES += -DCONFIG_HAS_LIBBSD
endif endif
...@@ -14,49 +14,38 @@ ifeq ($(call pkg-config-check,libselinux),y) ...@@ -14,49 +14,38 @@ ifeq ($(call pkg-config-check,libselinux),y)
DEFINES += -DCONFIG_HAS_SELINUX DEFINES += -DCONFIG_HAS_SELINUX
endif endif
$(CONFIG_HEADER): include/config-base.h FEATURES_LIST := TCP_REPAIR PRLIMIT STRLCPY STRLCAT PEEKSIGINFO_ARGS \
$(call msg-gen, $@) SETPROCTITLE_INIT MEMFD
$(Q) @echo '#ifndef __CR_CONFIG_H__' > $@
$(Q) @echo '#define __CR_CONFIG_H__' >> $@ # $1 - config name
$(Q) @echo '' >> $@ define gen-feature-test
$(Q) @echo '#include "config-base.h"' >> $@ ifeq ($$(call try-cc,$$(FEATURE_TEST_$(1)),$$(LIBS),$$(DEFINES)),y)
$(Q) @echo '' >> $@ $(Q) @echo '#define CONFIG_HAS_$(1)' >> $$@
ifeq ($(call try-cc,$(TCP_REPAIR_TEST),,$(DEFINES)),y) $(Q) @echo '' >> $$@
$(Q) @echo '#define CONFIG_HAS_TCP_REPAIR' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(PRLIMIT_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_PRLIMIT' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(STRLCPY_TEST),$(LIBS),$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_STRLCPY' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(STRLCAT_TEST),$(LIBS),$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_STRLCAT' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(PTRACE_PEEKSIGINFO_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_PEEKSIGINFO_ARGS' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(VDSO),y)
$(Q) @echo '#define CONFIG_VDSO' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(SETPROCTITLE_INIT_TEST),-lbsd,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_SETPROCTITLE_INIT' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(MEMFD_TEST),),y)
$(Q) @echo '#define CONFIG_HAS_MEMFD' >> $@
endif
ifeq ($(piegen-y),y)
$(Q) @echo '#define CONFIG_PIEGEN' >> $@
$(Q) @echo '' >> $@
endif endif
$(Q) @echo '#endif /* __CR_CONFIG_H__ */' >> $@ endef
define config-header-rule
$(CONFIG_HEADER): include/config-base.h
$$(call msg-gen, $$@)
$(Q) @echo '#ifndef __CR_CONFIG_H__' > $$@
$(Q) @echo '#define __CR_CONFIG_H__' >> $$@
$(Q) @echo '' >> $$@
$(Q) @echo '#include "config-base.h"' >> $$@
$(Q) @echo '' >> $$@
$(call map,gen-feature-test,$(FEATURES_LIST))
ifeq ($$(VDSO),y)
$(Q) @echo '#define CONFIG_VDSO' >> $$@
$(Q) @echo '' >> $$@
endif
ifeq ($$(piegen-y),y)
$(Q) @echo '#define CONFIG_PIEGEN' >> $$@
$(Q) @echo '' >> $$@
endif
$(Q) @echo '#endif /* __CR_CONFIG_H__ */' >> $$@
endef
$(eval $(config-header-rule))
config: $(CONFIG_HEADER) config: $(CONFIG_HEADER)
PHONY += config PHONY += config
define TCP_REPAIR_TEST define FEATURE_TEST_TCP_REPAIR
#include <netinet/tcp.h> #include <netinet/tcp.h>
...@@ -12,7 +12,7 @@ int main(void) ...@@ -12,7 +12,7 @@ int main(void)
} }
endef endef
define PRLIMIT_TEST define FEATURE_TEST_PRLIMIT
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
...@@ -30,7 +30,7 @@ int main(void) ...@@ -30,7 +30,7 @@ int main(void)
} }
endef endef
define LIBBSD_DEV_TEST define FEATURE_TEST_LIBBSD_DEV
#include <bsd/string.h> #include <bsd/string.h>
int main(void) int main(void)
...@@ -39,7 +39,7 @@ int main(void) ...@@ -39,7 +39,7 @@ int main(void)
} }
endef endef
define STRLCPY_TEST define FEATURE_TEST_STRLCPY
#include <string.h> #include <string.h>
...@@ -53,7 +53,7 @@ int main(void) ...@@ -53,7 +53,7 @@ int main(void)
} }
endef endef
define STRLCAT_TEST define FEATURE_TEST_STRLCAT
#include <string.h> #include <string.h>
...@@ -67,7 +67,7 @@ int main(void) ...@@ -67,7 +67,7 @@ int main(void)
} }
endef endef
define PTRACE_PEEKSIGINFO_TEST define FEATURE_TEST_PTRACE_PEEKSIGINFO
#include <sys/ptrace.h> #include <sys/ptrace.h>
...@@ -80,7 +80,7 @@ int main(void) ...@@ -80,7 +80,7 @@ int main(void)
endef endef
define SETPROCTITLE_INIT_TEST define FEATURE_TEST_SETPROCTITLE_INIT
#include <bsd/unistd.h> #include <bsd/unistd.h>
...@@ -93,7 +93,7 @@ int main(int argc, char *argv[], char *envp[]) ...@@ -93,7 +93,7 @@ int main(int argc, char *argv[], char *envp[])
endef endef
define MEMFD_TEST define FEATURE_TEST_MEMFD
#include <unistd.h> #include <unistd.h>
#include <sys/syscall.h> #include <sys/syscall.h>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment