cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Makefile (2479B)


      1# SPDX-License-Identifier: GPL-2.0
      2include ../scripts/Makefile.include
      3
      4bindir ?= /usr/bin
      5
      6# This will work when gpio is built in tools env. where srctree
      7# isn't set and when invoked from selftests build, where srctree
      8# is set to ".". building_out_of_srctree is undefined for in srctree
      9# builds
     10ifndef building_out_of_srctree
     11srctree := $(patsubst %/,%,$(dir $(CURDIR)))
     12srctree := $(patsubst %/,%,$(dir $(srctree)))
     13endif
     14
     15# Do not use make's built-in rules
     16# (this improves performance and avoids hard-to-debug behaviour);
     17MAKEFLAGS += -r
     18
     19override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
     20
     21ALL_TARGETS := lsgpio gpio-hammer gpio-event-mon gpio-watch
     22ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
     23
     24all: $(ALL_PROGRAMS)
     25
     26export srctree OUTPUT CC LD CFLAGS
     27include $(srctree)/tools/build/Makefile.include
     28
     29#
     30# We need the following to be outside of kernel tree
     31#
     32$(OUTPUT)include/linux/gpio.h: ../../include/uapi/linux/gpio.h
     33	mkdir -p $(OUTPUT)include/linux 2>&1 || true
     34	ln -sf $(CURDIR)/../../include/uapi/linux/gpio.h $@
     35
     36prepare: $(OUTPUT)include/linux/gpio.h
     37
     38GPIO_UTILS_IN := $(OUTPUT)gpio-utils-in.o
     39$(GPIO_UTILS_IN): prepare FORCE
     40	$(Q)$(MAKE) $(build)=gpio-utils
     41
     42#
     43# lsgpio
     44#
     45LSGPIO_IN := $(OUTPUT)lsgpio-in.o
     46$(LSGPIO_IN): prepare FORCE $(OUTPUT)gpio-utils-in.o
     47	$(Q)$(MAKE) $(build)=lsgpio
     48$(OUTPUT)lsgpio: $(LSGPIO_IN)
     49	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
     50
     51#
     52# gpio-hammer
     53#
     54GPIO_HAMMER_IN := $(OUTPUT)gpio-hammer-in.o
     55$(GPIO_HAMMER_IN): prepare FORCE $(OUTPUT)gpio-utils-in.o
     56	$(Q)$(MAKE) $(build)=gpio-hammer
     57$(OUTPUT)gpio-hammer: $(GPIO_HAMMER_IN)
     58	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
     59
     60#
     61# gpio-event-mon
     62#
     63GPIO_EVENT_MON_IN := $(OUTPUT)gpio-event-mon-in.o
     64$(GPIO_EVENT_MON_IN): prepare FORCE $(OUTPUT)gpio-utils-in.o
     65	$(Q)$(MAKE) $(build)=gpio-event-mon
     66$(OUTPUT)gpio-event-mon: $(GPIO_EVENT_MON_IN)
     67	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
     68
     69#
     70# gpio-watch
     71#
     72GPIO_WATCH_IN := $(OUTPUT)gpio-watch-in.o
     73$(GPIO_WATCH_IN): prepare FORCE
     74	$(Q)$(MAKE) $(build)=gpio-watch
     75$(OUTPUT)gpio-watch: $(GPIO_WATCH_IN)
     76	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
     77
     78clean:
     79	rm -f $(ALL_PROGRAMS)
     80	rm -f $(OUTPUT)include/linux/gpio.h
     81	find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
     82
     83install: $(ALL_PROGRAMS)
     84	install -d -m 755 $(DESTDIR)$(bindir);		\
     85	for program in $(ALL_PROGRAMS); do		\
     86		install $$program $(DESTDIR)$(bindir);	\
     87	done
     88
     89FORCE:
     90
     91.PHONY: all install clean FORCE prepare