When TableGen finds an error in the SparcV9.td file, it exits with a non-zero
authorMisha Brukman <brukman+llvm@gmail.com>
Thu, 29 May 2003 05:29:22 +0000 (05:29 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Thu, 29 May 2003 05:29:22 +0000 (05:29 +0000)
exit code. This, in turn, makes an empty file SparcV9CodeEmitter.inc, and only
much later, produces a link error because the key function that TableGen creates
isn't found.

Using a temporary file in the middle forces a good .INC file to be generated by
TableGen, and it will keep trying until you fix the input file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6392 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/Makefile

index 96923f9865f114f97d0bd949c1a1c4a39a36dbd8..8b946333c1ca024f80ac14fe7ef3e8351c1ed223 100644 (file)
@@ -34,9 +34,12 @@ $(BUILD_ROOT)/Depend/Sparc.burm.d: $(BUILD_ROOT)/Depend/.dir
 
 SparcV9CodeEmitter.cpp: SparcV9CodeEmitter.inc
 
+TEMP_EMITTER_INC = _temp_emitter.inc
+
 SparcV9CodeEmitter.inc: SparcV9.td
        @echo "TableGen-erating $@"
-       cpp -P SparcV9.td | tblgen -gen-emitter > SparcV9CodeEmitter.inc
+       cpp -P SparcV9.td | tblgen -gen-emitter > $(TEMP_EMITTER_INC) 
+       mv -f $(TEMP_EMITTER_INC) SparcV9CodeEmitter.inc
 
 clean::
        rm -f SparcV9CodeEmitter.inc