Files
2023-11-21 09:34:31 -08:00

49 lines
1.1 KiB
Makefile

.PHONY: all clean test pipe named-pipe ffi
.ONESHELL:
all: clean
echo "going to run all ipc/ffi examples"
sleep 1;
make test;
make pipe;
sleep 3;
make named-pipe;
sleep 3;
make ffi;
make clean;
test:
mkdir -p test;
cd test;
pwd;
cd ..;
# note: below line stays in root dir because no `\` at the end of previous line
rm -rf test;
pipe: clean
cd pipe;
gcc test_pipe.c -o test_pipe_c_program;
go build -o test_pipe_go_program main.go;
./test_pipe_go_program
named-pipe: clean
cd named_pipe;
gcc test_named_pipe_receiver.c -o test_named_pipe_receiver_c_program;
go build -o test_named_pipe_sender_go_program main.go;
./test_named_pipe_receiver_c_program & ./test_named_pipe_sender_go_program;
ffi: clean
cd ffi;
gcc -c -o example.o example.c;
ar rcs libexample.a example.o;
go build -o test_ffi_go_program main.go;
./test_ffi_go_program;
clean:
echo "cleaning..."
rm -rf pipe/test_pipe_c_program pipe/test_pipe_go_program
rm -rf named_pipe/test_named_pipe_receiver_c_program named_pipe/test_named_pipe_sender_go_program
rm -rf ffi/main.o ffi/libmain.a ffi/test_ffi_go_program