summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2011-11-24 21:54:54 +0100
committerThomas Hellstrom <thellstrom@vmware.com>2011-11-25 16:38:36 +0100
commit32b1641a59610d94c0b56bf0494b2fc1cf400e3e (patch)
treed03c7c7eac1cd4eb0d0b917b3225d3a63acf5896
parent4d04367eca66a85e26f7c0f5d6392823d13880f6 (diff)
st/xa, xa/vmwgfx: Generate exported symbol list from the st/xa symbols.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
-rw-r--r--configs/autoconf.in3
-rw-r--r--configure.ac12
-rw-r--r--src/gallium/state_trackers/xa/xa_symbols30
-rw-r--r--src/gallium/targets/xa-vmwgfx/Makefile10
4 files changed, 22 insertions, 33 deletions
diff --git a/configs/autoconf.in b/configs/autoconf.in
index 3d4c749cf4b..9ea7588a118 100644
--- a/configs/autoconf.in
+++ b/configs/autoconf.in
@@ -54,6 +54,9 @@ MKLIB_OPTIONS = @MKLIB_OPTIONS@
MKDEP = @MKDEP@
MKDEP_OPTIONS = @MKDEP_OPTIONS@
INSTALL = @INSTALL@
+AWK = @AWK@
+GREP = @GREP@
+NM = @NM@
# Python and flags (generally only needed by the developers)
PYTHON2 = @PYTHON2@
diff --git a/configure.ac b/configure.ac
index 8885a6d74e5..febb9f68098 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1469,8 +1469,20 @@ dnl
dnl XA configuration
dnl
if test "x$enable_xa" = xyes; then
+AC_PROG_AWK
+AC_PROG_GREP
+AC_CHECK_PROG(NM, nm, "nm")
+if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
+AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
+enable_xa=no
+fi
+fi
+if test "x$enable_xa" = xyes; then
GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
HAVE_ST_XA=yes
+ AC_SUBST(AWK)
+ AC_SUBST(GREP)
+ AC_SUBST(NM)
fi
dnl
diff --git a/src/gallium/state_trackers/xa/xa_symbols b/src/gallium/state_trackers/xa/xa_symbols
deleted file mode 100644
index 6da701f9702..00000000000
--- a/src/gallium/state_trackers/xa/xa_symbols
+++ /dev/null
@@ -1,30 +0,0 @@
-xa_tracker_version
-xa_tracker_create
-xa_tracker_destroy
-xa_surface_create
-xa_surface_destroy
-xa_surface_redefine
-xa_surface_dma
-xa_surface_map
-xa_surface_unmap
-xa_surface_format
-xa_surface_handle
-xa_format_check_supported
-xa_context_default
-xa_context_create
-xa_context_destroy
-xa_fence_get
-xa_fence_wait
-xa_fence_destroy
-xa_copy_prepare
-xa_copy
-xa_copy_done
-xa_solid_prepare
-xa_solid
-xa_solid_done
-xa_composite_allocation
-xa_composite_check_accelerated
-xa_composite_prepare
-xa_composite_rect
-xa_composite_done
-xa_yuv_planar_blit
diff --git a/src/gallium/targets/xa-vmwgfx/Makefile b/src/gallium/targets/xa-vmwgfx/Makefile
index a4c02d1bca0..6ca446a15dc 100644
--- a/src/gallium/targets/xa-vmwgfx/Makefile
+++ b/src/gallium/targets/xa-vmwgfx/Makefile
@@ -52,13 +52,17 @@ endif
default: $(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME)
+# Generate list of library visible symbols
+xa_symbols: $(TOP)/src/gallium/state_trackers/xa/libxatracker.o
+ $(NM) $< | $(GREP) ' T ' | $(AWK) '{print $$3}' > $@
# Make the library
-$(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME): depend $(OBJECTS) $(XA_LIB_DEPS)
+$(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME): depend $(OBJECTS) $(XA_LIB_DEPS) \
+ xa_symbols
$(MKLIB) -o $(XA_LIB) -linker $(LD) -ldflags '$(LDFLAGS)' \
-major $(XA_MAJOR) -minor $(XA_MINOR) -patch $(XA_TINY) \
$(MKLIB_OPTIONS) \
- -exports $(TOP)/src/gallium/state_trackers/xa/xa_symbols\
+ -exports xa_symbols \
-install $(TOP)/$(LIB_DIR)/gallium \
$(OBJECTS) $(XA_LIB_DEPS) $(GALLIUM_AUXILIARIES)
@@ -91,7 +95,7 @@ clean:
-rm -f *.la
-rm -f *.pc
-rm -rf .libs
- -rm -f depend depend.bak exptmp
+ -rm -f depend depend.bak exptmp xa_symbols
depend: $(SOURCES)