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

Reply via email to