Add some initial BSD support for the xorg server. Incomplete on NetBSD,

OpenBSD, and non-i386/amd64 FreeBSD for sure. Plus I haven't actually
    run it yet.
This commit is contained in:
Eric Anholt 2005-09-13 18:37:35 +00:00
parent 51eb6c83a3
commit 12fbcfefe6
7 changed files with 234 additions and 10 deletions

View File

@ -1,3 +1,15 @@
2005-09-13 Eric Anholt <anholt@FreeBSD.org>
* configure.ac:
* hw/xfree86/Makefile.am:
* hw/xfree86/os-support/bsd/Makefile.am:
* include/dix-config.h.in:
* include/xorg-config.h.in:
* include/xorg-server.h.in:
Add some initial BSD support for the xorg server. Incomplete on NetBSD,
OpenBSD, and non-i386/amd64 FreeBSD for sure. Plus I haven't actually
run it yet.
2005-09-12 Eric Anholt <anholt@FreeBSD.org>
* configure.ac:

View File

@ -96,7 +96,8 @@ AC_CHECK_LIB(m, sqrt)
AC_CHECK_HEADERS([ndbm.h dbm.h rpcsvc/dbm.h])
dnl AGPGART headers
AC_CHECK_HEADERS([linux/agpgart.h sys/agpio.h])
AC_CHECK_HEADERS([linux/agpgart.h sys/agpio.h], AGP=yes)
AM_CONDITIONAL(AGP, [test "x$AGP" == xyes])
dnl APM header
AC_CHECK_HEADERS([linux/apm_bios.h])
@ -108,6 +109,31 @@ AM_CONDITIONAL(FBDEVHW, [test "x$FBDEV" = xyes])
dnl MTRR header
AC_CHECK_HEADERS([asm/mtrr.h])
dnl BSD MTRR header
AC_CHECK_HEADERS([sys/memrange.h], ac_cv_memrange_h=yes)
if test "x$ac_cv_memrange_h" == xyes; then
AC_DEFINE(HAS_MTRR_SUPPORT, 1, [Define to 1 if BSD MTRR support is
available])
fi
dnl A NetBSD MTRR header
AC_CHECK_HEADERS([machine/mtrr.h], ac_cv_mtrr_h=yes)
if test "x$ac_cv_mtrr_h" == xyes; then
AC_DEFINE(HAS_MTRR_BUILTIN, 1, [Define to 1 if NetBSD built-in MTRR
support is available])
fi
dnl FreeBSD kldload support (sys/linker.h)
AC_CACHE_CHECK([for sys/linker.h],
ac_cv_sys_linker_h,
[AC_TRY_RUN([
#include <sys/param.h>
#include <sys/linker.h>
],
[ac_cv_sys_linker_h=yes],
[ac_cv_sys_linker_h=no])])
AM_CONDITIONAL(FREEBSD_KLDLOAD, [test "x$ac_cv_sys_linker_h" == xyes])
AC_CACHE_CHECK([for SYSV IPC],
ac_cv_sysv_ipc,
[AC_TRY_RUN([
@ -136,21 +162,78 @@ use_x86_asm="no"
dnl Override defaults as needed for specific platforms:
case $host_cpu in
sparc*)
xorg_bus_sparc="yes"
xorg_loader_sparcmuldiv="yes"
alpha*)
ALPHA_VIDEO=yes
case $host_os in
*netbsd*) AC_DEFINE(USE_ALPHA_PIO, 1, [NetBSD PIO alpha IO]) ;;
esac
;;
arm*)
ARM_VIDEO=yes
;;
i*86)
xorg_bus_ix86pci="yes"
use_x86_asm="yes"
I386_VIDEO=yes
case $host_os in
*linux*) DEFAULT_INT10=vm86 ;;
*bsd*) xorg_bus_ix86pci="no" ;;
*freebsd*) xorg_bus_ix86pci="no"
AC_DEFINE(USE_DEV_IO) ;;
*netbsd*) xorg_bus_ix86pci="no"
AC_DEFINE(USE_I386_IOPL) ;;
*openbsd*) xorg_bus_ix86pci="no"
AC_DEFINE(USE_I386_IOPL) ;;
esac
;;
x86_64*)
use_x86_asm="yes"
powerpc*)
PPC_VIDEO=yes
case $host_os in
*freebsd*) DEFAULT_INT10=stub ;;
esac
;;
sparc*)
xorg_bus_sparc="yes"
xorg_loader_sparcmuldiv="yes"
SPARC64_VIDEO=yes
BSD_ARCH_SOURCES="sparc64_video.c ioperm_noop.c"
;;
x86_64*|amd64*)
xorg_bus_ix86pci="yes"
use_x86_asm="yes"
I386_VIDEO=yes
case $host_os in
*freebsd*) AC_DEFINE(USE_DEV_IO, 1, [BSD /dev/io]) ;;
*netbsd*) AC_DEFINE(USE_I386_IOPL, 1, [BSD i386 iopl]) ;;
*openbsd*) AC_DEFINE(USE_AMD64_IOPL, 1, [BSD AMD64 iopl]) ;;
esac
;;
esac
dnl BSD *_video.c selection
AM_CONDITIONAL(ALPHA_VIDEO, [test "x$ALPHA_VIDEO" == xyes])
AM_CONDITIONAL(ARM_VIDEO, [test "x$ARM_VIDEO" == xyes])
AM_CONDITIONAL(I386_VIDEO, [test "x$I386_VIDEO" == xyes])
AM_CONDITIONAL(PPC_VIDEO, [test "x$PPC_VIDEO" == xyes])
AM_CONDITIONAL(SPARC64_VIDEO, [test "x$SPARC64_VIDEO" == xyes])
dnl it would be nice to autodetect these *CONS_SUPPORTs
case $host_os in
*freebsd*)
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
AC_DEFINE(PCVT_SUPPORT, 1, [System has PCVT console])
AC_DEFINE(SYSCONS_SUPPORT, 1, [System has syscons console])
;;
*netbsd*)
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
AC_DEFINE(WSCONS_SUPPORT, 1, [System has wscons console])
;;
*openbsd*)
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
AC_DEFINE(WSCONS_SUPPORT, 1, [System has wscons console])
;;
esac
@ -585,7 +668,9 @@ if test "x$XORG" = xyes; then
XORG_CFLAGS="$XORGSERVER_CFLAGS -DHAVE_XORG_CONFIG_H"
XORG_CORE_LIBS="$DIX_LIB"
XORG_LIBS="$MI_LIB $FIXES_LIB $XEXT_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $MIEXT_LAYER_LIB $XI_LIB $XKB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $OS_LIB"
AC_CHECK_LIB([dl], [dlopen], XORG_LIBS="$XORG_LIBS -ldl")
case $host_os in
linux*)
XORG_OS="linux"
@ -940,6 +1025,7 @@ hw/xfree86/i2c/Makefile
hw/xfree86/int10/Makefile
hw/xfree86/loader/Makefile
hw/xfree86/os-support/Makefile
hw/xfree86/os-support/bsd/Makefile
hw/xfree86/os-support/bus/Makefile
hw/xfree86/os-support/drm/Makefile
hw/xfree86/os-support/misc/Makefile

View File

@ -49,8 +49,7 @@ XORG_LIBS = \
Xorg_LDADD = $(XORG_LIBS) \
@XSERVER_LIBS@ \
dixmods/libxorgxkb.la \
-ldl
dixmods/libxorgxkb.la
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)

View File

@ -0,0 +1,76 @@
noinst_LTLIBRARIES = libbsd.la
# FIXME: Add USB mouse support?
# FIXME: APM support.
APM_SOURCES = $(srcdir)/../shared/pm_noop.c
if FREEBSD_KLDLOAD
KMOD_SOURCES = bsd_kmod.c
else
KMOD_SOURCES = $(srcdir)/../shared/kmod_noop.c
endif
# FIXME: Non-i386/ia64 resource support.
RES_SOURCES = $(srcdir)/../shared/stdResource.c
if AGP
AGP_SOURCES = $(srcdir)/../linux/lnx_agp.c
else
AGP_SOURCES = $(srcdir)/../shared/agp_noop.c
endif
if ALPHA_VIDEO
# Cheat here and piggyback other alpha bits on ALPHA_VIDEO.
ARCH_SOURCES = \
alpha_video.c \
bsd_ev56.c \
bsd_axp.c \
$(srcdir)/../shared/xf86Axp.c
endif
if ARM_VIDEO
ARCH_SOURCES = arm_video.c
endif
if I386_VIDEO
ARCH_SOURCES = i386_video.c
endif
if PPC_VIDEO
ARCH_SOURCES = ppc_video.c
endif
if SPARC64_VIDEO
# Cheat here and piggyback other sparc64 bits on SPARC64_VIDEO.
ARCH_SOURCES = \
sparc64_video.c \
$(srcdir)/../shared/ioperm_noop.c
endif
# FIXME: NetBSD Aperture defines (configure.ac)
AM_CFLAGS = -DUSESTDRES -DUSE_DEV_IO $(XORG_CFLAGS)
INCLUDES = $(XORG_INCS)
libbsd_la_SOURCES = \
$(srcdir)/../shared/at_scancode.c \
$(srcdir)/../shared/libc_wrapper.c \
$(srcdir)/../shared/posix_tty.c \
$(srcdir)/../shared/sigio.c \
$(srcdir)/../shared/std_kbdEv.c \
$(srcdir)/../shared/stdPci.c \
$(srcdir)/../shared/vidmem.c \
bsd_VTsw.c \
bsd_init.c \
bsd_io.c \
bsd_kbd.c \
bsd_KbdMap.c \
bsd_mouse.c \
$(ARCH_SOURCES) \
$(AGP_SOURCES) \
$(APM_SOURCES) \
$(AXP_SOURCES) \
$(DRI_SOURCES) \
$(KMOD_SOURCES) \
$(RES_SOURCES)

View File

@ -391,4 +391,7 @@
/* Define to location of RGB database */
#undef RGB_PATH
/* System is BSD-like */
#undef CSRG_BASED
#endif /* _DIX_CONFIG_H_ */

View File

@ -79,4 +79,37 @@
/* Building vgahw module */
#undef WITH_VGAHW
/* Define to 1 if NetBSD built-in MTRR support is available */
#undef HAS_MTRR_BUILTIN
/* Define to 1 if BSD MTRR support is available */
#undef HAS_MTRR_SUPPORT
/* NetBSD PIO alpha IO */
#undef USE_ALPHA_PIO
/* BSD AMD64 iopl */
#undef USE_AMD64_IOPL
/* BSD /dev/io */
#undef USE_DEV_IO
/* BSD i386 iopl */
#undef USE_I386_IOPL
/* System is BSD-like */
#undef CSRG_BASED
/* System has PC console */
#undef PCCONS_SUPPORT
/* System has PCVT console */
#undef PCVT_SUPPORT
/* System has syscons console */
#undef SYSCONS_SUPPORT
/* System has wscons console */
#undef WSCONS_SUPPORT
#endif /* _XORG_CONFIG_H_ */

View File

@ -226,4 +226,19 @@
/* Building vgahw module */
#undef WITH_VGAHW
/* System is BSD-like */
#undef CSRG_BASED
/* System has PC console */
#undef PCCONS_SUPPORT
/* System has PCVT console */
#undef PCVT_SUPPORT
/* System has syscons console */
#undef SYSCONS_SUPPORT
/* System has wscons console */
#undef WSCONS_SUPPORT
#endif /* _XORG_SERVER_H_ */