# "Quick start" Makefile targets:
#   install - install Proton into current user's Steam installation
#   deploy - build deployment files into tagged directory
#
# Development targts:
#   vagrant - start Vagrant VM
#   proton - build Proton
#   module - build a single Wine module and copy into the shared directory.
#            note: this is a development loop target. use it only after building all of wine with one of the other targets
#            specify module variable:  make module=kernel32 module

STEAM_DIR := $(HOME)/.steam/root
DEPLOY_DIR := $(shell git describe --tags --always)

all: proton

.PHONY: vagrant proton install proton_build deploy

vagrant:
	vagrant up
	vagrant rsync

proton: vagrant
	vagrant ssh -c "make -C build/ dist"
	echo "Proton built in VM. Use 'install' or 'deploy' targets to retrieve the build."

install: vagrant
	vagrant ssh -c "make -C build/ STEAM_DIR=/vagrant/ install"
	cp -R vagrant_share/compatibilitytools.d/ $(STEAM_DIR)
	echo "Proton installed to your local Steam installation"

deploy: vagrant
	vagrant ssh -c "make -C build/ deploy"
	mkdir -p vagrant_share/$(DEPLOY_DIR)
	vagrant ssh -c "cp -a build/deploy/* /vagrant/$(DEPLOY_DIR)"
	echo "Proton deployed to vagrant_share/$(DEPLOY_DIR)"

module: vagrant
	vagrant ssh -c "make -C build/ module=$(module) module"
	mkdir -p vagrant_share/$(module)/lib{,64}/wine/
	vagrant ssh -c "cp -a build/obj-wine32/dlls/$(module)/$(module)*.so /vagrant/$(module)/lib/wine/"
	vagrant ssh -c "cp -a build/obj-wine64/dlls/$(module)/$(module)*.so /vagrant/$(module)/lib64/wine/"