PORT=/dev/ttyS0  #TODO(apenwarr): don't hardcode this
PASSWORD=google
PORTSH=./portsh/portsh -p'$(PASSWORD)'
NMAP_SUBNETS=192.168.2.0/24  #TODO(apenwarr): auto-read the subnet from eth1?

default: all

all: map.stamp

lint:
	gpylint *.py configs/core.py

test:
	wvtest/wvtestrun $(MAKE) runtests

#TODO(apenwarr): use a smarter allocator.
# We could enable parallelism by depending on $(addsuffix ...) instead of
# looping through them one by one.  But then we end up running multiple
# tests on the same device at once, which would cause conflicts.  We need
# a smarter allocator first.
runtests: localtests install-wvtest
	for d in $(addsuffix .run,$(wildcard [0-9]*.sh [0-9]*.py)); do \
	  $(MAKE) $$d; \
	done

localtests:
	./wvtest/wvtest.py *_test.py configs/*_test.py

install-wvtest: map.stamp *.py *.sh wvtest/*
	@echo 'Testing "install-wvtest" in Makefile:'
	tar -cf - $^ | \
	$(PORTSH) $(PORT) \
		'mkdir -p /tmp/tests && cd /tmp/tests && tar -xf -'

%.sh.run: %.sh
	echo "Testing $<"
	$(PORTSH) $(PORT) \
		'cd /tmp/tests && sh ./$<' </dev/null

%.py.run: %.py
	echo "Testing $<"
	$(PORTSH) $(PORT) \
		'cd /tmp/tests && python ./wvtest/wvtest.py $<' </dev/null

# This rule regenerates the map *every* time.  Run it when your node
# configuration has changed.
map: serialmap nmap
	touch map.stamp

# This rule just runs once; 'make map' or delete map.stamp to re-run.
# Depend on this rule to ensure we have a map, without regenerating it
# every time we run make.
map.stamp:
	$(MAKE) map

nmap:
	rm -f configs/nmap.*.tmp
	$(MAKE) $$(nmap -n -p22 -oG - $(NMAP_SUBNETS) | \
		grep ^Host: | \
		awk '{printf "configs/nmap.%s.tmp\n", $$2}')
	cat configs/header configs/nmap.*.tmp >configs/auto_nmap.py.new
	mv configs/auto_nmap.py.new configs/auto_nmap.py

serialmap:
	rm -f configs/tty.*.tmp
	$(MAKE) $$(cd /dev && /bin/ls ttyS*[0-9] ttyUSB*[0-9] | \
		awk '{printf "configs/tty.%s.tmp\n", $$1}')
	cat configs/header configs/tty.*.tmp >configs/auto_serial.py.new
	mv configs/auto_serial.py.new configs/auto_serial.py


PROBE_CMD=\
  PATH=$$PATH:/bin:/usr/bin:/sbin:/usr/sbin; \
  hnvram -r 1ST_SERIAL_NUMBER -r SERIAL_NO -r MAC_ADDR -r PLATFORM_NAME; \
  [ -e /tmp/NFS ] && echo IS_NFSROOT=1; \
  ip addr show br0; \
  ip addr show eth0; \
  ip addr show eth1; \
  ip addr show eth2; \
  cat /proc/cpuinfo

configs/nmap.%.tmp:
	ssh -oNumberOfPasswordPrompts=0 \
		root@$* \
		'echo NET_OK=1; $(PROBE_CMD)' 2>&1 | \
	  ./parse-probe-data >$@.new
	mv $@.new $@

configs/tty.%.tmp:
	$(PORTSH) $* \
		'echo SERIALPORT=$*; $(PROBE_CMD)' 2>&1 | \
	  ./parse-probe-data >$@.new
	mv $@.new $@

clean:
	rm -f *~ .*~ */*~ */.*~ *.pyc */*.pyc *.stamp \
		configs/*.tmp configs/*.new configs/auto_*.py
