1SUMMARY="A general purpose formula parser and interpreter"
2DESCRIPTION="Ixion is a general purpose formula parser & interpreter that can \
3calculate multiple named targets, or \"cells\".
4The cells can be referenced from each other, and the library takes care \
5of resolving their dependencies automatically upon calculation. The caller \
6can run the calculation routine either in a single-threaded mode, or \
7a multi-threaded mode. The library also supports re-calculations where the \
8contents of one or more cells have been modified since the last calculation, \
9and a partial calculation of only the affected cells need to be calculated."
10HOMEPAGE="https://gitlab.com/ixion/ixion"
11COPYRIGHT="Kohei Yoshida et al."
12LICENSE="MPL v2.0"
13REVISION="4"
14SOURCE_URI="https://gitlab.com/ixion/ixion/-/archive/$portVersion/ixion-$portVersion.tar.bz2"
15CHECKSUM_SHA256="63f3942defc684be82046b9d7454602dadafced9be7b3b60e9e8a5fa63ee91a8"
16SOURCE_DIR="ixion-$portVersion"
17
18ARCHITECTURES="all !x86_gcc2"
19SECONDARY_ARCHITECTURES="x86"
20
21boostMinimumVersion=1.83.0
22
23commandBinDir=$binDir
24commandSuffix=$secondaryArchSuffix
25if [ "$targetArchitecture" = x86_gcc2 ]; then
26	commandSuffix=
27	commandBinDir=$prefix/bin
28fi
29
30soVersion="${portVersion%.*}"
31
32PROVIDES="
33	ixion$secondaryArchSuffix = $portVersion
34	lib:libixion_$soVersion$secondaryArchSuffix = 0.0.0 compat >= 0
35	"
36REQUIRES="
37	haiku$secondaryArchSuffix
38	lib:libboost_filesystem$secondaryArchSuffix
39	lib:libboost_program_options$secondaryArchSuffix
40	lib:libboost_system$secondaryArchSuffix
41	lib:libz$secondaryArchSuffix
42	"
43
44PROVIDES_devel="
45	ixion${secondaryArchSuffix}_devel = $portVersion
46	devel:libixion_$soVersion$secondaryArchSuffix = 0.0.0 compat >= 0
47	"
48REQUIRES_devel="
49	ixion$secondaryArchSuffix == $portVersion base
50	"
51
52PROVIDES_tools="
53	ixion${secondaryArchSuffix}_tools = $portVersion
54	cmd:ixion_formula_tokenizer$commandSuffix = $portVersion
55	cmd:ixion_parser$commandSuffix = $portVersion
56	cmd:ixion_sorter$commandSuffix = $portVersion
57	"
58REQUIRES_tools="
59	$REQUIRES
60	ixion$secondaryArchSuffix == $portVersion base
61	"
62
63BUILD_REQUIRES="
64	haiku${secondaryArchSuffix}_devel
65	devel:libboost_filesystem$secondaryArchSuffix >= $boostMinimumVersion
66	devel:libboost_program_options$secondaryArchSuffix >= $boostMinimumVersion
67	devel:libboost_system$secondaryArchSuffix >= $boostMinimumVersion
68	devel:libz$secondaryArchSuffix
69	devel:libspdlog$secondaryArchSuffix
70	devel:mdds >= 2
71	"
72BUILD_PREREQUIRES="
73	cmd:aclocal
74	cmd:autoconf
75	cmd:automake
76	cmd:gcc$secondaryArchSuffix
77	cmd:ld$secondaryArchSuffix
78	cmd:libtoolize$secondaryArchSuffix
79	cmd:make
80	cmd:pkg_config$secondaryArchSuffix
81	"
82
83defineDebugInfoPackage ixion$secondaryArchSuffix \
84	"$(getPackagePrefix tools)"/bin/ixion-formula-tokenizer \
85	"$(getPackagePrefix tools)"/bin/ixion-parser \
86	"$(getPackagePrefix tools)"/bin/ixion-sorter \
87	"$libDir"/libixion-$soVersion.so.0.0.0
88
89PATCH()
90{
91	sed -i 's/-ldl//g' configure.ac
92	sed -i 's/-pthread//g' configure.ac
93	sed -i 's#$with_boost/include#$with_boost/headers#g' m4/boost.m4
94}
95
96BUILD()
97{
98	autoreconf -fi
99	BOOST_ROOT="$portPackageLinksDir"/devel~libboost_program_options/develop
100	runConfigure --omit-dirs binDir ./configure \
101		--bindir=$commandBinDir \
102		--enable-python=no
103	make $jobArgs
104}
105
106INSTALL()
107{
108	make install
109
110	rm -f "$libDir"/libixion-$soVersion.la
111
112	prepareInstalledDevelLib libixion-$soVersion
113	fixPkgconfig
114
115	packageEntries devel \
116		"$developDir"
117
118	packageEntries tools \
119		"$commandBinDir"
120}
121
122TEST()
123{
124	LIBRARY_PATH="$sourceDir/src/libixion/.libs${LIBRARY_PATH:+:$LIBRARY_PATH}" \
125	make check
126}
127