summaryrefslogtreecommitdiffstats
path: root/x11-servers/xorg-server/Makefile
blob: 323bd801e3571ac2c6beee6412b1778848df1dbd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# New ports collection makefile for:    xorg-server
# Date created:     7 May 2004
# Whom:         anholt@FreeBSD.org
#
# $FreeBSD$
#

PORTNAME?=  xorg-server
PORTVERSION=    ${XORG_VERSION}
PORTREVISION?=  ${XORG_REVISION}
PORTEPOCH?= 1
CATEGORIES= x11-servers
MASTER_SITES=   XORG
MASTER_SITE_SUBDIR= individual/xserver
DISTNAME=   xorg-server-${PORTVERSION}

MAINTAINER= x11@FreeBSD.org
COMMENT?=   X.Org X server and related programs

LIB_DEPENDS=    drm:${PORTSDIR}/graphics/libdrm
RUN_DEPENDS=    xkeyboard-config>=2.5:${PORTSDIR}/x11/xkeyboard-config \
        xkbcomp:${PORTSDIR}/x11/xkbcomp

XORG_CAT=   xserver
SLAVE_PORT?=    no

.if defined(WITH_NEW_XORG)
XORG_VERSION=   1.12.4
XORG_REVISION=  0
PLIST_SUB+= OLD="@comment " NEW=""
EXTRA_PATCHES+= ${FILESDIR}/extra-clang
.else
XORG_VERSION=   1.7.7
XORG_REVISION=  6
PLIST_SUB+= OLD="" NEW="@comment "
EXTRA_PATCHES+= ${FILESDIR}/extra-include_eventstr.h \
        ${FILESDIR}/extra-os-utils.c \
        ${FILESDIR}/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c \
        ${FILESDIR}/extra-Xserver-os-xprintf.c \
        ${FILESDIR}/extra-servermd.h
.endif

USE_BZIP2=  yes
USE_GMAKE=  yes
USE_GL=     gl
USE_XORG?=  xf86driproto glproto xdmcp x11 xkbfile xxf86misc xxf86vm xaw7 \
        xmu xt xpm xext randrproto renderproto fixesproto damageproto \
        dri2proto xcmiscproto xextproto xproto xtrans xf86miscproto \
        xf86vidmodeproto xf86bigfontproto scrnsaverproto bigreqsproto \
        resourceproto fontsproto inputproto xf86dgaproto \
        videoproto compositeproto trapproto recordproto xineramaproto \
        xinerama evieproto xfont fontenc xkbui pixman pciaccess

MAKE_JOBS_UNSAFE=   yes
USE_OPENSSL=    yes
USE_PERL5_BUILD=yes
CONFIGURE_ARGS?=--disable-dmx --disable-xvfb --disable-xnest \
        --without-xmlto --disable-docs --disable-devel-docs \
        --localstatedir=/var --without-dtrace --disable-xephyr \
        --enable-record=yes

.if ${SLAVE_PORT} == "no"
SUB_FILES=  pkg-install pkg-deinstall
MAN1=       Xorg.1 \
        Xserver.1 \
        cvt.1 \
        gtf.1
MAN4=       exa.4 \
        fbdevhw.4
MAN5=       xorg.conf.5

.if (WITH_NEW_XORG)
MAN5+=      xorg.conf.d.5
.endif
.else
# for slave ports we need to overwrite PLIST, so it doesn't overwrite
# PLIST_FILES, with the masterport plist.
PLIST=      ${.CURDIR}/pkg-plist
.endif

OPTIONS_DEFINE= AIGLX SUID HAL
AIGLX_DESC= Compile with Accelerated Indirect GLX support
SUID_DESC=  Install the Xorg server with setuid bit set
HAL_DESC=   Compile with HAL config support
OPTIONS_DEFAULT=    AIGLX SUID HAL

OPTIONS_EXCLUDE_sparc64=    HAL

.include <bsd.port.pre.mk>

.if defined(WITH_OPENSSL_BASE)
# The reason why I use this is cause openssl from base doesn't install a .pc file
# and configure will fail trying to find it. Setting both of those variables to
# a *non-empty* value by-passes the pkg-config check.
CONFIGURE_ENV=  SHA1_LIB="-L/usr/lib -lcrypto" SHA1_CFLAGS="-I/usr/include"
.endif

.if ${PORT_OPTIONS:MHAL}
LIB_DEPENDS+=   hal:${PORTSDIR}/sysutils/hal
CONFIGURE_ARGS+=    --enable-config-hal=yes
.else
CONFIGURE_ARGS+=    --enable-config-hal=no
.endif

.if ${PORT_OPTIONS:MAIGLX}
CONFIGURE_ARGS+=    --enable-aiglx=yes
.else
CONFIGURE_ARGS+=    --enable-aiglx=no
.endif

.if ${PORT_OPTIONS:MSUID}
CONFIGURE_ARGS+=--enable-install-setuid=yes
.else
CONFIGURE_ARGS+=--enable-install-setuid=no
.endif

.if ${ARCH} == ia64
PLIST_SUB+= IA64_NA="@comment "
EXTRA_PATCHES=  ${.CURDIR}/files/extra-arch-ia64
.else
PLIST_SUB+= IA64_NA=""
.endif

.if ${ARCH} == powerpc || ${ARCH} == powerpc64
PLIST_SUB+= PPC_NA="@comment "
EXTRA_PATCHES=  ${.CURDIR}/files/extra-arch-powerpc
.else
PLIST_SUB+= PPC_NA=""
.endif

.if ${ARCH} == sparc64
PLIST_SUB+= SPARC64=""
PLIST_SUB+= SPARC64_NA="@comment "
.else
PLIST_SUB+= SPARC64="@comment "
PLIST_SUB+= SPARC64_NA=""
.endif

.if ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == sparc64
PLIST_SUB+= AMD64_I386_SPARC64=""
.else
PLIST_SUB+= AMD64_I386_SPARC64="@comment "
.endif

.if ${PORT_OPTIONS:MSUID}
pre-everything::
    @${ECHO_MSG} "By default, the X Server installs as a set-user-id root binary. When run by"
    @${ECHO_MSG} "a normal user, it checks arguments and environment as done in the x11/wrapper"
    @${ECHO_MSG} "port before handling them normally.  If you are concerned about the security"
    @${ECHO_MSG} "of this, but still want to run an X Server (for example using xdm/kdm/gdm,"
    @${ECHO_MSG} "which will still run the server as root), you can cancel the build and set"
    @${ECHO_MSG} "xorg-server_UNSET=SUID in /etc/make.conf."
.endif

post-patch:
    @${REINPLACE_CMD} 's/test.*-traditional.*;/true;/' \
        ${WRKSRC}/configure
# build libglx.so but don't install it yet. which is done in pre-install.
    @${REINPLACE_CMD} -e 's|@GLX_TRUE@GLXMODS =|@GLX_BOGUS@GLXMODS =|g' \
        -e 's|^LTLIBRARIES = |LTLIBRARIES = libglx.la |g' \
        ${WRKSRC}/hw/xfree86/dixmods/Makefile.in

.if ${SLAVE_PORT} == "no"
pre-su-install:
# The .xorg dir is so it loads the rigth libglx library.
    ${MKDIR} ${PREFIX}/lib/xorg/modules/extensions/.xorg
    ${INSTALL_LIB} ${WRKSRC}/hw/xfree86/dixmods/.libs/libglx.so \
        ${PREFIX}/lib/xorg/modules/extensions/.xorg/

post-install:
.if defined(WITH_NEW_XORG)
    @${MKDIR} ${PREFIX}/share/X11/xorg.conf.d
.endif
    @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.endif

.include <bsd.port.post.mk>