diff options
Diffstat (limited to 'tools/build')
-rw-r--r-- | tools/build/Makefile.feature | 2 | ||||
-rw-r--r-- | tools/build/feature/Makefile | 10 | ||||
-rw-r--r-- | tools/build/feature/test-cxx.cpp | 15 |
3 files changed, 25 insertions, 2 deletions
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature index a120c6b755a9..ae52e029dd22 100644 --- a/tools/build/Makefile.feature +++ b/tools/build/Makefile.feature | |||
@@ -7,7 +7,7 @@ endif | |||
7 | 7 | ||
8 | feature_check = $(eval $(feature_check_code)) | 8 | feature_check = $(eval $(feature_check_code)) |
9 | define feature_check_code | 9 | define feature_check_code |
10 | feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) $(OUTPUT_FEATURES)test-$1.bin >/dev/null 2>/dev/null && echo 1 || echo 0) | 10 | feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" CXXFLAGS="$(EXTRA_CXXFLAGS) $(FEATURE_CHECK_CXXFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) $(OUTPUT_FEATURES)test-$1.bin >/dev/null 2>/dev/null && echo 1 || echo 0) |
11 | endef | 11 | endef |
12 | 12 | ||
13 | feature_set = $(eval $(feature_set_code)) | 13 | feature_set = $(eval $(feature_set_code)) |
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile index a0b29a311816..ac9c477a2a48 100644 --- a/tools/build/feature/Makefile +++ b/tools/build/feature/Makefile | |||
@@ -46,11 +46,13 @@ FILES= \ | |||
46 | test-lzma.bin \ | 46 | test-lzma.bin \ |
47 | test-bpf.bin \ | 47 | test-bpf.bin \ |
48 | test-get_cpuid.bin \ | 48 | test-get_cpuid.bin \ |
49 | test-sdt.bin | 49 | test-sdt.bin \ |
50 | test-cxx.bin | ||
50 | 51 | ||
51 | FILES := $(addprefix $(OUTPUT),$(FILES)) | 52 | FILES := $(addprefix $(OUTPUT),$(FILES)) |
52 | 53 | ||
53 | CC := $(CROSS_COMPILE)gcc -MD | 54 | CC := $(CROSS_COMPILE)gcc -MD |
55 | CXX := $(CROSS_COMPILE)g++ -MD | ||
54 | PKG_CONFIG := $(CROSS_COMPILE)pkg-config | 56 | PKG_CONFIG := $(CROSS_COMPILE)pkg-config |
55 | 57 | ||
56 | all: $(FILES) | 58 | all: $(FILES) |
@@ -58,6 +60,9 @@ all: $(FILES) | |||
58 | __BUILD = $(CC) $(CFLAGS) -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS) | 60 | __BUILD = $(CC) $(CFLAGS) -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS) |
59 | BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1 | 61 | BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1 |
60 | 62 | ||
63 | __BUILDXX = $(CXX) $(CXXFLAGS) -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS) | ||
64 | BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1 | ||
65 | |||
61 | ############################### | 66 | ############################### |
62 | 67 | ||
63 | $(OUTPUT)test-all.bin: | 68 | $(OUTPUT)test-all.bin: |
@@ -217,6 +222,9 @@ $(OUTPUT)test-bpf.bin: | |||
217 | $(OUTPUT)test-sdt.bin: | 222 | $(OUTPUT)test-sdt.bin: |
218 | $(BUILD) | 223 | $(BUILD) |
219 | 224 | ||
225 | $(OUTPUT)test-cxx.bin: | ||
226 | $(BUILDXX) -std=gnu++11 | ||
227 | |||
220 | -include $(OUTPUT)*.d | 228 | -include $(OUTPUT)*.d |
221 | 229 | ||
222 | ############################### | 230 | ############################### |
diff --git a/tools/build/feature/test-cxx.cpp b/tools/build/feature/test-cxx.cpp new file mode 100644 index 000000000000..b1dee9a31d6c --- /dev/null +++ b/tools/build/feature/test-cxx.cpp | |||
@@ -0,0 +1,15 @@ | |||
1 | #include <iostream> | ||
2 | #include <memory> | ||
3 | |||
4 | static void print_str(std::string s) | ||
5 | { | ||
6 | std::cout << s << std::endl; | ||
7 | } | ||
8 | |||
9 | int main() | ||
10 | { | ||
11 | std::string s("Hello World!"); | ||
12 | print_str(std::move(s)); | ||
13 | std::cout << "|" << s << "|" << std::endl; | ||
14 | return 0; | ||
15 | } | ||