# List of programs to build
hostprogs-y := mpssd

mpssd-objs := mpssd.o sysfs.o

# Tell kbuild to always build the programs
always := $(hostprogs-y)

HOSTCFLAGS_mpssd.o += -I$(objtree)/usr/include

ifdef DEBUG
HOSTCFLAGS += -DDEBUG=$(DEBUG)
endif

HOSTLOADLIBES_mpssd := -lpthread

install:
	install mpssd /usr/sbin/mpssd
	install micctrl /usr/sbin/micctrl
