2016-06-19 23:41:11 +03:00
i n c l u d e . . / s c r i p t s / M a k e f i l e . i n c l u d e
2016-06-19 23:41:12 +03:00
bindir ?= /usr/bin
2016-06-19 23:41:11 +03:00
i f e q ( $( srctree ) , )
2016-11-22 11:30:26 +03:00
srctree := $( patsubst %/,%,$( dir $( CURDIR) ) )
2016-06-19 23:41:11 +03:00
srctree := $( patsubst %/,%,$( dir $( srctree) ) )
e n d i f
# Do not use make's built-in rules
# (this improves performance and avoids hard-to-debug behaviour);
MAKEFLAGS += -r
2015-10-21 16:45:54 +03:00
CC = $( CROSS_COMPILE) gcc
2016-06-19 23:41:11 +03:00
LD = $( CROSS_COMPILE) ld
CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$( OUTPUT) include
ALL_TARGETS := lsgpio gpio-hammer gpio-event-mon
ALL_PROGRAMS := $( patsubst %,$( OUTPUT) %,$( ALL_TARGETS) )
all : $( ALL_PROGRAMS )
2015-10-21 16:45:54 +03:00
2016-06-19 23:41:11 +03:00
export srctree OUTPUT CC LD CFLAGS
i n c l u d e $( srctree ) / t o o l s / b u i l d / M a k e f i l e . i n c l u d e
2015-10-21 16:45:54 +03:00
2016-06-19 23:41:11 +03:00
#
# We need the following to be outside of kernel tree
#
$(OUTPUT)include/linux/gpio.h : ../../include /uapi /linux /gpio .h
mkdir -p $( OUTPUT) include/linux 2>& 1 || true
ln -sf $( CURDIR) /../../include/uapi/linux/gpio.h $@
2015-10-21 16:45:54 +03:00
2016-06-19 23:41:11 +03:00
prepare : $( OUTPUT ) include /linux /gpio .h
#
# lsgpio
#
LSGPIO_IN := $( OUTPUT) lsgpio-in.o
$(LSGPIO_IN) : prepare FORCE
$( Q) $( MAKE) $( build) = lsgpio
$(OUTPUT)lsgpio : $( LSGPIO_IN )
$( QUIET_LINK) $( CC) $( CFLAGS) $( LDFLAGS) $< -o $@
#
# gpio-hammer
#
GPIO_HAMMER_IN := $( OUTPUT) gpio-hammer-in.o
$(GPIO_HAMMER_IN) : prepare FORCE
$( Q) $( MAKE) $( build) = gpio-hammer
$(OUTPUT)gpio-hammer : $( GPIO_HAMMER_IN )
$( QUIET_LINK) $( CC) $( CFLAGS) $( LDFLAGS) $< -o $@
#
# gpio-event-mon
#
GPIO_EVENT_MON_IN := $( OUTPUT) gpio-event-mon-in.o
$(GPIO_EVENT_MON_IN) : prepare FORCE
$( Q) $( MAKE) $( build) = gpio-event-mon
$(OUTPUT)gpio-event-mon : $( GPIO_EVENT_MON_IN )
$( QUIET_LINK) $( CC) $( CFLAGS) $( LDFLAGS) $< -o $@
2015-10-21 16:45:54 +03:00
clean :
2016-06-19 23:41:11 +03:00
rm -f $( ALL_PROGRAMS)
rm -f $( OUTPUT) include/linux/gpio.h
find $( if $( OUTPUT) ,$( OUTPUT) ,.) -name '*.o' -delete -o -name '\.*.d' -delete
2016-06-19 23:41:12 +03:00
install : $( ALL_PROGRAMS )
install -d -m 755 $( DESTDIR) $( bindir) ; \
for program in $( ALL_PROGRAMS) ; do \
install $$ program $( DESTDIR) $( bindir) ; \
done
2016-06-19 23:41:11 +03:00
FORCE :
2016-06-19 23:41:12 +03:00
.PHONY : all install clean FORCE prepare