# $NetBSD: Makefile.common,v 1.53 2022/12/25 09:17:27 wiz Exp $
# used by x11/modular-xorg-server/Makefile
# used by x11/modular-xorg-xephyr/Makefile
# used by x11/modular-xorg-xwayland/Makefile

XORG_VERSION=	21.1.6
CATEGORIES=	x11
MASTER_SITES=	${MASTER_SITE_XORG:=xserver/}
EXTRACT_SUFX=	.tar.xz

HOMEPAGE=	https://xorg.freedesktop.org/
LICENSE=	mit AND modified-bsd AND x11 # with no-advertising clause

GNU_CONFIGURE=	yes
USE_LIBTOOL=	yes
USE_TOOLS+=	gmake pkg-config
USE_LANGUAGES+=	c99

CHECK_PORTABILITY_SKIP+=	hw/xquartz/bundle/*

# Needed to load certain modules.
RELRO_SUPPORTED=	partial

PKGCONFIG_OVERRIDE+=	xorg-server.pc.in
SHLIBTOOL_OVERRIDE=	# empty

BUILD_DEFS+=		VARBASE
BUILD_DEFS_EFFECTS+=	XKB_OUTPUT_DIR

OWN_DIRS+=		${VARBASE}/log
OWN_DIRS+=		${XKB_OUTPUT_DIR}
XKB_OUTPUT_DIR?=	${VARBASE}/db/xkb # XXX sync with xkeyboard-config

CONFIGURE_ARGS+=	--localstatedir=${VARBASE:Q}
CONFIGURE_ARGS+=	--with-xkb-output=${XKB_OUTPUT_DIR:Q}

.if ${USE_TOOLS:Mauto*}
TOOLS_DEPENDS+=	xorg-util-macros>=1.1.5:../../devel/xorg-util-macros
.endif

DEPENDS+=	xkbcomp-[0-9]*:../../x11/xkbcomp
DEPENDS+=	xkeyboard-config-[0-9]*:../../x11/xkeyboard-config

.include "../../mk/bsd.prefs.mk"

.if ${OPSYS} == "NetBSD"
CPPFLAGS+=		-D_OPENBSD_SOURCE	# for reallocarray(3)
CONFIGURE_ARGS+=	--with-builder-addr="tech-x11@NetBSD.org"
CONFIGURE_ARGS+=	--with-os-vendor="The NetBSD Foundation"
# TLS is not supported by NetBSD<6
.  if ${OPSYS_VERSION} < 060000
CONFIGURE_ENV+=		ac_cv_tls=no
CONFIGURE_ARGS+=	--disable-glx-tls
.  endif
.endif
CONFIGURE_ARGS+=	--with-os-name=${MACHINE_PLATFORM:Q}

CONFIGURE_ARGS+=	--with-fontrootdir=${PREFIX}/share/fonts/X11

LEGACY_FONT_PATHS=
DEFAULT_FONT_PATHS=
.for f in misc TTF OTF Type1 100dpi 75dpi cyrillic
DEFAULT_FONT_PATHS+=	${PREFIX}/share/fonts/X11/${f}
LEGACY_FONT_PATHS+=	${PREFIX}/lib/X11/fonts/${f}
.endfor
FONT_PATHS=		${DEFAULT_FONT_PATHS} ${LEGACY_FONT_PATHS}

CONFIGURE_ARGS+=	--with-default-font-path=${FONT_PATHS:ts,:Q}

CONFIGURE_ARGS+=	--disable-config-hal
CONFIGURE_ARGS+=	--disable-dmx
CONFIGURE_ARGS+=	--disable-xwin
CONFIGURE_ARGS+=	--disable-xephyr
CONFIGURE_ARGS+=	--disable-kdrive
#CONFIGURE_ARGS+=	--disable-kdrive-vesa
CONFIGURE_ARGS+=	--enable-xtrans-send-fds

CONFIGURE_ARGS+=	--with-int10=x86emu

CONFIGURE_ENV+=		APP_MAN_SUFFIX=1 FILE_MAN_SUFFIX=5
CONFIGURE_ENV+=		DRIVER_MAN_SUFFIX=4

PLIST_VARS+=		sunos
PLIST_SUBST+=		SUNOS_ARCH=${SUNOS_ARCH}

.if ${OPSYS} == "SunOS"
PLIST.sunos=		yes
.  if ${MACHINE_ARCH} == "i386"
SUNOS_ARCH=		ia32
.  elif ${MACHINE_ARCH} == "x86_64"
SUNOS_ARCH=		amd64
.  elif ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64"
SUNOS_ARCH=		sparcv8plus
.  endif
.endif

PLIST_VARS+=		sparc
.if ${MACHINE_ARCH:Msparc*}
PLIST.sparc=		yes
.endif

# Workaround for PR#41556.
# Avoid to use bsd_kqueue_apm, force to use bsd_apm instead.
CONFIGURE_ENV.NetBSD+=	ac_cv_header_sys_event_h=no

# Avoid picking up epoll on illumos
CONFIGURE_ENV.SunOS+=	ac_cv_func_epoll_create1=no

# Only available in newer releases
CONFIGURE_ENV.SunOS+=	ac_cv_func_mkostemp=no

INSTALLATION_DIRS+=	lib/xorg/modules/drivers lib/xorg/modules/input

BUILD_DEPENDS+=		tradcpp-[0-9]*:../../devel/tradcpp
CONFIGURE_ENV+=		ac_cv_path_RAWCPP="${PREFIX}/bin/tradcpp -Uunix"

.if ${OPSYS} == "NetBSD" || ${OPSYS} == "OpenBSD" || ${OPSYS} == "MirBSD"
CONFIGURE_ARGS+=	--with-sha1=libc
.else
.include "../../security/nettle/buildlink3.mk"
CONFIGURE_ARGS+=	--with-sha1=libnettle
.endif

.include "../../devel/ncurses/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../fonts/libfontenc/buildlink3.mk"
BUILDLINK_API_DEPENDS.libpciaccess+=	libpciaccess>=0.11.0
BUILDLINK_DEPMETHOD.libpciaccess=	full
.include "../../sysutils/libpciaccess/buildlink3.mk"
BUILDLINK_API_DEPENDS.xorgproto+=	xorgproto>=2021.5
.include "../../x11/xorgproto/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libXau/buildlink3.mk"
.include "../../x11/libXaw/buildlink3.mk"
BUILDLINK_API_DEPENDS.libXext+=	libXext>=1.1.1
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libXfixes/buildlink3.mk"
.include "../../x11/libXfont2/buildlink3.mk"
.include "../../x11/libxcvt/buildlink3.mk"
.include "../../x11/libXt/buildlink3.mk"
.include "../../x11/libXxf86vm/buildlink3.mk"
.include "../../x11/libXinerama/buildlink3.mk"
.include "../../x11/libxkbfile/buildlink3.mk"
.include "../../x11/pixman/buildlink3.mk"
.include "../../x11/xcb-util-keysyms/buildlink3.mk"
BUILDLINK_API_DEPENDS.xtrans+=		xtrans>=1.2.2
.include "../../x11/xtrans/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
