CFLAGS = -std=gnu99 -pie -fPIC -pedantic -Wno-imports -Wunused -Wno-missing-field-initializers -Wextra -Wunreachable-code -O3

all: wireguard_mount wireguard_resolve

wireguard_mount: src/wireguard-mount.c
	mkdir -p bin
	gcc $(CFLAGS) -o bin/wireguard-mount src/wireguard-mount.c -lsystemd

wireguard_resolve: src/resolve.c src/resolve.s
	mkdir -p bin
	gcc -shared -o bin/wireguard-resolve.so -nostdlib -fPIC src/resolve.c src/resolve.s

install_basic: systemd scripts bin
	mkdir -p /snacks/wireguard/bin
	mkdir -p /snacks/wireguard/scripts
	cp bin/wireguard-resolve.so /snacks/wireguard/bin/wireguard-resolve.so
	cp bin/wireguard-mount /snacks/wireguard/bin/wireguard-mount
	cp systemd/vpnclient-wg-basic.service /etc/systemd/system/vpnclient-wg-basic.service
	cp systemd/wireguard-mount.service /etc/systemd/system/wireguard-mount.service
	cp scripts/connect_basic.py /snacks/wireguard/scripts/connect_basic.py
	cp scripts/inner_basic.sh /snacks/wireguard/scripts/inner_basic.sh
	chmod -R 755 /snacks/wireguard
	systemctl daemon-reload
	systemctl enable wireguard-mount
	systemctl start wireguard-mount