# BANNERSTART
# - Copyright 2006-2008, Galois, Inc.
# - This software is distributed under a standard, three-clause BSD license.
# - Please see the file LICENSE, distributed with this software, for specific
# - terms and conditions.
# Author: Adam Wick <awick@galois.com>
# BANNEREND
#

GHC=halvm-ghc -threaded --make

all: Server Client

Server: Server.hs Rendezvous.hs IVC.hs Common.hs
	$(GHC) Server.hs

Client: Client.hs Rendezvous.hs IVC.hs Common.hs
	$(GHC) Client.hs

run: Server Client
	sudo xenstore-rm /rendezvous/ClientServerTest
	-sudo xl destroy Server
	-sudo xl destroy Client1
	-sudo xl destroy Client2
	-sudo xl destroy Client3
	-sudo xl destroy Client4
	-sudo xl destroy Client5
	-sudo xl destroy Client6
	-sudo xl destroy Client7
	-sudo xl destroy Client8
	-sudo xl destroy Client9
	-sudo xl destroy Client10
	-sudo xl destroy Client11
	-sudo xl destroy Client12
	-sudo xl destroy Client13
	-sudo xl destroy Client14
	-sudo xl destroy Client15
	sudo xl create Server.config
	sudo xl create Client.config "name='Client1'"
	sudo xl create Client.config "name='Client2'"
	sudo xl create Client.config "name='Client3'"
	sudo xl create Client.config "name='Client4'"
	sudo xl create Client.config "name='Client5'"
	sudo xl create Client.config "name='Client6'"
	sudo xl create Client.config "name='Client7'"
	sudo xl create Client.config "name='Client8'"
	sudo xl create Client.config "name='Client9'"
	sudo xl create Client.config "name='Client10'"
	sudo xl create Client.config "name='Client11'"
	sudo xl create Client.config "name='Client12'"
	sudo xl create Client.config "name='Client13'"
	sudo xl create Client.config "name='Client14'"
	sudo xl create Client.config "name='Client15'"
	sleep 3
	sudo xl dmesg -c
	sudo xenstore-ls

clean:
	-rm *.hi *.o Client Server

cleanup:
	-sudo xl destroy Server
	-sudo xl destroy Client1
	-sudo xl destroy Client2
	-sudo xl destroy Client3
	-sudo xl destroy Client4
	-sudo xl destroy Client5
	-sudo xl destroy Client6
	-sudo xl destroy Client7
	-sudo xl destroy Client8
	-sudo xl destroy Client9
	-sudo xl destroy Client10
	-sudo xl destroy Client11
	-sudo xl destroy Client12
	-sudo xl destroy Client13
	-sudo xl destroy Client14
	-sudo xl destroy Client15