#  Install directory
INSTDIR=/usr/local/bin

#  OSX
ifeq "$(shell uname)"  "Darwin"
CPING=cping.osx
$(CPING): cping.c
	clang --std=gnu99 -Wall -o $@ $^ -lncurses -lpthread
install:$(CPING)
	cp -a $^ $(INSTDIR)/cping
	chown root $(INSTDIR)/cping
	chmod u+s $(INSTDIR)/cping
#  Linux rPi with piGPIO
else ifneq  "$(wildcard /usr/lib/libpigpio.so)" ""
CPING=cping.rpg
$(CPING): cping.c
	gcc --std=gnu99 -Wall -DpiGPIO -o $@ $^ -l:libncurses.a -l:libtinfo.a -lpigpio -lpthread
install:$(CPING)
	cp -a $^ $(INSTDIR)/cping
	setcap cap_net_raw,cap_sys_rawio,cap_dac_override=ep $(INSTDIR)/cping
#  Linux rPi2
else ifeq "$(shell uname -m)"  "armv6l"
CPING=cping.rpi
$(CPING): cping.c
	gcc --std=gnu99 -Wall -o $@ $^ -l:libncurses.a -l:libtinfo.a -lpthread
install:$(CPING)
	cp -a $^ $(INSTDIR)/cping
	setcap cap_net_raw=ep $(INSTDIR)/cping
#  Linux rPi3
else ifeq "$(shell uname -m)"  "armv7l"
CPING=cping.rpi
$(CPING): cping.c
	gcc --std=gnu99 -Wall -o $@ $^ -l:libncurses.a -l:libtinfo.a -lpthread
install:$(CPING)
	cp -a $^ $(INSTDIR)/cping
	setcap cap_net_raw=ep $(INSTDIR)/cping
#  Linux
else
CPING=cping.linux
$(CPING): cping.c
	gcc --std=gnu99 -Wall -o $@ $^ -l:libncurses.a -l:libtinfo.a -lpthread
install:$(CPING)
	cp -a $^ $(INSTDIR)/cping
	setcap cap_net_raw=ep $(INSTDIR)/cping
endif

#  Clean
clean:
	rm $(CPING)
