mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-06 06:58:57 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
218 lines
6.4 KiB
Bash
218 lines
6.4 KiB
Bash
SUMMARY="New curses library"
|
|
DESCRIPTION="The Ncurses (new curses) library is a free software emulation of \
|
|
curses in System V Release 4.0, and more. It uses Terminfo format, supports \
|
|
pads and color and multiple highlights and forms characters and function-key \
|
|
mapping, and has all the other SYSV-curses enhancements over BSD Curses.
|
|
The ncurses code was developed under GNU/Linux. It has been in use for some \
|
|
time with OpenBSD as the system curses library, and on FreeBSD and NetBSD as \
|
|
an external package. It should port easily to any ANSI/POSIX-conforming UNIX. \
|
|
It has even been ported to OS/2 Warp!
|
|
The distribution includes the library and support utilities, including a \
|
|
terminfo compiler tic, a decompiler infocmp, clear, tput, tset, and a \
|
|
termcap conversion tool captoinfo. Full manual pages are provided for the \
|
|
library and tools."
|
|
HOMEPAGE="https://www.gnu.org/software/ncurses/ncurses.html"
|
|
COPYRIGHT="1998-2018 Free Software Foundation, Inc."
|
|
LICENSE="MIT"
|
|
REVISION="1"
|
|
SOURCE_URI="https://ftpmirror.gnu.org/ncurses/ncurses-$portVersion.tar.gz
|
|
https://ftp.gnu.org/gnu/ncurses/ncurses-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17"
|
|
SOURCE_DIR="ncurses-$portVersion"
|
|
PATCHES="ncurses-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="all"
|
|
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
|
|
|
|
libVersion="$portVersion"
|
|
libVersionCompat="$libVersion compat >= 6"
|
|
portVersionCompat="$portVersion compat >= 6"
|
|
|
|
PROVIDES="
|
|
ncurses6$secondaryArchSuffix = $portVersion
|
|
lib:libform$secondaryArchSuffix = $libVersionCompat
|
|
lib:libformw$secondaryArchSuffix = $libVersionCompat
|
|
lib:libmenu$secondaryArchSuffix = $libVersionCompat
|
|
lib:libmenuw$secondaryArchSuffix = $libVersionCompat
|
|
lib:libncurses$secondaryArchSuffix = $libVersionCompat
|
|
lib:libncursesw$secondaryArchSuffix = $libVersionCompat
|
|
lib:libncurses++$secondaryArchSuffix = $libVersionCompat
|
|
lib:libncurses++w$secondaryArchSuffix = $libVersionCompat
|
|
lib:libpanel$secondaryArchSuffix = $libVersionCompat
|
|
lib:libpanelw$secondaryArchSuffix = $libVersionCompat
|
|
"
|
|
if [ -z "$secondaryArchSuffix" ]; then
|
|
PROVIDES="$PROVIDES
|
|
cmd:captoinfo = $portVersionCompat
|
|
cmd:clear = $portVersionCompat
|
|
cmd:infocmp = $portVersionCompat
|
|
cmd:infotocap = $portVersionCompat
|
|
cmd:reset = $portVersionCompat
|
|
cmd:tabs = $portVersionCompat
|
|
cmd:tic = $portVersionCompat
|
|
cmd:toe = $portVersionCompat
|
|
cmd:tput = $portVersionCompat
|
|
cmd:tset = $portVersionCompat
|
|
"
|
|
fi
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_devel="
|
|
ncurses6${secondaryArchSuffix}_devel = $portVersion
|
|
cmd:ncurses6_config${secondaryArchSuffix} = $portVersion
|
|
cmd:ncursesw6_config${secondaryArchSuffix} = $portVersion
|
|
devel:libform$secondaryArchSuffix = $libVersionCompat
|
|
devel:libformw$secondaryArchSuffix = $libVersionCompat
|
|
devel:libmenu$secondaryArchSuffix = $libVersionCompat
|
|
devel:libmenuw$secondaryArchSuffix = $libVersionCompat
|
|
devel:libncurses$secondaryArchSuffix = $libVersionCompat
|
|
devel:libncursesw$secondaryArchSuffix = $libVersionCompat
|
|
devel:libncurses++$secondaryArchSuffix = $libVersionCompat
|
|
devel:libncurses++w$secondaryArchSuffix = $libVersionCompat
|
|
devel:libpanel$secondaryArchSuffix = $libVersionCompat
|
|
devel:libpanelw$secondaryArchSuffix = $libVersionCompat
|
|
"
|
|
REQUIRES_devel="
|
|
ncurses6$secondaryArchSuffix == $portVersion base
|
|
"
|
|
CONFLICTS_devel="
|
|
ncurses${secondaryArchSuffix}_devel
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:grep
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:libtoolize$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:sed
|
|
"
|
|
|
|
PATCH()
|
|
{
|
|
if [ "$effectiveTargetArchitecture" = x86_gcc2 ]; then
|
|
sed -i 's/=stdc++/=stdc++.r4/' aclocal.m4 configure
|
|
fi
|
|
}
|
|
|
|
doBuild()
|
|
{
|
|
if [ $# -lt 1 ]; then
|
|
echo >&2 "Usage: doBuild <targetDir> [ <configureFlags> ... ]"
|
|
exit 1
|
|
fi
|
|
|
|
targetDir=$(pwd)/$1
|
|
shift 1
|
|
|
|
# Parse additional arguments. "--libs-only" means we only want the
|
|
# libraries, nothing else. "--without-progs" means no programs and no
|
|
# terminfo DB (requires tic).
|
|
local noData
|
|
local libsOnly
|
|
local configureArgs
|
|
local arg
|
|
for arg in $@; do
|
|
case "$arg" in
|
|
--libs-only)
|
|
noData=1
|
|
libsOnly=1
|
|
arg="--without-progs"
|
|
;;
|
|
--without-progs)
|
|
noData=1
|
|
;;
|
|
esac
|
|
configureArgs="$configureArgs $arg"
|
|
done
|
|
|
|
rm -rf $targetDir
|
|
mkdir $targetDir
|
|
|
|
runConfigure \
|
|
--omit-dirs "dataRootDir docDir" ./configure \
|
|
--with-libtool \
|
|
--enable-termcap \
|
|
--enable-hard-tabs \
|
|
--enable-pc-files \
|
|
$configureArgs
|
|
make $jobArgs
|
|
|
|
if [ -z "$noData" ]; then
|
|
# We need LIBRARY_PATH to include the library installation directory,
|
|
# since the installation process for the terminfo database will run tic
|
|
# and the built-in rpath doesn't consider the DESTDIR we're using.
|
|
LIBRARY_PATH="$targetDir/$prefix/lib:$LIBRARY_PATH" \
|
|
make install DESTDIR=$targetDir
|
|
else
|
|
make install.libs DESTDIR=$targetDir
|
|
if [ -z "$libsOnly" ]; then
|
|
make install.includes DESTDIR=$targetDir
|
|
make install.man DESTDIR=$targetDir
|
|
fi
|
|
fi
|
|
|
|
# clean up for the next build
|
|
make clean
|
|
}
|
|
|
|
BUILD()
|
|
{
|
|
# Unfortunately building only works in the source directory. So we build
|
|
# two times -- once without and once with wide-char support -- installing in
|
|
# temporary directories from which we copy to the actual installation
|
|
# directory in INSTALL().
|
|
|
|
# For the secondary architecture we don't want the programs nor the
|
|
# terminfo DB. The main package will depend on the primary package which
|
|
# provides all this.
|
|
local withoutProgramArgs
|
|
if [ -n "$secondaryArchSuffix" ]; then
|
|
withoutProgramArgs="--without-progs"
|
|
fi
|
|
|
|
doBuild build-nowidec $withoutProgramArgs
|
|
doBuild build-widec --enable-widec --libs-only
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
cp -ra build-nowidec/$prefix/. $prefix
|
|
cp -ra build-widec/$prefix/. $prefix
|
|
|
|
# remove libtool files
|
|
rm $libDir/lib*.la
|
|
|
|
# copy pkg-config files
|
|
mkdir -p $libDir/pkgconfig
|
|
cp build-*/*.pc $libDir/pkgconfig
|
|
|
|
# prepare develop/lib
|
|
prepareInstalledDevelLibs \
|
|
libform libmenu libncurses libncurses++ libpanel \
|
|
libformw libmenuw libncursesw libncurses++w libpanelw
|
|
fixPkgconfig
|
|
|
|
# fix ncurses[w]6-config
|
|
fixDevelopLibDirReferences $binDir/ncurses6-config $binDir/ncursesw6-config
|
|
|
|
# devel package
|
|
packageEntries devel \
|
|
$binDir/ncurses6-config \
|
|
$binDir/ncursesw6-config \
|
|
$developDir \
|
|
$manDir/man3
|
|
|
|
# For the secondary architecture package clean up stuff we don't need, since
|
|
# we make it depend on the primary architecture package.
|
|
if [ -n "$secondaryArchSuffix" ]; then
|
|
rm -rf $binDir
|
|
rm -rf $documentationDir
|
|
fi
|
|
}
|