49 lines
1.2 KiB
Bash
Executable File
49 lines
1.2 KiB
Bash
Executable File
#Global definitions.
|
|
F_ROOT=$(readlink -f "$0")
|
|
D_ROOT=$(dirname "${F_ROOT}")/../../.
|
|
D_COMPILE=${D_ROOT}/compile
|
|
D_LINK=${D_ROOT}/link
|
|
D_EARN=${D_ROOT}/earn
|
|
F_COMPILE_LIST=${D_COMPILE}/project_files.txt
|
|
F_LINK_LIST=${D_LINK}/project_files.txt
|
|
echo "" > ${F_LINK_LIST}
|
|
|
|
# Compile.
|
|
LINE=0
|
|
LINE_COUNT=$(cat ${F_COMPILE_LIST} | wc -l)
|
|
while true
|
|
do
|
|
if [ ${LINE} -ge ${LINE_COUNT} ]; then
|
|
break
|
|
fi
|
|
LINE=$((LINE+1))
|
|
F_COMPILE=$(head -n ${LINE} ${F_COMPILE_LIST} | tail -n 1)
|
|
I_COMPILE=${D_COMPILE}/${F_COMPILE}
|
|
O_COMPILE=${D_LINK}/${F_COMPILE}.o
|
|
mkdir -p "${O_COMPILE%/*}"
|
|
clang++ -I ${D_COMPILE} -c ${I_COMPILE} -o ${O_COMPILE}
|
|
echo ${O_COMPILE} >> ${F_LINK_LIST}
|
|
done
|
|
|
|
# Libraries.
|
|
F_LIBRARY_LIST=${D_COMPILE}/libraries.txt
|
|
F_LIBRARY_OPTIONS=${D_LINK}/library_options.txt
|
|
echo "" > ${F_LIBRARY_OPTIONS}
|
|
LINE=0
|
|
LINE_COUNT=$(cat ${F_LIBRARY_LIST} | wc -l)
|
|
while true
|
|
do
|
|
if [ ${LINE} -ge ${LINE_COUNT} ]; then
|
|
break
|
|
fi
|
|
LINE=$((LINE+1))
|
|
LIBRARY="-l$(head -n ${LINE} ${F_LIBRARY_LIST}) "
|
|
echo $LIBRARY >> ${F_LIBRARY_OPTIONS}
|
|
done
|
|
|
|
# Link.
|
|
I_LINK=$(cat ${F_LINK_LIST})
|
|
I_LIBRARIES=$(cat ${F_LIBRARY_OPTIONS})
|
|
O_LINK=${D_EARN}/executable
|
|
clang++ ${I_LIBRARIES} ${I_LINK} -o ${O_LINK}
|