ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | LICENSE

Commit: 967c85478d5a865770364961791378b04cdefae3
Parent: f54cae8038b025c3118e5c7d1b2700567b7da962
Author: Randy Palamar
Date:   Mon,  5 May 2025 21:25:34 -0600

build: gcc sucks alot

there is really no excuse for requiring flags to come in a specific order

Diffstat:
Mbuild.c | 30++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/build.c b/build.c @@ -510,9 +510,13 @@ check_build_raylib(Arena a, CommandList cc, b32 shared) b32 success; if (shared) { + cmd_append(&a, &cc, "-fPIC", "-shared"); cmd_pdb(&a, &cc); + cmd_append_count(&a, &cc, srcs, countof(srcs)); + cmd_append(&a, &cc, "-o", libglfw[shared]); if (is_w32) cmd_append(&a, &cc, "-lgdi32", "-lwinmm"); - success = build_shared_library(a, cc, libglfw[shared], srcs, countof(srcs)); + cmd_append(&a, &cc, (void *)0); + success = run_synchronous(a, &cc); } else { success = build_static_library(a, cc, libglfw[shared], srcs, outs, countof(srcs)); } @@ -540,9 +544,13 @@ check_build_raylib(Arena a, CommandList cc, b32 shared) b32 success; if (shared) { cmd_append(&a, &cc, "-DBUILD_LIBTYPE_SHARED"); + cmd_append(&a, &cc, "-fPIC", "-shared"); cmd_pdb(&a, &cc); + cmd_append_count(&a, &cc, srcs, countof(srcs)); + cmd_append(&a, &cc, "-o", libraylib[shared]); if (is_w32) cmd_append(&a, &cc, "-L.", "-lglfw", "-lgdi32", "-lwinmm"); - success = build_shared_library(a, cc, libraylib[shared], srcs, countof(srcs)); + cmd_append(&a, &cc, (void *)0); + success = run_synchronous(a, &cc); } else { success = build_static_library(a, cc, libraylib[shared], srcs, outs, countof(srcs)); } @@ -562,15 +570,19 @@ cmd_append_ldflags(Arena *a, CommandList *cc, b32 shared) } function b32 -build_helper_library(Arena *arena, CommandList *cc) +build_helper_library(Arena arena, CommandList cc) { ///////////// // library char *library = OUTPUT(OS_SHARED_LIB("ogl_beamformer_lib")); char *srcs[] = {"helpers/ogl_beamformer_lib.c"}; - cmd_append(arena, cc, "-Wno-unused-function"); - b32 result = build_shared_library(*arena, *cc, library, srcs, countof(srcs)); + cmd_append(&arena, &cc, "-Wno-unused-function", "-fPIC", "-shared"); + cmd_append_count(&arena, &cc, srcs, countof(srcs)); + cmd_append(&arena, &cc, "-o", library); + if (is_w32) cmd_append(&arena, &cc, "-lSynchronization"); + cmd_append(&arena, &cc, (void *)0); + b32 result = run_synchronous(arena, &cc); if (!result) fprintf(stderr, "failed to build: %s\n", library); ///////////// @@ -580,9 +592,8 @@ build_helper_library(Arena *arena, CommandList *cc) b32 rebuild_lib_header = needs_rebuild(lib_header_out, "beamformer_parameters.h", "helpers/ogl_beamformer_lib_base.h"); if (rebuild_lib_header) { - TempArena temp = begin_temp_arena(arena); - s8 parameters_header = os_read_whole_file(arena, "beamformer_parameters.h"); - s8 base_header = os_read_whole_file(arena, "helpers/ogl_beamformer_lib_base.h"); + s8 parameters_header = os_read_whole_file(&arena, "beamformer_parameters.h"); + s8 base_header = os_read_whole_file(&arena, "helpers/ogl_beamformer_lib_base.h"); if (parameters_header.len != 0 && base_header.len != 0 && parameters_header.data + parameters_header.len == base_header.data) { @@ -593,7 +604,6 @@ build_helper_library(Arena *arena, CommandList *cc) result = 0; fprintf(stderr, "failed to build: %s\n", lib_header_out); } - end_temp_arena(temp); } return result; @@ -612,7 +622,7 @@ main(i32 argc, char *argv[]) CommandList c = cmd_base(&arena, &options); check_build_raylib(arena, c, options.debug); - build_helper_library(&arena, &c); + build_helper_library(arena, c); ///////////////////////// // hot reloadable portion