

CXXFLAGS = -O3 -g -Wall -Wextra -std=c++17
LDFLAGS = -pthread -latomic

push:
	clang++ relaxed_list.cpp -g -Wall -Wextra -std=c++17 -fsyntax-only &&  rsync -av relaxed_list.cpp relaxed_list.hpp utils.hpp assert.hpp scale.sh plg7b:~/workspace/sched/.

relaxed_list: $(firstword $(MAKEFILE_LIST)) | build
	clang++ relaxed_list.cpp $(CXXFLAGS) $(LDFLAGS) -lpng -MMD -MF build/$(@).d -o $(@)

-include build/relaxed_list.d

layout.ast: $(firstword $(MAKEFILE_LIST)) | build
	clang++ relaxed_list_layout.cpp $(CXXFLAGS) -MMD -MF build/$(@).d -MT $(@) -E -o build/$(@).ii
	clang++ -Xclang -fdump-record-layouts -fsyntax-only $(CXXFLAGS) build/$(@).ii > build/layout.ast.raw
	cat build/$(@).raw > $(@)

-include build/layout.ast.d

build:
	mkdir -p build