
SUBDIRS := $(shell ls -d */)
LIBBPF := ../libbpf/libbpf.a

default: ebpf_payload


$(LIBBPF):
	@cd ../libbpf && make


ebpf_payload: $(LIBBPF) $(SUBDIRS)
	@echo "-> ebpf_payload build success"


install:
	install -d $(DESTDIR)/usr/share/ctforge/modules
	install -d $(DESTDIR)/usr/share/ctforge/payload
	install -d $(DESTDIR)/usr/share/ctforge/scripts
	find ./ -name "*.so" |xargs -i cp {} $(DESTDIR)/usr/share/ctforge/modules/
	chmod 644 $(DESTDIR)/usr/share/ctforge/modules/*.so
	find ./ -name "ctforge_*" ! -name "*.so" | xargs -i cp {} $(DESTDIR)/usr/share/ctforge/payload/
	chmod 700 $(DESTDIR)/usr/share/ctforge/payload/*
	find ./ -name "*.py" |xargs -i cp {} $(DESTDIR)/usr/share/ctforge/scripts/
	chmod 700 $(DESTDIR)/usr/share/ctforge/scripts/*
	@echo "-> Install ebpf_payload success"


uninstall:
	[ -d $(DESTDIR)/usr/share/ctforge/modules ] && rm -f $(DESTDIR)/usr/share/ctforge/modules/* || :
	rmdir $(DESTDIR)/usr/share/ctforge/modules || :
	rmdir $(DESTDIR)/usr/share/ctforge || :
	@echo "-> Uninstall ebpf_payload success"


clean: TARGET = clean
clean: $(SUBDIRS)
	@echo "-> All clean! All ok!"



$(SUBDIRS):
	$(MAKE) -C $@ $(TARGET)


.PHONY : default libbpf ebpf_payload clean $(SUBDIRS) install uninstall

