OSDN Git Service

radeon/llvm: Convert to Automake
authorTom Stellard <thomas.stellard@amd.com>
Thu, 30 Aug 2012 16:55:29 +0000 (12:55 -0400)
committerAndreas Boll <andreas.boll.dev@gmail.com>
Thu, 10 Jan 2013 21:01:08 +0000 (22:01 +0100)
v2: Johannes Obermayr <johannesobermayr@gmx.de>
    Fix some undefined symbols.

v3: Johannes Obermayr <johannesobermayr@gmx.de>
    Build it -shared to fix egl_gallium.so on r600/radeonsi builds.

configure.ac
src/gallium/drivers/r600/Makefile.am
src/gallium/drivers/radeon/Makefile [deleted file]
src/gallium/drivers/radeon/Makefile.am [new file with mode: 0644]
src/gallium/drivers/radeon/Makefile.sources
src/gallium/drivers/radeonsi/Makefile.am

index e640b72..004f8cc 100644 (file)
@@ -2034,6 +2034,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
index 7af5748..0fa1ffd 100644 (file)
@@ -1,7 +1,7 @@
 include Makefile.sources
 include $(top_srcdir)/src/gallium/Automake.inc
 
-noinst_LIBRARIES = libr600.a
+noinst_LTLIBRARIES = libr600.la
 
 AM_CFLAGS = \
        -I$(top_srcdir)/src/gallium/drivers \
@@ -10,22 +10,20 @@ AM_CFLAGS = \
        $(RADEON_CFLAGS) \
        $(VISIBILITY_CFLAGS)
 
-libr600_a_SOURCES = \
+libr600_la_SOURCES = \
        $(C_SOURCES)
 
 if NEED_RADEON_GALLIUM
 
-# This is a hack until we can move the backend into the LLVM project.
-# We need to use mklib, because it splits up libradeon.a into object files
-# so that we can link it with the r600 objects.
-libr600_a_AR = $(top_srcdir)/bin/mklib -o r600 -static
-
-libr600_a_SOURCES += \
+libr600_la_SOURCES += \
        $(LLVM_C_SOURCES) \
        $(LLVM_CXX_SOURCES)
 
-libr600_a_LIBADD = \
-       $(top_builddir)/src/gallium/drivers/radeon/libradeon.a
+libr600_la_LIBADD = ../radeon/libllvmradeon@VERSION@.la
+
+libr600_la_LDFLAGS = \
+       $(LLVM_LDFLAGS) \
+       $(shell $(LLVM_CONFIG) --libs asmparser bitreader ipo)
 
 AM_CFLAGS += \
        $(LLVM_CFLAGS) \
@@ -33,8 +31,6 @@ AM_CFLAGS += \
 
 AM_CXXFLAGS= \
        $(LLVM_CXXFLAGS)
-else
-libr600_a_AR = $(AR) $(ARFLAGS)
 endif
 
 if USE_R600_LLVM_COMPILER
@@ -46,3 +42,7 @@ if HAVE_GALLIUM_COMPUTE
 AM_CFLAGS += \
        -DHAVE_OPENCL
 endif
+
+#XXX: Delete this when all r600 targets are converted to automake.
+all-local: libr600.la
+       ln -f $(builddir)/.libs/libr600.a $(builddir)/libr600.a
diff --git a/src/gallium/drivers/radeon/Makefile b/src/gallium/drivers/radeon/Makefile
deleted file mode 100644 (file)
index 7934c71..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-
-TOP = ../../../..
-include $(TOP)/configs/current
-
-include Makefile.sources
-
-LIBNAME = radeon
-
-LIBRARY_INCLUDES = -I$(TOP)/include
-
-CXXFLAGS+= $(LLVM_CXXFLAGS)
-
-include ../../Makefile.template
-
-CXXFLAGS := $(filter-out -DDEBUG, $(CXXFLAGS))
diff --git a/src/gallium/drivers/radeon/Makefile.am b/src/gallium/drivers/radeon/Makefile.am
new file mode 100644 (file)
index 0000000..091adc4
--- /dev/null
@@ -0,0 +1,31 @@
+include Makefile.sources
+include $(top_srcdir)/src/gallium/Automake.inc
+
+if HAVE_GALLIUM_R600
+if HAVE_GALLIUM_RADEONSI
+lib_LTLIBRARIES = libllvmradeon@VERSION@.la
+libllvmradeon@VERSION@_la_LDFLAGS = -Wl,--no-undefined -shared -avoid-version \
+       $(LLVM_LDFLAGS)
+else
+noinst_LTLIBRARIES = libllvmradeon@VERSION@.la
+endif
+else
+noinst_LTLIBRARIES = libllvmradeon@VERSION@.la
+endif
+
+AM_CXXFLAGS = \
+       $(filter-out -DDEBUG, $(LLVM_CXXFLAGS)) \
+       $(DEFINES)
+
+AM_CFLAGS = \
+       $(GALLIUM_CFLAGS) \
+       $(LLVM_CFLAGS)
+
+libllvmradeon@VERSION@_la_SOURCES = \
+       $(CPP_FILES) \
+       $(C_FILES)
+
+libllvmradeon@VERSION@_la_LIBADD = \
+       $(top_builddir)/src/gallium/auxiliary/libgallium.la \
+       $(CLOCK_LIB) \
+       $(LLVM_LIBS)
index 45d2e8f..39f9532 100644 (file)
@@ -1,5 +1,5 @@
-CPP_SOURCES := \
+CPP_FILES := \
        radeon_llvm_emit.cpp
 
-C_SOURCES := \
+C_FILES := \
        radeon_setup_tgsi_llvm.c
index 7906fb6..595cf86 100644 (file)
@@ -23,7 +23,7 @@
 include Makefile.sources
 include $(top_srcdir)/src/gallium/Automake.inc
 
-noinst_LIBRARIES = libradeonsi.a
+noinst_LTLIBRARIES = libradeonsi.la
 
 AM_CPPFLAGS = \
        -I$(top_srcdir)/src/gallium/drivers/radeon \
@@ -32,10 +32,9 @@ AM_CPPFLAGS = \
        $(GALLIUM_CFLAGS)
 AM_CFLAGS = $(LLVM_CFLAGS)
 
-# This is a hack until we can move the backend into the LLVM project.
-# We need to use mklib, because it splits up libradeon.a into object files
-# so that we can link it with the radeonsi objects.
-libradeonsi_a_AR = $(top_srcdir)/bin/mklib -o radeonsi -static
+libradeonsi_la_SOURCES = $(C_SOURCES)
+libradeonsi_la_LIBADD = ../radeon/libllvmradeon@VERSION@.la
 
-libradeonsi_a_SOURCES = $(C_SOURCES)
-libradeonsi_a_LIBADD = ../radeon/libradeon.a
+#XXX: Delete this when all radeonsi targets are converted to automake.
+all-local: libradeonsi.la
+       ln -f $(builddir)/.libs/libradeonsi.a $(builddir)/libradeonsi.a