From dc04e5aae6c52d05f1ce8e8fbc3b97041fb84a3f Mon Sep 17 00:00:00 2001 From: Dorian Stoll <dorian.stoll@uni-potsdam.de> Date: Sun, 9 Jun 2024 21:33:39 +0200 Subject: [PATCH] zellularautomat: c: Switch to Meson --- .cmake-format.json | 6 -- CMakeLists.txt | 13 ----- meson.build | 11 ++++ src/benchmarks/meson.build | 1 + src/benchmarks/zellularautomat/c/Makefile | 60 -------------------- src/benchmarks/zellularautomat/c/meson.build | 24 ++++++++ src/benchmarks/zellularautomat/meson.build | 1 + src/meson.build | 1 + 8 files changed, 38 insertions(+), 79 deletions(-) delete mode 100644 .cmake-format.json delete mode 100644 CMakeLists.txt create mode 100644 meson.build create mode 100644 src/benchmarks/meson.build delete mode 100644 src/benchmarks/zellularautomat/c/Makefile create mode 100644 src/benchmarks/zellularautomat/c/meson.build create mode 100644 src/benchmarks/zellularautomat/meson.build create mode 100644 src/meson.build diff --git a/.cmake-format.json b/.cmake-format.json deleted file mode 100644 index f0c505c3..00000000 --- a/.cmake-format.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "format": { - "line_width": 100, - "use_tabchars": true - } -} diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index f6f53d44..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(praktikum) - -# Always create a compile_commands.json for clangd -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - -# Enable optimization by default -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() - -# Enable LTO -set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..39cd472e --- /dev/null +++ b/meson.build @@ -0,0 +1,11 @@ +project( + 'praktikum', + 'c', + default_options: [ + 'warning_level=3', + 'buildtype=release', + 'b_lto=true', + ], +) + +subdir('src') diff --git a/src/benchmarks/meson.build b/src/benchmarks/meson.build new file mode 100644 index 00000000..cd38a8b2 --- /dev/null +++ b/src/benchmarks/meson.build @@ -0,0 +1 @@ +subdir('zellularautomat') diff --git a/src/benchmarks/zellularautomat/c/Makefile b/src/benchmarks/zellularautomat/c/Makefile deleted file mode 100644 index 86371619..00000000 --- a/src/benchmarks/zellularautomat/c/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -BASE_CC=gcc - -COMMON_CFLAGS=-O2 -COMMON_LDFLAGS=-lcrypto -lrt - -BASE_CFLAGS=-Wall -std=gnu99 -pedantic - -OMP_CFLAGS=-fopenmp - -C_DEPS=ca_common.c random.c - -TARGETS=ca_openmp - -.PHONY: all -all: $(TARGETS) - -.PHONY: cpu -cpu: ca_openmp - -ca_openmp: ca_openmp.c $(C_DEPS) - $(BASE_CC) $(COMMON_CFLAGS) $(BASE_CFLAGS) $(OMP_CFLAGS) $^ $(COMMON_LDFLAGS) -o $@ - -.PHONY: test - -test: $(TARGETS) - @for ITS in 10 31 57 100; do \ - for LINES in 10 33 47 100; do \ - echo "$$LINES lines, $$ITS iterations"; \ - for BINARY in $^; do printf '%-10s\t' $$BINARY; ./$$BINARY $$LINES $$ITS; done; \ - done \ - done - -.PHONY: bench - -bench: ca_openmp - @for ITS in 128 256 512; do \ - for LINES in 1000 10000 50000; do \ - echo "$$LINES lines, $$ITS iterations"; \ - for BINARY in $^; do printf '%-10s\t' $$BINARY; time ./$$BINARY $$LINES $$ITS; done; \ - done \ - done - -.PHONY: omp_scaling - -omp_scaling: ca_openmp - @for ITS in 128 256 512; do \ - for LINES in 1000 10000 50000; do \ - echo "$$LINES lines, $$ITS iterations"; \ - for THREADS in `seq \`nproc\``; do \ - printf "$$THREADS threads\t"; \ - OMP_NUM_THREADS=$$THREADS ./ca_openmp $$LINES $$ITS; \ - done; \ - done; \ - done - -.PHONY: clean - -clean: - rm -f *.o - rm -f $(TARGETS) diff --git a/src/benchmarks/zellularautomat/c/meson.build b/src/benchmarks/zellularautomat/c/meson.build new file mode 100644 index 00000000..4ff650e7 --- /dev/null +++ b/src/benchmarks/zellularautomat/c/meson.build @@ -0,0 +1,24 @@ +cc = meson.get_compiler('c') + +sources = [ + 'ca_common.c', + 'ca_openmp.c', + 'random.c', +] + +dependencies = [ + dependency('openmp'), + cc.find_library('crypto'), + cc.find_library('rt'), +] + +options = [ + 'c_std=c99', +] + +executable( + 'zellularautomat-c', + sources, + dependencies: dependencies, + override_options: options, +) diff --git a/src/benchmarks/zellularautomat/meson.build b/src/benchmarks/zellularautomat/meson.build new file mode 100644 index 00000000..76d1974f --- /dev/null +++ b/src/benchmarks/zellularautomat/meson.build @@ -0,0 +1 @@ +subdir('c') diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 00000000..46c5c1ca --- /dev/null +++ b/src/meson.build @@ -0,0 +1 @@ +subdir('benchmarks') -- GitLab