From 290a499b3ac03cd241255880e3176d2656741ca1 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Sat, 7 Dec 2024 04:01:14 +0200 Subject: Updating build system --- src/build.sh | 25 ++--------- src/build_tree/ak_fs_build.sh | 15 +++++++ src/build_tree/ak_log_build.sh | 9 ++++ src/build_tree/ak_settings_build.sh | 2 + src/new_lib.sh | 83 +++++++++++++++++++++++++++++++++++++ 5 files changed, 113 insertions(+), 21 deletions(-) create mode 100755 src/build_tree/ak_fs_build.sh create mode 100755 src/build_tree/ak_log_build.sh create mode 100755 src/build_tree/ak_settings_build.sh create mode 100755 src/new_lib.sh (limited to 'src') diff --git a/src/build.sh b/src/build.sh index 3ad716e..b09c0de 100755 --- a/src/build.sh +++ b/src/build.sh @@ -4,24 +4,7 @@ then mkdir $PWD/lib fi -echo "Building lib/akfs.so" && \ -gcc -c -shared -Wextra -Wall -Werror -pedantic -ggdb -fPIC -I./include akfs.c -o lib/akfs.so && \ -echo "Building tests/test_akfs" && \ -gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_akfs.c lib/akfs.so -o tests/test_akfs && \ -echo "Running test_akfs" && \ -time ./tests/test_akfs -rm ./tests/test_akfs - -echo "Building tests/test_akfs_mkdir.c" && \ -gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_akfs_mkdir.c lib/akfs.so -o tests/test_akfs_mkdir && \ -echo "Running test_akfs_mkdir" && \ -time ./tests/test_akfs_mkdir -rm ./tests/test_akfs_mkdir - -echo "Building lib/aklog.so" && \ -gcc -c -shared -Wextra -Wall -Werror -pedantic -ggdb -fPIC -I./include aklog.c -o lib/aklog.so && \ -echo "Building tests/test_aklog" && \ -gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_aklog.c lib/aklog.so -o tests/test_aklog && \ -echo "Running test_aklog" && \ -time ./tests/test_aklog -rm ./tests/test_aklog +find build_tree -type f | while read build_script +do + bash ${build_script} +done diff --git a/src/build_tree/ak_fs_build.sh b/src/build_tree/ak_fs_build.sh new file mode 100755 index 0000000..91ad759 --- /dev/null +++ b/src/build_tree/ak_fs_build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo "Building lib/akfs.so" && \ +gcc -c -shared -Wextra -Wall -Werror -pedantic -ggdb -fPIC -I./include akfs.c -o lib/akfs.so && \ +echo "Building tests/test_akfs" && \ +gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_akfs.c lib/akfs.so -o tests/test_akfs && \ +echo "Running test_akfs" && \ +time ./tests/test_akfs +rm ./tests/test_akfs + +echo "Building tests/test_akfs_mkdir.c" && \ +gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_akfs_mkdir.c lib/akfs.so -o tests/test_akfs_mkdir && \ +echo "Running test_akfs_mkdir" && \ +time ./tests/test_akfs_mkdir +rm ./tests/test_akfs_mkdir diff --git a/src/build_tree/ak_log_build.sh b/src/build_tree/ak_log_build.sh new file mode 100755 index 0000000..bbc8db6 --- /dev/null +++ b/src/build_tree/ak_log_build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +echo "Building lib/aklog.so" && \ +gcc -c -shared -Wextra -Wall -Werror -pedantic -ggdb -fPIC -I./include aklog.c -o lib/aklog.so && \ +echo "Building tests/test_aklog" && \ +gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_aklog.c lib/aklog.so -o tests/test_aklog && \ +echo "Running test_aklog" && \ +time ./tests/test_aklog +rm ./tests/test_aklog diff --git a/src/build_tree/ak_settings_build.sh b/src/build_tree/ak_settings_build.sh new file mode 100755 index 0000000..5edcd19 --- /dev/null +++ b/src/build_tree/ak_settings_build.sh @@ -0,0 +1,2 @@ +echo "Building lib/aksettings.so" && gcc -c -shared -Wextra -Wall -Werror -pedantic -ggdb -fPIC -I./include aksettings.c -o lib/aksettings.so && echo "Building tests/test_aksettings" && gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_aksettings.c lib/aksettings.so -o tests/test_aksettings && echo "Running test_aksettings" && time ./tests/test_aksettings +rm ./tests/test_aksettings diff --git a/src/new_lib.sh b/src/new_lib.sh new file mode 100755 index 0000000..94dd695 --- /dev/null +++ b/src/new_lib.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +library="${1}" +library_capitals="$(echo ${library} | tr '[:lower:]' '[:upper:]')" +include_file="include/ak${library}.h" +test_file="tests/test_ak${library}.c" +implementation_file="ak${library}.c" +build_file="build_tree/ak_${library}_build.sh" + +include_template(){ + cat > ${include_file} << EOF +#ifndef AK_${library_capitals}_H +#define AK_${library_capitals}_H + +int ak_${library}(); + +#endif // AK_${library_capitals}_H +EOF + +} + +implementation_template(){ + cat > ${implementation_file} << EOF +#include +#include + +int ak_${library}() +{ + printf("Testing: %s\n", __func__); + return 0; +} +EOF +} + +test_template(){ + cat > ${test_file} << EOF +#include + +int main() +{ + ak_${library}(); + return 0; +} +EOF +} + +build_template(){ + cat > ${build_file} << EOF +echo "Building lib/ak${library}.so" && \ +gcc -c -shared -Wextra -Wall -Werror -pedantic -ggdb -fPIC -I./include ak${library}.c -o lib/ak${library}.so && \ +echo "Building tests/test_ak${library}" && \ +gcc -Wextra -Wall -Werror -pedantic -ggdb -Wl,-rpath=lib -I./include tests/test_ak${library}.c lib/ak${library}.so -o tests/test_ak${library} && \ +echo "Running test_ak${library}" && \ +time ./tests/test_ak${library} +rm ./tests/test_ak${library} +EOF + chmod +x ${build_file} +} + +if [ ! -f ${include_file} ] +then + include_template +else + echo "ERROR: ${include_file} exists" +fi +if [ ! -f ${test_file} ] +then + test_template +else + echo "ERROR: ${test_file} exists" +fi +if [ ! -f ${implementation_file} ] +then +implementation_template +else + echo "ERROR: ${implementation_file} exists" +fi +if [ ! -f ${build_file} ] +then +build_template +else + echo "ERROR: ${build_file} exists" +fi -- cgit v1.2.3