You've already forked OpenUxAS-SoI
mirror of
https://github.com/AdaCore/OpenUxAS-SoI.git
synced 2026-02-12 13:04:49 -08:00
117 lines
3.7 KiB
Python
117 lines
3.7 KiB
Python
#! /usr/bin/env python3
|
|
import time
|
|
import sys
|
|
import os
|
|
import subprocess
|
|
from subprocess import call
|
|
|
|
def callWithShell(cmd):
|
|
process = subprocess.Popen(cmd, shell=True)#, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, bufsize=1)
|
|
process.wait()
|
|
#call(cmd,shell=True)
|
|
|
|
#if an argument is being passed @ 1, then try to set as _SUDO
|
|
_SUDO= ''
|
|
try:
|
|
_SUDO=sys.argv[1]
|
|
except:
|
|
pass
|
|
|
|
# exit on non-zero return
|
|
callWithShell("set -e")
|
|
|
|
|
|
#BUILD_TYPE="AUTOCONFIG"
|
|
#BUILD_TYPE="AUTOTOOLS"
|
|
BUILD_TYPE="BOOST"
|
|
#BUILD_TYPE="CMAKE"
|
|
#BUILD_TYPE="MAKE"
|
|
|
|
LIBRARY_NAME="boost"
|
|
LIBRARY_FOLDER_NAME="boost"
|
|
SOURCE_ARCHIVE_FILE="boost_1_67_0.tar.bz2"
|
|
SOURCE_ARCHIVE_ADDRESS="https://dl.bintray.com/boostorg/release/1.67.0/source/"
|
|
SOURCE_FOLDER_NAME="boost_1_67_0"
|
|
|
|
ARCHIVE_COMMAND="tar xjf "
|
|
|
|
print("Making Dirs")
|
|
sys.stdout.flush()
|
|
CWD = os.getcwd()
|
|
#DELETE PRINT
|
|
#making directory boost
|
|
|
|
callWithShell("mkdir -p ./{}".format(LIBRARY_FOLDER_NAME))
|
|
os.chdir(LIBRARY_FOLDER_NAME)
|
|
|
|
#have to check if file exists in LIBRARY_FOLDER_NAME
|
|
if (os.path.isfile(SOURCE_ARCHIVE_FILE)):
|
|
print("*** {}:: Archive File ({}) Exists, Skipping Source Fetch! ***".format(LIBRARY_NAME,SOURCE_ARCHIVE_FILE))
|
|
sys.stdout.flush()
|
|
else:
|
|
print("Fetching Source")
|
|
sys.stdout.flush()
|
|
callWithShell("wget {}{}".format(SOURCE_ARCHIVE_ADDRESS, SOURCE_ARCHIVE_FILE))
|
|
|
|
print("Unpacking...")
|
|
sys.stdout.flush()
|
|
#unzip -o ${SOURCE_ARCHIVE_FILE}
|
|
callWithShell("{} {}".format( ARCHIVE_COMMAND, SOURCE_ARCHIVE_FILE))
|
|
#callWithShell("{} {}".format( ARCHIVE_COMMAND, SOURCE_ARCHIVE_FILE))
|
|
#race condition
|
|
|
|
# change to the source directory
|
|
os.chdir(SOURCE_FOLDER_NAME)
|
|
print("Building...")
|
|
sys.stdout.flush()
|
|
|
|
if(BUILD_TYPE == "AUTOCONFIG"):
|
|
callWithShell("chmod +x configure")
|
|
callWithShell("./configure --prefix=/usr/local")
|
|
callWithShell("make -j8; make")
|
|
|
|
print("Installing...")
|
|
sys.stdout.flush()
|
|
callWithShell("{} make install".format(_SUDO))
|
|
elif (BUILD_TYPE == "AUTOTOOLS"):
|
|
callWithShell("./autogen.sh")
|
|
callWithShell("./configure && make check")
|
|
print("Installing...")
|
|
sys.stdout.flush()
|
|
callWithShell("{} make install".format(_SUDO))
|
|
callWithShell("{} ldconfig".format(_SUDO))
|
|
elif (BUILD_TYPE == "BOOST"):
|
|
callWithShell("export CPLUS_INCLUDE_PATH=\"$CPLUS_INCLUDE_PATH:/usr/include/python2.7/\"")
|
|
#callWithShell("./bootstrap --prefix=/usr/local --with-libraries=all")
|
|
#callWithShell("./bootstrap --prefix=/usr/local cxxflags=\"-stdlib=libc++ -std=c++11 -DLINUX\" linkflags=\"-stdlib=libc++ -std=c++11 -DLINUX\" --with-libraries=all")
|
|
callWithShell("./bootstrap.sh --prefix=/usr/local cxxflags=\"-stdlib=libc++ -std=c++11 -DLINUX\" linkflags=\"-stdlib=libc++ -std=c++11 -DLINUX\"")
|
|
#callWithShell("./bootstrap --prefix=/usr/local cxxflags=\"-stdlib=libc++ -std=c++11 -DLINUX\" linkflags=\"-stdlib=libc++ -std=c++11 -DLINUX\" --with-libraries=date_time,filesystem,regex,system,contract")
|
|
callWithShell("{} ./b2 install -d0 threading=multi".format(_SUDO))
|
|
callWithShell("{} ldconfig".format(_SUDO))
|
|
|
|
elif (BUILD_TYPE == "CMAKE"):
|
|
callWithShell("mkdir -p ./build")
|
|
os.chdir("./build")
|
|
callWithShell("cmake ..")
|
|
callWithShell("make -j8; make")
|
|
print("Installing...")
|
|
sys.stdout.flush()
|
|
callWithShell("{} make install".format(_SUDO))
|
|
elif (BUILD_TYPE == "MAKE"):
|
|
callWithShell("make")
|
|
callWithShell("{} make install".format(_SUDO))
|
|
else:
|
|
print("!!! UNKNOWN BUILD TYPE [{}]".format(BUILD_TYPE))
|
|
sys.stdout.flush()
|
|
|
|
|
|
print("Cleaning up...")
|
|
sys.stdout.flush()
|
|
os.chdir(CWD)
|
|
|
|
# uncomment the following line to remove source code
|
|
#callWithShell("{} rm -rf ./{}".format(_SUDO, LIBRARY_FOLDER_NAME))
|
|
|
|
print("Finished!")
|
|
sys.stdout.flush()
|