diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c0c2bb0 --- /dev/null +++ b/Makefile @@ -0,0 +1,70 @@ +pkgconfig :=pkg-config +prefix :=/usr/local +bindir :=$(prefix)/bin +sbindir :=$(prefix)/sbin +crashdir :=/var/crash +udevrulesdir :=/etc/udev/rules.d/ +unpackdir :=/tmp +etnaviv_dir :=/shared/etna_viv +etnaviv_inc :=$(etnaviv_dir)/src/etnaviv +libdrm_cflags :=$(shell $(pkgconfig) --cflags libdrm) +libdrm_ldflags :=$(shell $(pkgconfig) --libs libdrm) + +CPPFLAGS :=-D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Iinclude +CFLAGS_COMMON :=-O2 -Wall -std=c99 +CFLAGS =$(CFLAGS_COMMON) $(CFLAGS_$(notdir $@)) +LDLIBS =$(LDLIBS_$(notdir $@)) +SED :=sed +SEDARGS :=s|@sbindir@|$(sbindir)|g;s|@crashdir@|$(crashdir)|g;s|@unpackdir@|$(unpackdir)|g +BINPROGS :=bin2img detile/viv-demultitile diff/viv-cmd-diff info/viv_info +SBINPROGS :=dump/viv-unpack udev/devcoredump +UDEVRULES :=udev/99-local-devcoredump.rules +PROGS :=$(BINPROGS) $(SBINPROGS) $(UDEVRULES) + +all: $(PROGS) + +install: all + install -m 755 -o root -g root $(SBINPROGS) $(sbindir) + install -m 644 -o root -g root $(UDEVRULES) $(udevrulesdir) + install -m 755 -o root -g root $(BINPROGS) $(bindir) + +uninstall: + $(RM) $(patsubst %,$(sbindir)/%,$(notdir $(SBINPROGS))) + $(RM) $(patsubst %,$(udevrulesdir)/%,$(notdir $(UDEVRULES))) + $(RM) $(patsubst %,$(bindir)/%,$(notdir $(BINPROGS))) + +clean: + $(RM) $(PROGS) *.[oas] */*.[oas] + +%: %.in + $(SED) "$(SEDARGS)" $< > $@ + +info/features.h: include/hw/common.xml.h + { \ + for n in chipFeatures chipMinorFeatures0 chipMinorFeatures1 chipMinorFeatures2 chipMinorFeatures3 chipMinorFeatures4; do \ + echo "static struct feature vivante_$${n}[] __maybe_unused = {"; \ + echo "#define FEATURE(x) { $${n}_##x, #x }"; \ + sed -n "s/#define $${n}_\([^[:space:]]*\).*/\tFEATURE(\1),/p" $<; \ + echo "#undef FEATURE"; \ + echo "};"; \ + done; \ + } > $@ + +detile/viv-demultitile.o: detile/viv-demultitile.c + +detile/viv-demultitile: detile/viv-demultitile.o + +diff/viv-cmd-diff.o: diff/viv-cmd-diff.c include/hw/state.xml.h + +diff/viv-cmd-diff: diff/viv-cmd-diff.o + +dump/viv-unpack.o: dump/viv-unpack.c \ + include/hw/state.xml.h include/etnaviv_dump.h + +dump/viv-unpack: dump/viv-unpack.o + +LDLIBS_viv_info :=$(libdrm_ldflags) +info/viv_info: info/viv_info.o + +CFLAGS_viv_info.o :=$(libdrm_cflags) +info/viv_info.o: info/viv_info.c info/features.h |