Skip to content

Commit

Permalink
Unify directory structures of example apps
Browse files Browse the repository at this point in the history
  • Loading branch information
treiher committed Aug 18, 2023
1 parent fc41a92 commit d1310af
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 41 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ test_compilation:
$(MAKE) -C tests/spark test_optimized

test_binary_size:
$(MAKE) -C examples/apps/dhcp_client binary_size
$(MAKE) -C examples/apps/spdm_responder test_size
$(MAKE) -C examples/apps/dhcp_client test_binary_size
$(MAKE) -C examples/apps/spdm_responder test_binary_size

test_specs:
$(PYTEST) tests/examples/specs_test.py
Expand Down
35 changes: 19 additions & 16 deletions examples/apps/dhcp_client/Makefile
Original file line number Diff line number Diff line change
@@ -1,33 +1,36 @@
include ../../../Makefile.common

specs = $(wildcard specs/*.rflx)
src = generated/rflx-dhcp_client.ads
bin = obj/dhcp_client
bin-optimized = obj_optimized/dhcp_client
SPECS = $(wildcard specs/*.rflx)
GENERATED = build/generated/rflx-dhcp_client.ads
BIN = build/obj/dhcp_client
BIN_OPTIMIZED = build/obj_optimized/dhcp_client

.PHONY: test build prove generate clean binary_size
.PHONY: test build prove generate clean test_binary_size

test: $(bin)
test: $(BIN) test_binary_size
tests/run

build: $(bin)
test_binary_size: $(BIN_OPTIMIZED)
test $(shell size -A -d build/obj_optimized/dhcp_client | grep .text | awk '{ print $$2 }') -le 173000

prove: $(GNATPROVE_CACHE_DIR) $(src)
build: $(BIN)

prove: $(GNATPROVE_CACHE_DIR) $(GENERATED)
$(GNATPROVE) -Pdhcp_client

generate: $(src)
generate: $(GENERATED)

clean:
rm -rf generated/* obj obj_optimized
rm -rf build

binary_size: $(bin-optimized)
test $(shell size -A -d obj_optimized/dhcp_client | grep .text | awk '{ print $$2 }') -le 173000
$(GENERATED): $(SPECS) | build/generated
rflx generate -d build/generated --debug built-in $^

$(src): $(specs)
rflx generate -d generated --debug built-in $^
build/generated:
mkdir -p build/generated

$(bin): $(src) $(wildcard src/*) $(wildcard generated/*)
$(BIN): $(GENERATED) $(wildcard build/generated/*)
gprbuild -Pdhcp_client -Xgnat=$(GNAT) -Xmode=asserts_enabled

$(bin-optimized): $(src) $(wildcard src/*) $(wildcard generated/*)
$(BIN_OPTIMIZED): $(GENERATED) $(wildcard build/generated/*)
gprbuild -Pdhcp_client -Xgnat=$(GNAT) -Xmode=optimized
8 changes: 4 additions & 4 deletions examples/apps/dhcp_client/dhcp_client.gpr
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ project DHCP_Client is
Test := external ("test", "");

for Languages use ("Ada", "RecordFlux");
for Source_Dirs use ("specs", "src", "generated");
for Source_Dirs use ("specs", "src", "build/generated");
case Mode is
when "strict" | "asserts_enabled" =>
for Object_Dir use "obj";
for Object_Dir use "build/obj";
when "optimized" =>
for Object_Dir use "obj_optimized";
for Object_Dir use "build/obj_optimized";
end case;
for Create_Missing_Dirs use "True";
for Main use ("dhcp_client");
Expand All @@ -22,7 +22,7 @@ project DHCP_Client is
end Naming;

package RecordFlux is
for Output_Dir use "generated";
for Output_Dir use "build/generated";
end RecordFlux;

package Builder is
Expand Down
Empty file.
4 changes: 2 additions & 2 deletions examples/apps/dhcp_client/tests/run
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
set -x
set -o pipefail

dnsmasq --no-daemon --dhcp-leasefile=obj/dnsmasq.leases --port=1053 --dhcp-alternate-port --conf-file=$(dirname "$(realpath $0)")/dnsmasq.conf &
dnsmasq --no-daemon --dhcp-leasefile=build/dnsmasq.leases --port=1053 --dhcp-alternate-port --conf-file=$(dirname "$(realpath $0)")/dnsmasq.conf &
DNSMASQ_PID=$!

sleep 2
timeout 5 obj/dhcp_client |& sed '/Success/q; $q1'
timeout 5 build/obj/dhcp_client |& sed '/Success/q; $q1'
SUCCESS=$?

kill -9 $DNSMASQ_PID
Expand Down
25 changes: 14 additions & 11 deletions examples/apps/ping/Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
include ../../../Makefile.common

specs = $(wildcard specs/*.rflx)
src = generated/rflx.ads
bin = obj/ping
SPECS = $(wildcard specs/*.rflx)
GENERATED = build/generated/rflx.ads
BIN = build/obj/ping

.PHONY: test test_python test_spark build prove generate clean

Expand All @@ -11,21 +11,24 @@ test: test_python test_spark
test_python:
sudo -n timeout 5 `command -v python3` ping.py 127.0.0.1 | sed '/64 bytes from 127\.0\.0\.1: icmp_seq=0/q; $$q1'

test_spark: $(bin)
test_spark: $(BIN)
sudo -n timeout 3 obj/ping 127.0.0.1 | sed '/64 bytes from 127\.0\.0\.1: icmp_seq=0/q; $$q1'

build: $(bin)
build: $(BIN)

prove: $(GNATPROVE_CACHE_DIR) $(src)
prove: $(GNATPROVE_CACHE_DIR) $(GENERATED)
$(GNATPROVE) -Pping

generate: $(src)
generate: $(GENERATED)

clean:
rm -rf generated/* obj python
rm -rf build python

$(src): $(specs)
rflx generate -d generated --ignore-unsupported-checksum $^
$(GENERATED): $(SPECS) | build/generated
rflx generate -d build/generated --ignore-unsupported-checksum $^

$(bin): $(src)
build/generated:
mkdir -p build/generated

$(BIN): $(GENERATED) $(wildcard build/generated/*)
gprbuild -Pping -Xgnat=$(GNAT)
Empty file removed examples/apps/ping/generated/.keep
Empty file.
6 changes: 3 additions & 3 deletions examples/apps/ping/ping.gpr
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ with "../../../defaults";
project Ping is

for Languages use ("RecordFlux", "Python", "Ada", "C");
for Source_Dirs use (".", "specs", "generated", "src", "contrib");
for Object_Dir use "obj";
for Source_Dirs use (".", "specs", "build/generated", "src", "contrib");
for Object_Dir use "build/obj";
for Create_Missing_Dirs use "True";
for Main use ("ping.adb");

Expand All @@ -17,7 +17,7 @@ project Ping is
end Naming;

package Recordflux is
for Output_Dir use "generated";
for Output_Dir use "build/generated";
end Recordflux;

package Builder is
Expand Down
6 changes: 3 additions & 3 deletions examples/apps/spdm_responder/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,13 @@ check: check_spec
check_spec: $(SPECIFICATIONS) | $(INTEGRATION_FILES) $(RFLX)
timeout -k 60 900 $(RFLX) check $^

.PHONY: test test_cross test_size
.PHONY: test test_cross test_binary_size

test: test_cross test_size lib
test: test_cross test_binary_size lib

test_cross: build/arm/example/main build/riscv64/example/main libarm libriscv64

test_size: build/arm/example/main build/riscv64/example/main
test_binary_size: build/arm/example/main build/riscv64/example/main
tools/check_size.py arm build/arm/example/main .text 45000
tools/check_size.py riscv64 build/riscv64/example/main .text 37000

Expand Down

0 comments on commit d1310af

Please sign in to comment.