CFLAGS=-O2 -fno-inline -emit-llvm -I../cts_ebpf_vm_executor
LINKFLAGS=-march=bpf -filetype=obj

all: vm_mmap.o vm_monitor_address.o vm_clone.o vm_function_call.o vm_migrate.o loop_inspection.o

vm_mmap.o: cts_exm_mmap.c
	clang $(CFLAGS) -c cts_exm_mmap.c -o - | llc $(LINKFLAGS) -o vm_mmap.o

vm_monitor_address.o:
	clang $(CFLAGS) -c cts_exm_monitor_address.c -o - | llc $(LINKFLAGS) -o vm_monitor_address.o

vm_clone.o:
	clang $(CFLAGS) -c cts_exm_clone.c -o - | llc $(LINKFLAGS) -o vm_clone.o

loop_inspection.o: cts_exm_loop_inspection.c
	clang $(CFLAGS) -c cts_exm_loop_inspection.c -o - | llc $(LINKFLAGS) -o loop_inspection.o

vm_function_call.o:
	clang $(CFLAGS) -c cts_exm_function_call.c -o - | llc $(LINKFLAGS) -o vm_function_call.o

vm_migrate.o: cts_exm_migrate.c
	clang $(CFLAGS) -c cts_exm_migrate.c -o - | llc $(LINKFLAGS) -o vm_migrate.o

clean:
	rm -f vm_mmap.o vm_monitor_address.o vm_clone.o vm_function_call.o vm_migrate.o  loop_inspection.o
