Files
haikuports/sys-devel/clang/clang-3.5.1.recipe
Jerome Duval d6b2889d4a clang: fix packaging and headers inclusion.
* clang headers were not included.
* the x86_64 target wasn't working as expected, ie
 missing __HAIKU__, etc.
* this recipe should probably be merged with llvm's recipe.
2016-01-15 18:33:59 +00:00

114 lines
3.5 KiB
Bash

SUMMARY="A llvm front end compiler for C, C++ and Objective-C"
SUMMARY_analysis="Static analysis tools using the clang compiler"
DESCRIPTION="Clang is an 'LLVM native' C/C++/Objective-C compiler, which aims \
to deliver amazingly fast compiles (e.g. about 3x faster than GCC when \
compiling Objective-C code in a debug configuration), extremely useful error \
and warning messages and to provide a platform for building great source \
level tools."
HOMEPAGE="http://www.llvm.org/"
COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign"
LICENSE="UIUC"
REVISION="2"
SOURCE_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.xz"
SOURCE_URI_2="http://llvm.org/releases/${portVersion}/cfe-${portVersion}.src.tar.xz"
SOURCE_URI_3="http://llvm.org/releases/${portVersion}/clang-tools-extra-${portVersion}.src.tar.xz"
CHECKSUM_SHA256="bf3275d2d7890015c8d8f5e6f4f882f8cf3bf51967297ebe74111d6d8b53be15"
CHECKSUM_SHA256_2="6773f3f9cf815631cc7e779ec134ddd228dc8e9a250e1ea3a910610c59eb8f5c"
CHECKSUM_SHA256_3="e8d011250389cfc36eb51557ca25ae66ab08173e8d53536a0747356105d72906"
SOURCE_DIR="llvm-$portVersion.src"
PATCHES="llvm-${portVersion}.patchset"
PATCHES_2="clang-${portVersion}.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
clang$secondaryArchSuffix = $portVersion
cmd:clang = $portVersion
cmd:clang++ = $portVersion
cmd:c_index_test = $portVersion
lib:libclang$secondaryArchSuffix = $portVersion
devel:libclang$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_analysis="
clang${secondaryArchSuffix}_analysis = $portVersion
cmd:scan_build$secondaryArchSuffix = $portVersion
cmd:scan_view$secondaryArchSuffix = $portVersion
"
REQUIRES_analysis="
clang$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:groff
cmd:ld$secondaryArchSuffix
cmd:libtoolize
cmd:make
cmd:python
cmd:sed
"
BUILD()
{
# Add clang tools
mkdir -p tools/clang
cp -rd $sourceDir2/cfe-${portVersion}.src/* tools/clang/
# Add clang tools's tool's (really llvm?)
mkdir -p tools/clang/tools/extra
cp -rd $sourceDir3/clang-tools-extra-${portVersion}.src/* tools/clang/tools/extra
# Haiku C++ requires rtti in a lot of central system components
# such as Mesa
export REQUIRES_RTTI=1
# TODO: clang's build system seems to ignore doc / man / shared dirs?
runConfigure ./configure --enable-optimized
make $jobArgs PROJ_datadir=$dataDir PROJ_docsdir=$docDir \
PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir
}
INSTALL()
{
mkdir -p $developDir
mkdir -p $docDir
mkdir -p $binDir
make -C tools/clang install PROJ_datadir=$dataDir PROJ_docsdir=$docDir \
PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir
# Install static analysis tools
mkdir -p $developDir/tools/clang$secondaryArchSuffix
cp -Ra tools/clang/tools/scan-build $developDir/tools/clang$secondaryArchSuffix/
cp -Ra tools/clang/tools/scan-view $developDir/tools/clang$secondaryArchSuffix/
ln -s $developDir/tools/clang$secondaryArchSuffix/scan-build/scan-build $binDir/scan-build
ln -s $developDir/tools/clang$secondaryArchSuffix/scan-view/scan-view $binDir/scan-view
ln -s $binDir/clang $developDir/tools/clang$secondaryArchSuffix/scan-build/clang
prepareInstalledDevelLibs libclang
# analysis package
packageEntries analysis \
$binDir/scan-build \
$binDir/scan-view \
$developDir/tools/clang$secondaryArchSuffix
}
TEST()
{
make check
}