Commit a6efbac9 authored by Emil Velikov's avatar Emil Velikov

automake: allow only shared builds

Static and shared builds were possible in the good old days
of static makefiles. Currently the build system does not
distinguish nor does anything special when one requests a
static build.

Print a warning message for the packager that static builds
are not supported and continue building shared libs.

Currently only Debian and derivatives use static build, and
they use it for building a Xlib powered libGL. This patch
will only change the warning message they are seeing but
the binaries produced will be identical.
Signed-off-by: Emil Velikov's avatarEmil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Jon Turney's avatarJon TURNEY <jon.turney@dronecode.org.uk>
parent 065b6ca5
......@@ -285,18 +285,15 @@ dnl Can't have static and shared libraries, default to static if user
dnl explicitly requested. If both disabled, set to static since shared
dnl was explicitly requested.
case "x$enable_static$enable_shared" in
xyesyes )
AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
enable_shared=no
xnoyes )
;;
xnono )
AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static])
enable_static=yes
* )
AC_MSG_WARN([Messa build supports only shared libraries, enabling shared])
enable_shared=yes
enable_static=no
;;
esac
AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
dnl
dnl other compiler options
dnl
......@@ -331,20 +328,16 @@ AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
dnl
dnl library names
dnl
if test "$enable_static" = yes; then
LIB_EXT='a'
else
case "$host_os" in
darwin* )
LIB_EXT='dylib' ;;
cygwin* )
LIB_EXT='dll' ;;
aix* )
LIB_EXT='a' ;;
* )
LIB_EXT='so' ;;
esac
fi
case "$host_os" in
darwin* )
LIB_EXT='dylib' ;;
cygwin* )
LIB_EXT='dll' ;;
aix* )
LIB_EXT='a' ;;
* )
LIB_EXT='so' ;;
esac
AC_SUBST([LIB_EXT])
......@@ -781,11 +774,6 @@ PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
have_libudev=yes, have_libudev=no)
if test "x$enable_dri" = xyes; then
# DRI must be shared, I think
if test "$enable_static" = yes; then
AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
fi
# not a hard requirement as swrast does not depend on it
if test "x$have_libdrm" = xyes; then
DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
......@@ -1117,12 +1105,7 @@ x16|x32)
esac
if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
# only link libraries with osmesa if shared
if test "$enable_static" = no; then
OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
else
OSMESA_LIB_DEPS=""
fi
OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
OSMESA_MESA_DEPS=""
OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
fi
......@@ -1171,11 +1154,8 @@ if test "x$enable_egl" = xyes; then
AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
if test "$enable_static" != yes; then
if test "x$enable_dri" = xyes; then
HAVE_EGL_DRIVER_DRI2=1
fi
if test "x$enable_dri" = xyes; then
HAVE_EGL_DRIVER_DRI2=1
fi
fi
AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
......
......@@ -65,11 +65,7 @@ lib@OSMESA_LIB@_la_LDFLAGS += $(LLVM_LDFLAGS)
lib@OSMESA_LIB@_la_LIBADD += $(top_builddir)/src/gallium/drivers/llvmpipe/libllvmpipe.la $(LLVM_LIBS)
endif
if BUILD_SHARED
include $(top_srcdir)/install-gallium-links.mk
endif
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = osmesa.pc
......@@ -47,9 +47,7 @@ lib@OSMESA_LIB@_la_LIBADD = \
$(SHARED_GLAPI_LIB) \
$(OSMESA_LIB_DEPS)
if BUILD_SHARED
include $(top_srcdir)/install-lib-links.mk
endif
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = osmesa.pc
......@@ -64,6 +64,4 @@ lib@GL_LIB@_la_LDFLAGS = \
-no-undefined \
$(GL_LIB_DEPS)
if BUILD_SHARED
include $(top_srcdir)/install-lib-links.mk
endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment