1SUMMARY="Robust, somewhat scalable, cross-platform client-server solution"
2DESCRIPTION="
3The MUSCLE system is a robust, somewhat scalable, cross-platform client-server \
4solution for dynamic distributed applications for Haiku and other operating \
5systems.
6It allows (n) client programs (each of which may be running on a \
7separate computer and/or under a different OS) to communicate with each other \
8in a many-to-many message-passing style. It employs a central server to which \
9client programs may connect or disconnect at any time (this design is similar \
10to other client-server systems such as Quake servers, IRC servers, and Napster \
11servers, but more general in application).
12In addition to the client-server \
13system, MUSCLE contains classes to support peer-to-peer message streaming \
14connections, as well as some handy miscellaneous utility classes.
15"
16HOMEPAGE="https://public.msli.com/lcs/muscle/index.html"
17COPYRIGHT="2000-2009 Meyer Sound Laboratories Inc."
18LICENSE="BSD (3-clause)"
19REVISION="3"
20SOURCE_URI="https://public.msli.com/lcs/muscle/muscle6.00.zip"
21CHECKSUM_SHA256="b12abe12b5cc4aa93126f86ae07a4bcd02ee8d89d692789435debd5becc53437"
22SOURCE_DIR="muscle"
23PATCHES="muscle-6.00.patchset"
24
25#TODO:enable multithreading for the devel package!
26
27ARCHITECTURES="all !x86_gcc2"
28SECONDARY_ARCHITECTURES="x86"
29
30PROVIDES="
31	muscle$secondaryArchSuffix = $portVersion
32	cmd:muscled$secondaryArchSuffix = $portVersion
33	cmd:muscled_admin$secondaryArchSuffix = $portVersion
34	"
35REQUIRES="
36	haiku$secondaryArchSuffix
37	"
38
39PROVIDES_devel="
40	muscle${secondaryArchSuffix}_devel = $portVersion
41	devel:libmuscle$secondaryArchSuffix = $portVersion
42	devel:muscle$secondaryArchSuffix = $portVersion
43	"
44REQUIRES_devel="
45	muscle$secondaryArchSuffix == $portVersion base
46	"
47
48BUILD_REQUIRES="
49	haiku${secondaryArchSuffix}_devel
50	devel:libz$secondaryArchSuffix
51	"
52BUILD_PREREQUIRES="
53	cmd:gcc$secondaryArchSuffix
54	cmd:ld$secondaryArchSuffix
55	cmd:make
56	"
57
58BUILD()
59{
60	if [ $effectiveTargetArchitecture == x86_64 ]; then
61		CXXFLAGS="-DMUSCLE_64_BIT_PLATFORM"
62	fi
63	export CXXFLAGS="-D_BSD_SOURCE $CXXFLAGS"
64	cd server
65	make $jobArgs all libmuscle.a
66}
67
68INSTALL()
69{
70	mkdir -p $binDir
71
72	cd server
73	cp muscled $binDir
74	cp admin $binDir/muscled-admin
75
76	mkdir -p $developLibDir
77	mkdir -p $includeDir/muscle
78
79	cp libmuscle.a $developLibDir
80	cd ..
81	#XXX: do we really need all of those?
82	for d in message besupport dataio iogateway reflector regex \
83		util support syslog system zlib zlib/zlib; do
84		mkdir -p $includeDir/muscle/$d
85		cp $d/*.h $includeDir/muscle/$d
86	done
87	packageEntries devel \
88			$developDir
89}
90