llvm-6502/lib/Target/SparcV9/Makefile
Misha Brukman 3f7b58bca0 When TableGen finds an error in the SparcV9.td file, it exits with a non-zero
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
2003-05-29 05:29:22 +00:00

46 lines
1.2 KiB
Makefile

LEVEL = ../../..
LIBRARYNAME = sparc
ExtraSource = Debug/Sparc.burm.cpp
include $(LEVEL)/Makefile.common
ifdef ENABLE_OPTIMIZED
DEBUG_FLAG =
else
DEBUG_FLAG = -D_DEBUG
endif
Debug/Sparc.burm.cpp: Debug/Sparc.burm Debug/.dir
$(RunBurg) $< -o $@
$(BUILD_ROOT)/Debug/Sparc.burm.o: Debug/Sparc.burm.cpp
$(CompileG) $< -o $@
$(BUILD_ROOT)/Release/Sparc.burm.o: Debug/Sparc.burm.cpp
$(CompileO) $< -o $@
$(BUILD_ROOT)/Profile/Sparc.burm.o: Debug/Sparc.burm.cpp
$(CompileP) $< -o $@
Debug/Sparc.burg.in1 : Sparc.burg.in Debug/.dir
$(CXX) -E -I$(LEVEL)/include $(DEBUG_FLAG) -x c++ $< | sed '/^# /d' | sed 's/Ydefine/#define/' > $@
Debug/Sparc.burm : Debug/Sparc.burg.in1
$(CXX) -E -I$(LEVEL)/include $(DEBUG_FLAG) -x c++ $< | sed '/^# /d' | sed 's/Xinclude/#include/g' | sed 's/Xdefine/#define/g' > $@
$(BUILD_ROOT)/Depend/Sparc.burm.d: $(BUILD_ROOT)/Depend/.dir
touch $@
SparcV9CodeEmitter.cpp: SparcV9CodeEmitter.inc
TEMP_EMITTER_INC = _temp_emitter.inc
SparcV9CodeEmitter.inc: SparcV9.td
@echo "TableGen-erating $@"
cpp -P SparcV9.td | tblgen -gen-emitter > $(TEMP_EMITTER_INC)
mv -f $(TEMP_EMITTER_INC) SparcV9CodeEmitter.inc
clean::
rm -f SparcV9CodeEmitter.inc