.PHONY: all clean libbpf rebuild install uninstall


CFLAGS = -fPIC -I. -I../include -I../include/uapi  -g -O2 -Werror -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
OBJS = bpf.o btf.o libbpf.o libbpf_errno.o netlink.o nlattr.o str_error.o libbpf_probes.o bpf_prog_linfo.o xsk.o btf_dump.o hashmap.o ringbuf.o elf.o


all: libbpf.a


libbpf.a: $(OBJS)
	ar rcs $@ $^
	@ls -alh libbpf.a
	@echo "-> libbpf build success"


%.o: %.c
	clang $(CFLAGS) -c $< -o $@


rebuild: clean all


install:
	install -d $(DESTDIR)/usr/share/ctforge/lib
	install -m 644 libbpf.a $(DESTDIR)/usr/share/ctforge/lib/libbpf.a
	@echo "-> Install libbpf success"


uninstall:
	[ -f $(DESTDIR)/usr/share/ctforge/lib/libbpf.a ] && rm -f $(DESTDIR)/usr/share/ctforge/lib/libbpf.a || :
	rmdir $(DESTDIR)/usr/share/ctforge/lib/ || :
	@echo "-> Uninstall ctforgectl success"


clean:
	rm -f *.o libbpf.a

