diff options
| author | Paul Buetow <paul@buetow.org> | 2024-02-04 10:17:59 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-02-04 10:17:59 +0200 |
| commit | 6f0b9a473ab8e3fd8ac58724e907809da36b1bd1 (patch) | |
| tree | 8b60b3a6b665bcef4d00e7453000d7aca4716e5f /Makefile | |
| parent | 2964fe4a7185d75b84745edee5edc9dcf5fc4b4f (diff) | |
initial version (not yet working)
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..00aee0a --- /dev/null +++ b/Makefile @@ -0,0 +1,87 @@ +BASEDIR = $(abspath ../../) + +OUTPUT = ../../output + +LIBBPF_SRC = $(abspath ../../libbpf/src) +LIBBPF_OBJ = $(abspath $(OUTPUT)/libbpf.a) + +CLANG = clang +CC = $(CLANG) +GO = go + +ARCH := $(shell uname -m | sed 's/x86_64/amd64/g; s/aarch64/arm64/g') + +CFLAGS = -g -O2 -Wall -fpie -I$(abspath ../common) +LDFLAGS = + +CGO_CFLAGS_STATIC = "-I$(abspath $(OUTPUT)) -I$(abspath ../common)" +CGO_LDFLAGS_STATIC = "-lelf -lzstd $(LIBBPF_OBJ)" +CGO_EXTLDFLAGS_STATIC = '-w -extldflags "-static"' + +CGO_CFLAGS_DYN = "-I. -I/usr/include/" +CGO_LDFLAGS_DYN = "-lelf -lz -lbpf" + +MAIN = main + +.PHONY: $(MAIN) +.PHONY: $(MAIN).go +.PHONY: $(MAIN).bpf.c + +all: $(MAIN)-static + +.PHONY: libbpfgo +.PHONY: libbpfgo-static +.PHONY: libbpfgo-dynamic + +## libbpfgo + +libbpfgo-static: + $(MAKE) -C $(BASEDIR) libbpfgo-static + +libbpfgo-dynamic: + $(MAKE) -C $(BASEDIR) libbpfgo-dynamic + +outputdir: + $(MAKE) -C $(BASEDIR) outputdir + +## test bpf dependency + +$(MAIN).bpf.o: $(MAIN).bpf.c + $(CLANG) $(CFLAGS) -target bpf -D__TARGET_ARCH_$(ARCH) -I$(OUTPUT) -I$(abspath ../common) -c $< -o $@ + +## test + +.PHONY: $(MAIN)-static +.PHONY: $(MAIN)-dynamic + +$(MAIN)-static: libbpfgo-static | $(MAIN).bpf.o + CC=$(CLANG) \ + CGO_CFLAGS=$(CGO_CFLAGS_STATIC) \ + CGO_LDFLAGS=$(CGO_LDFLAGS_STATIC) \ + GOOS=linux GOARCH=$(ARCH) \ + $(GO) build \ + -tags netgo -ldflags $(CGO_EXTLDFLAGS_STATIC) \ + -o $(MAIN)-static ./$(MAIN).go + +$(MAIN)-dynamic: libbpfgo-dynamic | $(MAIN).bpf.o + CC=$(CLANG) \ + CGO_CFLAGS=$(CGO_CFLAGS_DYN) \ + CGO_LDFLAGS=$(CGO_LDFLAGS_DYN) \ + $(GO) build -o ./$(MAIN)-dynamic ./$(MAIN).go + +## run + +.PHONY: run +.PHONY: run-static +.PHONY: run-dynamic + +run: run-static + +run-static: $(MAIN)-static + sudo ./run.sh $(MAIN)-static + +run-dynamic: $(MAIN)-dynamic + sudo ./run.sh $(MAIN)-dynamic + +clean: + rm -f *.o *-static *-dynamic |
