#### this file is sourced not run
PKGVER=3.7.1
PKGBUILD=1
PKGARCH=x86_64

# source: post-BLFS 7.10 (2016-11-02)
TARBALL=llvm-$PKGVER.src.tar.xz
MD5SUM=bf8b3a2c79e61212c5409041dfdbd319
SRC_URL=http://llvm.org/releases/$PKGVER/$TARBALL
BUNDLE=

SLACKREQ='libffi libxml2'
SLACKDESC="llvm: llvm $PKGVER (Low-Level-Virtual-Machine (LLVM) library)  
llvm:  
llvm: The LLVM package contains a collection of modular and reusable compiler 
llvm: and toolchain technologies. The Low Level Virtual Machine (LLVM) Core 
llvm: libraries provide a modern source and target-independent optimizer, 
llvm: along with code generation support for many popular CPUs (as well as 
llvm: some less common ones). These libraries are built around a well 
llvm: specified code representation known as the LLVM intermediate 
llvm: representation (\"LLVM IR\").  
llvm: 
llvm:
"

### default pkg_download
### default pkg_prepare
### default pkg_package
### build
pkg_build() {
	cd /tmp/llvm*

	mkdir -v build &&
	cd       build &&

	export PKG_CONFIG_PATH="$PKG_CONFIG_PATH64:$PKG_CONFIG_PATH"
		
	# official cmake build commands from LLVM
	#-DLLVM_BUILD_LLVM_DYLIB=ON - stable, recommended, but big
	# -DBUILD_SHARED_LIBS=ON - experimental, not recommended, but small
	cmake .. -DCMAKE_INSTALL_PREFIX=/usr  \
	-DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \
	-DLLVM_ENABLE_FFI=ON                  \
	-DBUILD_SHARED_LIBS=ON				\
	-DCMAKE_BUILD_TYPE=Release            \
	-DLLVM_ENABLE_ASSERTIONS=OFF          \
    -DLLVM_ENABLE_PIC=ON                  \
	-DLLVM_LIBDIR_SUFFIX=64               \
	-DLLVM_BUILD_TOOLS=OFF				\
	-DLLVM_BUILD_EXAMPLES=OFF			\
	-DLLVM_INCLUDE_EXAMPLES=OFF			\
	-DLLVM_BUILD_TESTS=OFF				\
	-DLLVM_INCLUDE_TESTS=OFF			\
	-DLLVM_BUILD_DOCS=OFF				\
    -DCMAKE_C_FLAGS="${BUILD64} -O2"      \
    -DCMAKE_CXX_FLAGS="${BUILD64} -O2"    \
    -Wno-dev                              \
	&&

	make $MAKEFLAGS && 
	
	#Since we disabled the build of all tools above we have to build llvm-config manually
	make llvm-config &&
	install -m755 /tmp/llvm-*/build/bin/llvm-config /usr/bin/ &&
	
	make $MAKEINSTALLFLAGS install &&
	pkg_build_slackdesc &&
	
	# CBLFS multilib patch
	mv -v /usr/bin/llvm-config{,-64} &&
	ln -sfv multiarch_wrapper /usr/bin/llvm-config &&
	mv -v /usr/include/llvm/Config/llvm-config{,-64}.h &&	
	install -m644 /tmp/pkg/llvm-config.h /usr/include/llvm/Config
}


