[Mesa-dev] [PATCH] radeon/llvm: Convert to Automake

tstellar at gmail.com tstellar at gmail.com
Thu Aug 30 09:55:29 PDT 2012


From: Tom Stellard <thomas.stellard at amd.com>

---
 Hi Matt,

 This patch applies to your automake-gallium branch.

 configure.ac                                |    5 ++
 src/gallium/drivers/radeon/.gitignore       |    1 +
 src/gallium/drivers/radeon/Makefile         |   76 -----------------------
 src/gallium/drivers/radeon/Makefile.am      |   87 +++++++++++++++++++++++++++
 src/gallium/drivers/radeon/Makefile.sources |   32 ++++++++++-
 5 files changed, 124 insertions(+), 77 deletions(-)
 delete mode 100644 src/gallium/drivers/radeon/Makefile
 create mode 100644 src/gallium/drivers/radeon/Makefile.am

diff --git a/configure.ac b/configure.ac
index c984b9c..46b53fd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1876,6 +1876,9 @@ if test "x$with_gallium_drivers" != x; then
             if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then
                 LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`"
             fi
+            if grep '\<IntrinsicsR600.td\>' $(LLVM_INCLUDEDIR)/llvm/Intrinsics.td; then
+                HAVE_R600_LLVM_INTRINSICS=yes;
+            fi
             gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
             ;;
         xradeonsi)
@@ -1975,6 +1978,7 @@ AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes)
 AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes)
 AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes)
 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
+AM_CONDITIONAL(HAVE_R600_LLVM_INTRINSICS, test x%HAVE_R600_LLVM_INTRINSICS = xyes)
 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
@@ -2027,6 +2031,7 @@ AC_CONFIG_FILES([configs/current
 		src/gallium/drivers/nvc0/Makefile
 		src/gallium/drivers/r300/Makefile
 		src/gallium/drivers/r600/Makefile
+		src/gallium/drivers/radeon/Makefile
 		src/gallium/drivers/radeonsi/Makefile
 		src/gallium/drivers/rbug/Makefile
 		src/gallium/drivers/softpipe/Makefile
diff --git a/src/gallium/drivers/radeon/.gitignore b/src/gallium/drivers/radeon/.gitignore
index b723d73..1f25df3 100644
--- a/src/gallium/drivers/radeon/.gitignore
+++ b/src/gallium/drivers/radeon/.gitignore
@@ -10,6 +10,7 @@ AMDILGenInstrInfo.inc
 AMDILGenIntrinsics.inc
 AMDILGenRegisterInfo.inc
 AMDILGenSubtargetInfo.inc
+Makefile
 R600HwRegInfo.include
 R600Intrinsics.td
 R600RegisterInfo.td
diff --git a/src/gallium/drivers/radeon/Makefile b/src/gallium/drivers/radeon/Makefile
deleted file mode 100644
index 43f668a..0000000
--- a/src/gallium/drivers/radeon/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-
-TOP = ../../../..
-include $(TOP)/configs/current
-
-include Makefile.sources
-
-LIBNAME = radeon
-
-LIBRARY_INCLUDES = -I$(TOP)/include
-
-TBLGEN = $(LLVM_BINDIR)/llvm-tblgen
-
-CXXFLAGS+= $(LLVM_CXXFLAGS)
-
-include ../../Makefile.template
-
-CXXFLAGS := $(filter-out -DDEBUG, $(CXXFLAGS))
-
-tablegen = $(TBLGEN) -I $(LLVM_INCLUDEDIR) $1 $2 -o $3
-
-HAVE_LLVM_INTRINSICS = $(shell grep IntrinsicsR600.td $(LLVM_INCLUDEDIR)/llvm/Intrinsics.td)
-
-gen: $(GENERATED_SOURCES)
-
-SIRegisterInfo.td: SIGenRegisterInfo.pl
-	$(PERL) $^ > $@
-
-SIRegisterGetHWRegNum.inc: SIGenRegisterInfo.pl
-	$(PERL) $^ $@ > /dev/null
-
-R600Intrinsics.td: R600IntrinsicsNoOpenCL.td R600IntrinsicsOpenCL.td
-ifeq ($(HAVE_LLVM_INTRINSICS),)
-	cp R600IntrinsicsNoOpenCL.td R600Intrinsics.td
-else
-	cp R600IntrinsicsOpenCL.td R600Intrinsics.td
-endif
-
-R600RegisterInfo.td: R600GenRegisterInfo.pl
-	$(PERL) $^ > $@
-
-AMDGPUGenRegisterInfo.inc: *.td
-	$(call tablegen, -gen-register-info, AMDGPU.td, $@)
-
-AMDGPUGenInstrInfo.inc: *.td
-	$(call tablegen, -gen-instr-info, AMDGPU.td, $@)
-
-AMDGPUGenAsmWriter.inc: *.td
-	$(call tablegen, -gen-asm-writer, AMDGPU.td, $@)
-
-AMDGPUGenDAGISel.inc: *.td
-	$(call tablegen, -gen-dag-isel, AMDGPU.td, $@)
-
-AMDGPUGenCallingConv.inc: *.td
-	$(call tablegen, -gen-callingconv, AMDGPU.td, $@)
-
-AMDGPUGenSubtargetInfo.inc: *.td
-	$(call tablegen, -gen-subtarget, AMDGPU.td, $@)
-
-AMDGPUGenEDInfo.inc: *.td
-	$(call tablegen, -gen-enhanced-disassembly-info, AMDGPU.td, $@)
-
-AMDGPUGenIntrinsics.inc: *.td
-	$(call tablegen, -gen-tgt-intrinsic, AMDGPU.td, $@)
-
-AMDGPUGenCodeEmitter.inc: *.td
-	$(call tablegen, -gen-emitter, AMDGPU.td, $@)
-
-AMDGPUGenMCCodeEmitter.inc: *.td
-	$(call tablegen, -mc-emitter -gen-emitter, AMDGPU.td, $@)
-
-AMDGPUGenDFAPacketizer.inc: *.td
-	$(call tablegen, -gen-dfa-packetizer, AMDGPU.td, $@)
-
-LOADER_LIBS=$(shell llvm-config --libs bitreader asmparser)
-loader: loader.o libradeon.a
-	gcc -o loader $(LLVM_LDFLAGS) -L/usr/local/lib $(LDFLAGS) loader.o libradeon.a $(LLVM_LIBS) $(LOADER_LIBS) -lpthread -ldl -lstdc++ -lm
diff --git a/src/gallium/drivers/radeon/Makefile.am b/src/gallium/drivers/radeon/Makefile.am
new file mode 100644
index 0000000..881af53
--- /dev/null
+++ b/src/gallium/drivers/radeon/Makefile.am
@@ -0,0 +1,87 @@
+include Makefile.sources
+include $(top_srcdir)/src/gallium/Automake.inc
+
+noinst_LTLIBRARIES = libradeon.la
+
+AM_CXXFLAGS = \
+	$(filter-out -DDEBUG, $(LLVM_CXXFLAGS))
+
+AM_CFLAGS = \
+	$(GALLIUM_CFLAGS) \
+	$(LLVM_CFLAGS)
+
+CXXFLAGS+= $(LLVM_CXXFLAGS)
+
+tablegen = $(LLVM_BINDIR)/llvm-tblgen -I $(LLVM_INCLUDEDIR) $1 $2 -o $3
+
+libradeon_la_SOURCES =	\
+	$(GENERATED_SOURCES) \
+	$(CXX_SOURCES) \
+	$(C_SOURCES)
+
+CLEANFILES = $(GENERATED_SOURCES)
+
+SIRegisterInfo.td: SIGenRegisterInfo.pl
+	$(PERL) $^ > $@
+
+SIRegisterGetHWRegNum.inc: SIGenRegisterInfo.pl
+	$(PERL) $^ $@ > /dev/null
+
+R600Intrinsics.td: R600IntrinsicsNoOpenCL.td R600IntrinsicsOpenCL.td
+if HAVE_R600_LLVM_INTRINSICS
+	cp R600IntrinsicsNoOpenCL.td R600Intrinsics.td
+else
+	cp R600IntrinsicsOpenCL.td R600Intrinsics.td
+endif
+
+R600RegisterInfo.td: R600GenRegisterInfo.pl
+	$(PERL) $^ > $@
+
+AMDGPUGenRegisterInfo.inc: $(TD_FILES)
+	$(call tablegen, -gen-register-info, AMDGPU.td, $@)
+
+AMDGPUGenInstrInfo.inc: $(TD_FILES)
+	$(call tablegen, -gen-instr-info, AMDGPU.td, $@)
+
+AMDGPUGenAsmWriter.inc: $(TD_FILES)
+	$(call tablegen, -gen-asm-writer, AMDGPU.td, $@)
+
+AMDGPUGenDAGISel.inc: $(TD_FILES)
+	$(call tablegen, -gen-dag-isel, AMDGPU.td, $@)
+
+AMDGPUGenCallingConv.inc: $(TD_FILES)
+	$(call tablegen, -gen-callingconv, AMDGPU.td, $@)
+
+AMDGPUGenSubtargetInfo.inc: $(TD_FILES)
+	$(call tablegen, -gen-subtarget, AMDGPU.td, $@)
+
+AMDGPUGenEDInfo.inc: $(TD_FILES)
+	$(call tablegen, -gen-enhanced-disassembly-info, AMDGPU.td, $@)
+
+AMDGPUGenIntrinsics.inc: $(TD_FILES)
+	$(call tablegen, -gen-tgt-intrinsic, AMDGPU.td, $@)
+
+AMDGPUGenCodeEmitter.inc: $(TD_FILES)
+	$(call tablegen, -gen-emitter, AMDGPU.td, $@)
+
+AMDGPUGenMCCodeEmitter.inc: $(TD_FILES)
+	$(call tablegen, -mc-emitter -gen-emitter, AMDGPU.td, $@)
+
+AMDGPUGenDFAPacketizer.inc: $(TD_FILES)
+	$(call tablegen, -gen-dfa-packetizer, AMDGPU.td, $@)
+
+noinst_PROGRAMS = loader
+
+loader_SOURCES = loader.cpp
+
+loader_LDADD = libradeon.la $(LLVM_LIBS)
+loader_LDFLAGS = \
+	$(LLVM_LDFLAGS)	\
+	$(LD_FLAGS)
+
+#XXX: Delete this when all targets that rely on radeon are converted to
+# automake.
+all-local: libradeon.la
+	ln -f $(builddir)/.libs/libradeon.a $(builddir)/libradeon.a
+
+CLEANFILES += libradeon.a
diff --git a/src/gallium/drivers/radeon/Makefile.sources b/src/gallium/drivers/radeon/Makefile.sources
index 687acb3..d8df295 100644
--- a/src/gallium/drivers/radeon/Makefile.sources
+++ b/src/gallium/drivers/radeon/Makefile.sources
@@ -1,4 +1,34 @@
 
+TD_FILES := \
+	AMDGPU.td		\
+	AMDGPUInstrInfo.td	\
+	AMDGPUInstructions.td	\
+	AMDGPUIntrinsics.td	\
+	AMDGPURegisterInfo.td	\
+	AMDILBase.td		\
+	AMDILInstrInfo.td	\
+	AMDILIntrinsics.td	\
+	AMDILRegisterInfo.td	\
+	Processors.td		\
+	R600InstrInfo.td	\
+	R600Instructions.td	\
+	R600Intrinsics.td	\
+	R600Intrinsics.td	\
+	R600IntrinsicsNoOpenCL.td	\
+	R600IntrinsicsOpenCL.td	\
+	R600OpenCLIntrinsics.td	\
+	R600RegisterInfo.td	\
+	R600RegisterInfo.td	\
+	R600Schedule.td		\
+	SIInstrFormats.td	\
+	SIInstrInfo.td		\
+	SIInstructions.td	\
+	SIIntrinsics.td		\
+	SIRegisterInfo.td	\
+	SIRegisterInfo.td	\
+	SISchedule.td
+
+
 GENERATED_SOURCES := \
 	R600Intrinsics.td		\
 	R600RegisterInfo.td		\
@@ -16,7 +46,7 @@ GENERATED_SOURCES := \
 	AMDGPUGenMCCodeEmitter.inc	\
 	AMDGPUGenDFAPacketizer.inc
 
-CPP_SOURCES := \
+CXX_SOURCES := \
 	AMDIL7XXDevice.cpp		\
 	AMDILCFGStructurizer.cpp	\
 	AMDILDevice.cpp			\
-- 
1.7.7.6



More information about the mesa-dev mailing list