First off, it doesn't build for me -- mklib: Making Linux shared library: r300_dri.so.tmp /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/../../../../x86_64-pc-linux-gnu/bin/ld: ../../../../src/gallium/drivers/r300/libr300.a(r300_screen.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC ../../../../src/gallium/drivers/r300/libr300.a: could not read symbols: Bad value collect2: ld returned 1 exit status
I think we'll have to hack it and add -fPIC to the local CFLAGS until the rest is converted. On Wed, Feb 22, 2012 at 8:14 PM, Tom Stellard <tstel...@gmail.com> wrote: > v2: > - s/$(top_builddir)/$(top_srcdir)/ > - Always generate Makefile.in > --- > configure.ac | 1 + > src/gallium/drivers/r300/.gitignore | 5 ++ > src/gallium/drivers/r300/Makefile | 25 --------- > src/gallium/drivers/r300/Makefile.am | 38 ++++++++++++++ > src/gallium/drivers/r300/compiler/tests/.gitignore | 1 - > src/gallium/drivers/r300/compiler/tests/Makefile | 53 > -------------------- > 6 files changed, 44 insertions(+), 79 deletions(-) > create mode 100644 src/gallium/drivers/r300/.gitignore > delete mode 100644 src/gallium/drivers/r300/Makefile > create mode 100644 src/gallium/drivers/r300/Makefile.am > delete mode 100644 src/gallium/drivers/r300/compiler/tests/.gitignore > delete mode 100644 src/gallium/drivers/r300/compiler/tests/Makefile > > diff --git a/configure.ac b/configure.ac > index 846b623..c8850cf 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1932,6 +1932,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" > > dnl Substitute the config > AC_CONFIG_FILES([configs/autoconf > + src/gallium/drivers/r300/Makefile > src/gbm/Makefile > src/gbm/main/gbm.pc > src/egl/wayland/Makefile > diff --git a/src/gallium/drivers/r300/.gitignore > b/src/gallium/drivers/r300/.gitignore > new file mode 100644 > index 0000000..5e510eb > --- /dev/null > +++ b/src/gallium/drivers/r300/.gitignore > @@ -0,0 +1,5 @@ > +Makefile > +Makefile.in > +radeon_compiler_util_tests > +.libs/ > +.deps/ > diff --git a/src/gallium/drivers/r300/Makefile > b/src/gallium/drivers/r300/Makefile > deleted file mode 100644 > index 2af1913..0000000 > --- a/src/gallium/drivers/r300/Makefile > +++ /dev/null > @@ -1,25 +0,0 @@ > -TOP = ../../../.. > -include $(TOP)/configs/current > - > -LIBNAME = r300 > - > -# get C_SOURCES > -include Makefile.sources > - > -# needed to build non-libmesagallium.a targets > -C_SOURCES += \ > - $(TOP)/src/glsl/ralloc.c \ > - $(TOP)/src/mesa/program/register_allocate.c > - > -#This is for libdrm inlude path > -CFLAGS+=$(RADEON_CFLAGS) > - > -LIBRARY_INCLUDES = \ > - -I$(TOP)/include \ > - -I$(TOP)/src/mesa \ > - -I$(TOP)/src/glsl > - > -include ../../Makefile.template > - > -test: default > - @$(MAKE) -s -C compiler/tests/ > diff --git a/src/gallium/drivers/r300/Makefile.am > b/src/gallium/drivers/r300/Makefile.am > new file mode 100644 > index 0000000..298aa40 > --- /dev/null > +++ b/src/gallium/drivers/r300/Makefile.am > @@ -0,0 +1,38 @@ > +include Makefile.sources > + > +noinst_LIBRARIES = libr300.a > +noinst_PROGRAMS = radeon_compiler_util_tests This should be check_PROGRAMS = radeon_compiler_util_tests unless we actually want to build this during `make` and not specifically `make check` > +testdir=compiler/tests > + > +AM_CFLAGS = \ > + -I$(top_srcdir)/src/gallium/include \ > + -I$(top_srcdir)/src/gallium/auxiliary \ > + -I$(top_srcdir)/src/gallium/drivers \ > + -I$(top_srcdir)/include \ > + -I$(top_srcdir)/src/mesa \ > + -I$(top_srcdir)/src/glsl \ > + -I$(top_srcdir)/src/mapi \ > + $(LLVM_CFLAGS) \ > + $(RADEON_CFLAGS) > + > +libr300_a_SOURCES = \ > + $(C_SOURCES) \ > + $(top_srcdir)/src/glsl/ralloc.c \ > + $(top_srcdir)/src/mesa/program/register_allocate.c > + > +test_LDADD = libr300.a > +test_SOURCES = \ > + $(testdir)/rc_test_helpers.c \ > + $(testdir)/unit_test.c > +test_CFLAGS = -I$(top_srcdir)/src/gallium/drivers/r300/compiler > + > +radeon_compiler_util_tests_LDADD = $(test_LDADD) > +radeon_compiler_util_tests_CFLAGS = $(test_CFLAGS) > +radeon_compiler_util_tests_SOURCES = \ > + $(test_SOURCES) \ > + $(testdir)/radeon_compiler_util_tests.c > I don't understand the indirection with the test_* variables. I think we should just remove it. > +default: libr300.a > + I see that the rest of the build system wants to `make default` in r300/. Let's add a note to remove this when the rest of the system is converted. > +test: $(noinst_PROGRAMS) > + $(foreach test, $^, @./$(test)) We can just use automake's TESTS variable to do this. If `make test` is called by some other makefile, then just add 'test: check'. With the attached patch squashed in, I think it's good to go.
diff --git a/src/gallium/drivers/r300/Makefile.am b/src/gallium/drivers/r300/Makefile.am index 298aa40..119c735 100644 --- a/src/gallium/drivers/r300/Makefile.am +++ b/src/gallium/drivers/r300/Makefile.am @@ -1,8 +1,9 @@ include Makefile.sources noinst_LIBRARIES = libr300.a -noinst_PROGRAMS = radeon_compiler_util_tests +check_PROGRAMS = radeon_compiler_util_tests testdir=compiler/tests +TESTS = radeon_compiler_util_tests AM_CFLAGS = \ -I$(top_srcdir)/src/gallium/include \ @@ -13,26 +14,22 @@ AM_CFLAGS = \ -I$(top_srcdir)/src/glsl \ -I$(top_srcdir)/src/mapi \ $(LLVM_CFLAGS) \ - $(RADEON_CFLAGS) + $(RADEON_CFLAGS) \ + -fPIC libr300_a_SOURCES = \ $(C_SOURCES) \ $(top_srcdir)/src/glsl/ralloc.c \ $(top_srcdir)/src/mesa/program/register_allocate.c -test_LDADD = libr300.a -test_SOURCES = \ - $(testdir)/rc_test_helpers.c \ - $(testdir)/unit_test.c -test_CFLAGS = -I$(top_srcdir)/src/gallium/drivers/r300/compiler - -radeon_compiler_util_tests_LDADD = $(test_LDADD) -radeon_compiler_util_tests_CFLAGS = $(test_CFLAGS) +radeon_compiler_util_tests_LDADD = libr300.a +radeon_compiler_util_tests_CPPFLAGS = \ + -I$(top_srcdir)/src/gallium/drivers/r300/compiler radeon_compiler_util_tests_SOURCES = \ - $(test_SOURCES) \ + $(testdir)/rc_test_helpers.c \ + $(testdir)/unit_test.c \ $(testdir)/radeon_compiler_util_tests.c +# FIXME: remove this when the rest of the gallium +# build system is converted to automake. default: libr300.a - -test: $(noinst_PROGRAMS) - $(foreach test, $^, @./$(test))
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev