|
9 | 9 | WITH_DOC = no |
10 | 10 | DOC = ../dlang.org |
11 | 11 |
|
| 12 | +ifneq (,$(findstring gdmd,$(notdir $(DMD)))) |
| 13 | +DC_IS_GDC=1 |
| 14 | +endif |
| 15 | + |
12 | 16 | # Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile from dmd |
13 | 17 | $(shell [ ! -d $(DMD_DIR) ] && git clone --depth=1 https://github.com/dlang/dmd $(DMD_DIR)) |
14 | 18 | include $(DMD_DIR)/compiler/src/osmodel.mak |
@@ -52,7 +56,12 @@ DOC_TOOLS = \ |
52 | 56 | TEST_TOOLS = \ |
53 | 57 | $(ROOT)/rdmd_test$(DOTEXE) |
54 | 58 |
|
55 | | -all: $(TOOLS) $(CURL_TOOLS) $(ROOT)/dustmite$(DOTEXE) |
| 59 | +all = $(TOOLS) $(CURL_TOOLS) |
| 60 | +ifndef DC_IS_GDC |
| 61 | +# dustmite fails to build with gdc: https://github.com/dlang/tools/pull/476 |
| 62 | +all += $(ROOT)/dustmite$(DOTEXE) |
| 63 | +endif |
| 64 | +all: $(all) |
56 | 65 |
|
57 | 66 | rdmd: $(ROOT)/rdmd$(DOTEXE) |
58 | 67 | ddemangle: $(ROOT)/ddemangle$(DOTEXE) |
@@ -87,6 +96,7 @@ install: $(TOOLS) $(CURL_TOOLS) $(ROOT)/dustmite$(DOTEXE) |
87 | 96 | clean: |
88 | 97 | rm -rf $(GENERATED) |
89 | 98 |
|
| 99 | +$(ROOT)/tests_extractor$(DOTEXE): override DFLAGS += -allinst # For gdmd |
90 | 100 | $(ROOT)/tests_extractor$(DOTEXE): tests_extractor.d |
91 | 101 | mkdir -p $(ROOT) |
92 | 102 | DFLAGS="$(DFLAGS)" $(DUB) build \ |
@@ -124,19 +134,29 @@ ifeq (osx,$(OS)) |
124 | 134 | # /tmp is a symlink on Mac, and rdmd_test.d doesn't like it |
125 | 135 | test_rdmd: export TMPDIR=$(shell cd /tmp && pwd -P) |
126 | 136 | endif |
127 | | -test_rdmd: $(ROOT)/rdmd_test$(DOTEXE) $(RDMD_TEST_EXECUTABLE) |
| 137 | + |
| 138 | +all_rdmd_tests = ut |
| 139 | +ifndef DC_IS_GDC |
| 140 | +# rdmd_test.d fails with gdmd, see: https://github.com/dlang/tools/pull/469 |
| 141 | +all_rdmd_tests += it |
| 142 | +endif |
| 143 | +test_rdmd: $(all_rdmd_tests:%=test_rdmd_%) |
| 144 | + |
| 145 | +test_rdmd_ut: rdmd.d |
| 146 | + $(DMD) $(DFLAGS) -unittest -main -run rdmd.d |
| 147 | + |
| 148 | +test_rdmd_it: $(ROOT)/rdmd_test$(DOTEXE) $(RDMD_TEST_EXECUTABLE) |
128 | 149 | $< $(RDMD_TEST_EXECUTABLE) $(MODEL_FLAG) \ |
129 | 150 | --rdmd-default-compiler=$(RDMD_TEST_DEFAULT_COMPILER) \ |
130 | 151 | --test-compilers=$(RDMD_TEST_COMPILERS) \ |
131 | 152 | $(VERBOSE_RDMD_TEST_FLAGS) |
132 | | - $(DMD) $(DFLAGS) -unittest -main -run rdmd.d |
133 | 153 |
|
134 | 154 | test: test_tests_extractor test_rdmd |
135 | 155 |
|
136 | 156 | ifeq ($(WITH_DOC),yes) |
137 | 157 | all install: $(DOC_TOOLS) |
138 | 158 | endif |
139 | 159 |
|
140 | | -.PHONY: all install clean |
| 160 | +.PHONY: all install clean test_rdmd test_rdmd_ut test_rdmd_it |
141 | 161 |
|
142 | 162 | .DELETE_ON_ERROR: # GNU Make directive (delete output files on error) |
0 commit comments