diff --git a/examples/apps/spdm_responder/Makefile b/examples/apps/spdm_responder/Makefile index 105cb2823..10d8a609a 100644 --- a/examples/apps/spdm_responder/Makefile +++ b/examples/apps/spdm_responder/Makefile @@ -1,6 +1,8 @@ SHELL := /bin/bash -GENERATED = build/generated/rflx-spdm.ads +BUILD_DIR = build + +GENERATED = $(BUILD_DIR)/generated/rflx-spdm.ads SOURCE_SPECIFICATIONS = \ specs/spdm_responder.rflx \ @@ -33,44 +35,44 @@ check_spec: $(SPECIFICATIONS) | $(INTEGRATION_FILES) $(RFLX) test: test_cross test_binary_size lib -test_cross: build/arm/example/main build/riscv64/example/main libarm libriscv64 +test_cross: $(BUILD_DIR)/arm/example/main $(BUILD_DIR)/riscv64/example/main libarm libriscv64 -test_binary_size: build/arm/example/main build/riscv64/example/main - tools/check_size.py arm build/arm/example/main .text 46000 - tools/check_size.py riscv64 build/riscv64/example/main .text 38000 +test_binary_size: $(BUILD_DIR)/arm/example/main $(BUILD_DIR)/riscv64/example/main + tools/check_size.py arm $(BUILD_DIR)/arm/example/main .text 46000 + tools/check_size.py riscv64 $(BUILD_DIR)/riscv64/example/main .text 38000 -build/lib/libspdm.a: $(GENERATED) +$(BUILD_DIR)/lib/libspdm.a: $(GENERATED) gprbuild -j0 -P spdm -build/%/lib/libspdm.a: $(GENERATED) +$(BUILD_DIR)/%/lib/libspdm.a: $(GENERATED) gprbuild -j0 -P spdm -XTARGET=$* -build/%/example/main: $(GENERATED) +$(BUILD_DIR)/%/example/main: $(GENERATED) gprbuild -j0 -P build.gpr -XTARGET=$* test -f $@ -build/generated: - mkdir -p build/generated +$(BUILD_DIR)/generated: + mkdir -p $(BUILD_DIR)/generated # The verification of the SPDM specification occasionally gets stuck in the CI. The code generation # is attempted twice to decrease the occurrence of unsuccessful pipelines. -build/generated/%: $(SPECIFICATIONS) | build/generated $(INTEGRATION_FILES) $(RFLX) - timeout -k 60 1200 $(RFLX) generate $^ -d build/generated; \ +$(BUILD_DIR)/generated/%: $(SPECIFICATIONS) | $(BUILD_DIR)/generated $(INTEGRATION_FILES) $(RFLX) + timeout -k 60 1200 $(RFLX) generate $^ -d $(BUILD_DIR)/generated; \ RC=$$?; \ if [ $$RC -eq 124 ]; \ then \ - timeout -k 60 1200 $(RFLX) generate $^ -d build/generated; \ + timeout -k 60 1200 $(RFLX) generate $^ -d $(BUILD_DIR)/generated; \ else \ (exit $$RC); \ fi .PHONY: lib libarm libriscv64 -lib: build/lib/libspdm.a +lib: $(BUILD_DIR)/lib/libspdm.a -libarm: build/arm/lib/libspdm.a +libarm: $(BUILD_DIR)/arm/lib/libspdm.a -libriscv64: build/riscv64/lib/libspdm.a +libriscv64: $(BUILD_DIR)/riscv64/lib/libspdm.a .PHONY: prove @@ -85,4 +87,4 @@ generate: $(GENERATED) .PHONY: clean clean: - rm -rf build + rm -rf $(BUILD_DIR) diff --git a/examples/apps/spdm_responder/build.gpr b/examples/apps/spdm_responder/build.gpr index 3830bf4f3..18a7481b4 100644 --- a/examples/apps/spdm_responder/build.gpr +++ b/examples/apps/spdm_responder/build.gpr @@ -21,7 +21,8 @@ project Build is for Languages use ("Ada"); for Source_Dirs use ("src/main"); - for Object_Dir use "build/" & Target_Arch & Stack_Check_Path & "/example"; + for Object_Dir use "build/" & Target_Arch & Stack_Check_Path & "/example/obj"; + for Exec_Dir use "build/" & Target_Arch & Stack_Check_Path & "/example"; for Create_Missing_Dirs use "True"; for Target use Target_Arch & "-elf"; diff --git a/examples/apps/spdm_responder/build_lib.gpr b/examples/apps/spdm_responder/build_lib.gpr index 260ee2299..90d27c8b5 100644 --- a/examples/apps/spdm_responder/build_lib.gpr +++ b/examples/apps/spdm_responder/build_lib.gpr @@ -19,9 +19,9 @@ project Build_Lib is for Library_Name use "responder"; for Library_Kind use "static"; - Build_Dir := "../build/" & Target_Arch & Stack_Check_Path; - for Object_Dir use Build_Dir & "/example"; - for Library_Dir use Build_Dir & "/examplelib"; + Build_Dir := "build/" & Target_Arch & Stack_Check_Path; + for Object_Dir use Build_Dir & "/example/obj/lib"; + for Library_Dir use Build_Dir & "/example/lib"; for Library_Standalone use "standard"; for Library_Interface use ("responder"); diff --git a/examples/apps/spdm_responder/spdm.gpr b/examples/apps/spdm_responder/spdm.gpr index 34e1127d0..3d418dddb 100644 --- a/examples/apps/spdm_responder/spdm.gpr +++ b/examples/apps/spdm_responder/spdm.gpr @@ -20,7 +20,7 @@ project SPDM is for Target use Target_Arch & "-elf"; for Runtime ("Ada") use "light-spike"; when others => - Build_Dir := "build"; + Build_Dir := "build/default"; end case; for Object_Dir use Build_Dir & "/obj";