summaryrefslogtreecommitdiff
path: root/x11-servers/XttXF86srv-common/Makefile
blob: 0e0c0dd1cbf1fc320e201bb9dc7b564304f1429c (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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
# New ports collection makefile for:	Common Files for Xservers with Xtt
# Date created:		15 April 1998
# Whom:			Taguchi Takeshi <taguchi@tohoku.iij.ad.jp>
#
# $FreeBSD$
#

PORTNAME?=	xtt-common
PORTVERSION=	${VERSION}.${PATCHLEVEL}
CATEGORIES=	x11-servers
MASTER_SITES=	ftp://ftp.xfree86.org/pub/XFree86/3.3.6/source/ \
		ftp://ftp.freesoftware.com/pub/XFree86/3.3.6/source/ \
		http://X-TT.dsl.gr.jp/dists/1.x/${VERSION}/
DISTFILES=	X336src-1.tgz xtt-${VERSION}.tgz

MAINTAINER=	taguchi@tohoku.iij.ad.jp

RUN_DEPENDS+=	mkttfdir:${PORTSDIR}/print/perlftlib

VERSION=	1.3
PATCHLEVEL=	0
SERVER?=	common
INSTALLS_SHLIB=	yes
.if !defined(USE_SHARED_WRKSRC) && defined(COMPILE_ALL_SERVERS_AT_ONCE)
USE_SHARED_WRKSRC= YES
.endif
.if !defined(XDM_DES) && defined(USA_RESIDENT) && ${USA_RESIDENT} == NO
MASTER_SITES+=	ftp://psych.psy.uq.oz.au/pub/X11R5/ \
		ftp://ftp.internat.freebsd.org/pub/FreeBSD/X11-Crypto/ \
		ftp://ftp3.za.freebsd.org/pub/FreeBSD/X11-Crypto/
DISTFILES+=	Wraphelp.c
IGNOREFILES=	Wraphelp.c
.endif
USE_X_PREFIX=	YES
USE_FREETYPE=	YES
EXTRACT_ONLY=	X336src-1.tgz xtt-${VERSION}.tgz
BINOWN=		root
BINGRP=		wheel
MASTERDIR?=	${.CURDIR}/../XttXF86srv-common
FILESDIR=	${MASTERDIR}/files
PATCHDIR=	${MASTERDIR}/patches
.if defined(USE_SHARED_WRKSRC)
WRKDIR=		${MASTERDIR}/work
.endif
WRKSRC=		${WRKDIR}/xc
DIST_SUBDIR=	xc
XTTDIR=		${WRKDIR}/xtt-${VERSION}
.if !defined(PATCH_DEBUG)
XTTPATCHARGS=	-p1 -E -t -s -N
.else
XTTPATCHARGS=	-p1 -E
.endif
COREPATCHES=	shared-libfont-1.2.diff xfs-for-delayed-font-1.0.diff \
		make-xfs-only-1.3.diff xtt-xf335-changes.diff
XTTTARBALL=	xtt-core.tar
ADDPATCHES=	${XTTDIR}/contribute/xtt-xfsft-lib.patch
DOCDIR=		${PREFIX}/share/doc/Xtt
PATCH_DIST_ARGS= -d ${WRKDIR} --forward --quiet -E ${PATCH_STRIP}
#PATCH_DIST_STRIP=	-p1

# ******************
# USE_SHARED_WRKSRC:
#  All Xtt ports require many disk space. Imagen, X source code will extract
#  under server and common ports dir. This variable save your disk space.
#  if this variable is defined, X source will only extract under common
#  ports. server ports will use this common's WRKSRC.
# COMPILE_ALL_SERVERS_AT_ONCE:
#  If this variable is defined, All server ports will build at once.
#  This variable will save your time, if you want to make all xtt packages.
# ******************
.if defined(USE_SHARED_WRKSRC)
SHARED_COOKIE=		${WRKDIR}/.compiled_by_other_server_ports
CONFIGURE_COOKIE=	${WRKDIR}/.configure_done.${SERVER}
BUILD_COOKIE=		${WRKDIR}/.build_done.${SERVER}
INSTALL_COOKIE=		${WRKDIR}/.install_done.${SERVER}
PACKAGE_COOKIE=		${WRKDIR}/.package_done.${SERVER}
TMPPLIST=		${WRKDIR}/.PLIST.${SERVER}.mktmp
.if ${SERVER} == common && exists(${SHARED_COOKIE}) && !defined(COMPILE_ALL_SERVERS_AT_ONCE)
EXTRACT_ONLY=
.endif
.if ${SERVER} == common && exists(${SHARED_COOKIE}) && !defined(COMPILE_ALL_SERVERS_AT_ONCE)
NO_BUILD=	YES
.endif
.if defined(COMPILE_ALL_SERVERS_AT_ONCE) && ${SERVER} != xfs
ALL_SERVER=	XF86_3DLabs XF86_8514 XF86_AGX XF86_I128 XF86_Mach32 \
	XF86_Mach64 XF86_Mach8 XF86_Mono XF86_P9000 XF86_S3 XF86_S3V \
	XF86_SVGA XF86_VGA16 XF86_W32 \
	XF98_EGC  XF98_GA968 XF98_GANBWAP XF98_MGA XF98_NEC480 \
	XF98_NECS3 XF98_NKVNEC XF98_SVGA XF98_TGUI XF98_PWLB XF98_PWSKB \
	XF98_WABEP XF98_WABS XF98_WSNA \
	common
HOSTDEFSRV=	${FILESDIR}/host.def.ALL
.else
ALL_SERVER=	${SERVER} common
HOSTDEFSRV=	${FILESDIR}/host.def.${SERVER}
.endif
.else
ALL_SERVER=	${SERVER}
HOSTDEFSRV=	${FILESDIR}/host.def.${SERVER}
.endif

LOCALFILE=	host.def.local
HOSTDEFLOCAL=	${WRKDIR}/${LOCALFILE}
HOSTDEFDST=	${WRKSRC}/config/cf/${LOCALFILE}
HOSTDEFORG=	${WRKSRC}/config/cf/host.def
.if ${SERVER} == xfs
ALL_TARGET=	xfs
.elif ${SERVER} == common && !defined(COMPILE_ALL_SERVERS_AT_ONCE)
ALL_TARGET=	libfont
.else
ALL_TARGET=	World
.endif

.include <bsd.port.pre.mk>

pre-fetch:
.if defined(USE_SHARED_WRKSRC)
	@( \
	${ECHO} "************************************************************"; \
	${ECHO} "*  ALL PORTS COMMONLY USE x11/XttXF86srv-common/work !     *"; \
	${ECHO} "************************************************************")
.if defined(COMPILE_ALL_SERVERS_AT_ONCE)
	@( \
	${ECHO} "************************************************************"; \
	${ECHO} "*  ALL PORTS (except xfs) BUILD AT ONCE !                  *"; \
	${ECHO} "************************************************************")
.endif
.endif

.if !defined(USE_SHARED_WRKSRC) && exists(${MASTERDIR}/work/.configure_done.${SERVER})
pre-extract:
	@( \
	 ${ECHO} "ERROR:" ; \
	 ${ECHO} "Xtt ${SERVER} ports have already extracted with" ; \
	 ${ECHO} "\"USE_SHARED_WRKSRC\" option." ; \
	 ${FALSE} )
.endif

pre-patch:
	@( cd ${WRKSRC}; \
	   ${PATCH} -s < ${PATCHDIR}/xttpatch ; \
	   for i in ${COREPATCHES} ; do \
		${PATCH} ${XTTPATCHARGS} < ${XTTDIR}/$${i}; \
	   done; \
	   ${TAR} xf ${XTTDIR}/${XTTTARBALL} -C ${WRKSRC}/lib/font; \
	   for i in ${ADDPATCHES} ; do \
		${PATCH} ${XTTPATCHARGS} < $${i}; \
	   done )

pre-configure:
	@( ${CP} ${FILESDIR}/Imakefile ${WRKDIR} ; \
	   (cd ${WRKDIR} ; ${XMKMF} ; \
	    ${SETENV} ${SCRIPT_ENV} DISTDIR=${DISTDIR} WRKDIR=${WRKDIR} \
		FILESDIR=${FILESDIR} ${MAKE}) ; \
	   ${CAT} ${HOSTDEFLOCAL} ${HOSTDEFSRV} > ${HOSTDEFDST} ; \
	   ${ECHO} "#include <${LOCALFILE}>" >> ${HOSTDEFORG} )

.if ${SERVER} == common
do-install:
	@( \
	cd ${WRKSRC}/lib/font; \
	${SETENV} ${MAKE_ENV} ${MAKE} install; \
	${INSTALL_SCRIPT} ${FILESDIR}/mkfontdir.pl ${PREFIX}/bin; \
	${MKDIR} ${DOCDIR}; \
	${INSTALL_DATA} ${XTTDIR}/doc/[0A-Z]*.eng ${DOCDIR}; \
	${INSTALL_DATA} ${XTTDIR}/doc/[0A-Z]*.jis ${DOCDIR} )
.if ${PORTOBJFORMAT} == "aout"
	${LN} -sf libfont.so.1.2 ${PREFIX}/lib/libfont.so
.endif
.elif ${SERVER} == xfs
do-install:
	@${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${INSTALL_PROGRAM} \
	  ${WRKSRC}/programs/xfs/xfs ${PREFIX}/bin/xfs.xtt
.else
do-install:
	@( \
	${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${INSTALL_PROGRAM} \
	  ${WRKSRC}/programs/Xserver/${SERVER} ${PREFIX}/bin/${SERVER}.xtt; \
	${LN} -fs ${PREFIX}/bin/${SERVER}.xtt ${PREFIX}/bin/X )
.endif

.if defined(USE_SHARED_WRKSRC)
post-configure:
	@( \
	cd ${WRKDIR} ; \
	for i in ${ALL_SERVER} ; do \
		${TOUCH} ${TOUCH_FLAGS} `${BASENAME} ${CONFIGURE_COOKIE} .${SERVER}`.$${i} ; \
	done )
.if ${SERVER} != common || (${SERVER} == common && defined(COMPILE_ALL_SERVERS_AT_ONCE))
	@${TOUCH} ${TOUCH_FLAGS} ${SHARED_COOKIE}
.endif

post-build:
	@( \
	cd ${WRKDIR} ; for i in ${ALL_SERVER} ; do \
		${TOUCH} ${TOUCH_FLAGS} `${BASENAME} ${BUILD_COOKIE} .${SERVER}`.$${i} ; \
	done )
.if ${SERVER} != common || (${SERVER} == common && defined(COMPILE_ALL_SERVERS_AT_ONCE))
	@${TOUCH} ${TOUCH_FLAGS} ${SHARED_COOKIE}
.endif

post-install:
	@( \
	cd ${WRKDIR} ; ${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE} ; \
		${TOUCH} ${TOUCH_FLAGS} `${BASENAME} ${INSTALL_COOKIE} .${SERVER}`.common )

post-package:
	@( \
	cd ${WRKDIR} ; 	${TOUCH} ${TOUCH_FLAGS} ${PACKAGE_COOKIE} )
.endif

.include <bsd.port.post.mk>