-
Notifications
You must be signed in to change notification settings - Fork 106
/
builtin.mk
136 lines (125 loc) · 4.35 KB
/
builtin.mk
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
# $NetBSD: builtin.mk,v 1.46 2014/07/03 14:59:55 wiz Exp $
.include "../../mk/bsd.fast.prefs.mk"
BUILTIN_PKG:= gettext
BUILTIN_FIND_LIBS:= intl
BUILTIN_FIND_HEADERS_VAR:= H_GETTEXT H_GENTOO_GETTEXT \
H_NGETTEXT_GETTEXT \
H_OPNSVR5_GETTEXT
BUILTIN_FIND_HEADERS.H_GETTEXT= libintl.h
BUILTIN_FIND_GREP.H_GETTEXT= \#define[ ]*__USE_GNU_GETTEXT
BUILTIN_FIND_HEADERS.H_GENTOO_GETTEXT= libintl.h
BUILTIN_FIND_GREP.H_GENTOO_GETTEXT= gentoo-multilib/.*/libintl.h
BUILTIN_FIND_HEADERS.H_NGETTEXT_GETTEXT=libintl.h
BUILTIN_FIND_GREP.H_NGETTEXT_GETTEXT= char.*ngettext
BUILTIN_FIND_HEADERS.H_OPNSVR5_GETTEXT= libintl.h
BUILTIN_FIND_GREP.H_OPNSVR5_GETTEXT= libgnuintl.h
.include "../../mk/buildlink3/bsd.builtin.mk"
###
### Determine if there is a built-in implementation of the package and
### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
###
#
# Gentoo Linux has an unusual scheme where /usr/include/libintl.h
# pulls in gentoo-multilib/$ARCH/libintl.h, where the latter is the
# real libintl.h file. We can safely assume that this is GNU gettext
# (in glibc).
#
# SCO OpenServer 5.0.7/3.2 has an unusual scheme where /usr/include/libintl.h
# pulls in /usr/include/libgnuintl.h, where the latter is the real libintl.h.
#
.if !defined(IS_BUILTIN.gettext)
IS_BUILTIN.gettext= no
. if (empty(H_GETTEXT:M__nonexistent__) && \
empty(H_GETTEXT:M${LOCALBASE}/*)) || \
(empty(H_GENTOO_GETTEXT:M__nonexistent__) && \
empty(H_GENTOO_GETTEXT:M${LOCALBASE}/*)) || \
(empty(H_OPNSVR5_GETTEXT:M__nonexistent__) && \
empty(H_OPNSVR5_GETTEXT:M${LOCALBASE}/*))
IS_BUILTIN.gettext= yes
. endif
.endif
MAKEVARS+= IS_BUILTIN.gettext
###
### Determine whether we should use the built-in implementation if it
### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
###
.if !defined(USE_BUILTIN.gettext)
. if ${PREFER.gettext} == "pkgsrc"
USE_BUILTIN.gettext= no
. else
USE_BUILTIN.gettext= ${IS_BUILTIN.gettext}
. if defined(BUILTIN_PKG.gettext) && \
!empty(IS_BUILTIN.gettext:M[yY][eE][sS])
USE_BUILTIN.gettext= yes
. for _dep_ in ${BUILDLINK_API_DEPENDS.gettext}
. if !empty(USE_BUILTIN.gettext:M[yY][eE][sS])
USE_BUILTIN.gettext!= \
if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.gettext:Q}; then \
${ECHO} yes; \
else \
${ECHO} no; \
fi
. endif
. endfor
. endif
# XXX
# XXX By default, assume that the native gettext implementation is good
# XXX enough to replace GNU gettext if it supplies ngettext().
# XXX
. if empty(H_NGETTEXT_GETTEXT:M__nonexistent__) && \
empty(H_NGETTEXT_GETTEXT:M${LOCALBASE}/*)
USE_BUILTIN.gettext= yes
. endif
#
# Some platforms don't have a gettext implementation that can replace
# GNU gettext.
#
_INCOMPAT_GETTEXT?= SunOS-*-* # XXX move to mk/platforms/SunOS.mk
. for _pattern_ in ${_INCOMPAT_GETTEXT} ${INCOMPAT_GETTEXT}
. if !empty(MACHINE_PLATFORM:M${_pattern_})
USE_BUILTIN.gettext= no
. endif
. endfor
. endif # PREFER.gettext
.endif
MAKEVARS+= USE_BUILTIN.gettext
# Define BUILTIN_LIBNAME.gettext to be the base name of the built-in
# gettext library.
#
.if !empty(BUILTIN_LIB_FOUND.intl:M[yY][eE][sS])
BUILTIN_LIBNAME.gettext= intl
.else
BUILTIN_LIBNAME.gettext= # empty (part of the C library)
.endif
###
### The section below only applies if we are not including this file
### solely to determine whether a built-in implementation exists.
###
CHECK_BUILTIN.gettext?= no
.if !empty(CHECK_BUILTIN.gettext:M[nN][oO])
. if !empty(USE_BUILTIN.gettext:M[yY][eE][sS])
BUILDLINK_LIBNAME.gettext= ${BUILTIN_LIBNAME.gettext}
. if !empty(OS_VARIANT:MSCOOSR5)
BUILDLINK_PREFIX.gettext= /usr/gnu
. endif
. if empty(BUILTIN_LIBNAME.gettext)
BUILDLINK_TRANSFORM+= rm:-lintl
. endif
. endif
# If using a built-in libintl that isn't from GNU gettext, then set up
# some GNU configure variables that are checked by modern gettext.m4
# so that it will detect "GNU gettext" in the existing libintl.
#
. if defined(GNU_CONFIGURE)
. if !empty(USE_BUILTIN.gettext:M[yY][eE][sS])
. if !empty(BUILTIN_LIB_FOUND.intl:M[yY][eE][sS])
CONFIGURE_ENV+= gt_cv_func_gnugettext_libintl="yes"
CONFIGURE_ENV+= gt_cv_func_gnugettext1_libintl="yes"
. if empty(H_NGETTEXT_GETTEXT:M__nonexistent__) && \
empty(H_NGETTEXT_GETTEXT:M${LOCALBASE}/*)
CONFIGURE_ENV+= gt_cv_func_gnugettext2_libintl="yes"
. endif
. endif
. endif
. endif
.endif # CHECK_BUILTIN.gettext