blob: c515fb34971fafc6e295d46e4eabac9cf123fb5e (
plain)
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
|
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic multilib multilib-minimal toolchain-funcs
DESCRIPTION="Network Audio System"
HOMEPAGE="https://radscan.com/nas.html"
SRC_URI="https://sourceforge.net/${PN}/${P}.tar.gz"
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.9.5-patches.tar.xz"
LICENSE="HPND MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
IUSE="doc static-libs"
RDEPEND="
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau[${MULTILIB_USEDEP}]
x11-libs/libXaw
x11-libs/libXext
x11-libs/libXmu
x11-libs/libXpm
x11-libs/libXt[${MULTILIB_USEDEP}]"
DEPEND="
${RDEPEND}
x11-base/xorg-proto"
BDEPEND="
app-text/rman
app-alternatives/yacc
app-alternatives/lex
sys-devel/gcc
x11-misc/gccmakedep
riscv? ( x11-misc/xorg-cf-files )
>=x11-misc/imake-1.0.8-r1"
DOCS=( BUILDNOTES FAQ HISTORY README RELEASE TODO )
PATCHES=(
"${WORKDIR}"/${PN}-1.9.5-patches
"${FILESDIR}"/${PN}-1.9.5-gcc14-build-fix.patch
)
src_prepare() {
default
multilib_copy_sources
}
multilib_src_configure() {
# Ancient configure and relies on imake, not worth it
append-cflags -std=gnu89
# -Werror=lto-type-mismatch
# https://bugs.gentoo.org/859934
# https://sourceforge.net/p/nas/bugs/13/
filter-lto
# Need to run econf so that config.guess is updated
pushd config || die
econf
popd || die
# bug #947416
unset MAKEOPTS GNUMAKEFLAGS
local cpp=($(get_abi_CHOST ${DEFAULT_ABI})-gcc $(get_abi_CFLAGS) -E) #884203
CC="$(tc-getBUILD_CC)" LD="$(tc-getLD)" \
IMAKECPP="${IMAKECPP:-${cpp[*]}}" \
xmkmf -a || die
}
multilib_src_compile() {
# EXTRA_LDOPTIONS, SHLIBGLOBALSFLAGS #336564#c2
local emakeopts=(
AR="$(tc-getAR) cq"
AS="$(tc-getAS)"
CC="$(tc-getCC)"
CDEBUGFLAGS="${CFLAGS}"
CXX="$(tc-getCXX)"
CXXDEBUFLAGS="${CXXFLAGS}"
EXTRA_LDOPTIONS="${LDFLAGS}"
LD="$(tc-getLD)"
MAKE="${MAKE:-gmake}"
RANLIB="$(tc-getRANLIB)"
SHLIBGLOBALSFLAGS="${LDFLAGS}"
WORLDOPTS=
)
if multilib_is_native_abi ; then
# dumb fix for parallel make issue wrt #446598, Imake sux
emake "${emakeopts[@]}" -C server/dia all
emake "${emakeopts[@]}" -C server/dda/voxware all
emake "${emakeopts[@]}" -C server/os all
else
sed -i \
-e 's/SUBDIRS =.*/SUBDIRS = include lib config/' \
Makefile || die
fi
emake "${emakeopts[@]}"
}
multilib_src_install() {
# ranlib is used at install phase too wrt #446600
emake RANLIB="$(tc-getRANLIB)" \
DESTDIR="${D}" USRLIBDIR=/usr/$(get_libdir) \
install install.man
}
multilib_src_install_all() {
einstalldocs
if use doc; then
docinto doc
dodoc doc/{actions,protocol.txt,README}
docinto pdf
dodoc doc/pdf/*.pdf
fi
mv -vf "${D}"/etc/nas/nasd.conf{.eg,} || die
newconfd "${FILESDIR}"/nas.conf.d nas
newinitd "${FILESDIR}"/nas.init.d nas
if ! use static-libs; then
rm -f "${D}"/usr/lib*/libaudio.a || die
fi
}
|