-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbuildAdapter
More file actions
executable file
·50 lines (40 loc) · 1.7 KB
/
buildAdapter
File metadata and controls
executable file
·50 lines (40 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash -e
ADAPTER_SOURCE="$1"
CSA_PREFIX="$2"
EPICS_BASE="$3"
PROJECT_BINARY_DIR="`pwd`"
echo "ADAPTER_SOURCE=${ADAPTER_SOURCE}"
echo "CSA_PREFIX=${CSA_PREFIX}"
echo "EPICS_BASE=${EPICS_BASE}"
echo "PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR}"
# Determine architecture of the build
EPICS_ARCH=`grep "^ARCH=" "${EPICS_BASE}/lib/pkgconfig/epics-base.pc" | sed -e 's/^ARCH=//'`
# Function links file, generating subfolder if necessary
makeLink() {
mkdir -p `dirname "${PROJECT_BINARY_DIR}/adapter/$1"`
ln -sfn "${ADAPTER_SOURCE}/$1" "${PROJECT_BINARY_DIR}/adapter/$1"
}
export -f makeLink
export PROJECT_BINARY_DIR
export ADAPTER_SOURCE
export PATH=${CSA_PREFIX}/bin:${PATH}
# "find" generates a list of paths to any regular file below the source directory
# and calls the makeLink function for every entry.
# NOTE:Semikolon needs to be escaped
if [ ! -f "${PROJECT_BINARY_DIR}/AdapterSourceLinked" ]; then
cd "${ADAPTER_SOURCE}/"
echo "Symlinking adapter source from ${ADAPTER_SOURCE}/ to ${PROJECT_BINARY_DIR}/adapter ..."
find -type f -exec bash -c "makeLink {}" \;
touch "${PROJECT_BINARY_DIR}/AdapterSourceLinked"
fi
# Link script-generated RELEASE and CONFIG files to configure directory
ln -sfn "${PROJECT_BINARY_DIR}/adapterRELEASE.local" "${PROJECT_BINARY_DIR}/adapter/configure/RELEASE.local"
ln -sfn "${PROJECT_BINARY_DIR}/adapterCONFIG_SITE.local" "${PROJECT_BINARY_DIR}/adapter/configure/CONFIG_SITE.local"
# Build library
echo "Build adapter libraries..."
cd "${PROJECT_BINARY_DIR}/adapter"
make -j5
# Copy library to project/lib folder
mkdir -p "${PROJECT_BINARY_DIR}/lib"
cp "${PROJECT_BINARY_DIR}/adapter/lib/${EPICS_ARCH}/"*.a "${PROJECT_BINARY_DIR}/lib"
chmod u+w -R "${PROJECT_BINARY_DIR}/lib"