seen when doing 'make -j i386-tcc tcc', as explained in the comment.
Unified · Split
| @@ -236,7 +236,13 @@ tcc$(EXESUF): tcc.o $(LIBTCC) · 235 unmodified lines | ||
| 236 | 236 | $S$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) $(LINK_LIBTCC) |
| 237 | 237 | |
| 238 | 238 | # Cross Tiny C Compilers |
| 239 | −%-tcc$(EXESUF): FORCE | |
| 239 | +# (the TCCDEFS_H dependency is only necessary for parallel makes, | |
| 240 | +# ala 'make -j x86_64-tcc i386-tcc tcc', which would create multiple | |
| 241 | +# c2str.exe and tccdefs_.h files in parallel, leading to access errors. | |
| 242 | +# This forces it to be made only once. Make normally tracks multiple paths | |
| 243 | +# to the same goals and only remakes it once, but that doesn't work over | |
| 244 | +# sub-makes like in this target) | |
| 245 | +%-tcc$(EXESUF): $(TCCDEFS_H) FORCE | |
| 240 | 246 | @$(MAKE) --no-print-directory $@ CROSS_TARGET=$* ONE_SOURCE=$(or $(ONE_SOURCE),yes) |
| 241 | 247 | |
| 242 | 248 | $(CROSS_TARGET)-tcc$(EXESUF): $(TCC_FILES) |