diff options
| author | kartofen <mladenovnasko0@gmail.com> | 2023-04-28 20:39:42 +0300 | 
|---|---|---|
| committer | kartofen <mladenovnasko0@gmail.com> | 2023-04-28 20:39:42 +0300 | 
| commit | a78c52265d755a2294a743e186ad5a6b5456d9f1 (patch) | |
| tree | 3606129e28526dca6c2726712c755700b912895d /Makefile | |
| parent | 7395f6ec5385cd4895755c0c48e878a01214ef1c (diff) | |
testing structure done
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 37 | 
1 files changed, 20 insertions, 17 deletions
@@ -5,14 +5,13 @@ SRCD := src  OBJD := obj  BIND := bin -SRCS = $(shell find $(SRCD)/$(SUBD) -type f) -OBJS = $(SRCS:$(SRCD)/$(SUBD)/%.c=$(OBJD)/$(SUBD)/%.o) +FILES = $(shell find $(SRCD)/$(SUBD) -type f) -DAEMON_TARGET_NAME := daemon -CLIENT_TARGET_NAME := client -MODULE_TARGET_NAME := keylogger.ko -TESTS_TARGET_NAME  := tests +CSRCS = $(filter %.c, $(FILES)) +HSRCS = $(filter %.h, $(FILES)) +COBJS = $(CSRCS:$(SRCD)/%.c=$(OBJD)/%.o) +MODULE_TARGET := keylogger.ko  KERNEL_NAME := kernel-$(shell uname -r)  INITFS_NAME := initramfs.img @@ -20,34 +19,38 @@ export  all: daemon client module tests vm -daemon client module tests: -	$(MAKE) $(BIND)/$($(shell echo $@ | tr '[:lower:]' '[:upper:]')_TARGET_NAME) SUBD=$@ -  clean:  	rm -rf $(BIND)  	rm -rf $(OBJD) -# generic build -$(BIND)/%: $(OBJS) +daemon client module tests libs: +	$(eval TARGET := $($(shell echo $@ | tr 'a-z' 'A-Z')_TARGET)) +	$(MAKE) $(BIND)/$(if $(TARGET),$(TARGET),$@) SUBD=$@ + +# generic link +$(BIND)/%: $(COBJS) $(HSRCS)  	mkdir -p $(dir $@)  	$(CC) $(CFLAGS) $(SFLAGS) $^ -o $@ -$(OBJD)/$(SUBD)/%.o: $(SRCD)/$(SUBD)/%.c +# generic bulid +$(OBJD)/%.o: $(SRCD)/%.c  	mkdir -p $(dir $@)  	$(CC) $(CFLAGS) $(SFLAGS) -c $^ -o $@ +  # build a module -$(BIND)/%.ko: $(SRCS) +$(BIND)/%.ko: $(CSRCS) $(HSRCS)  	mkdir -p $(dir $@); mkdir -p $(OBJD)/$(SUBD)  	make -C $(SRCD)/$(SUBD) name=$(@:$(BIND)/%.ko=%)  	mv $(SRCD)/$(SUBD)/*.o $(OBJD)/$(SUBD)  	mv $(SRCD)/$(SUBD)/*.ko $@  	make -C $(SRCD)/$(SUBD) clean -# copy the test files -$(BIND)/tests: $(SRCS) -	mkdir -p $(BIND) -	cp -r $(SRCD)/$(SUBD) $(BIND) +# copy and build the testing files and other shared files (no .c files) +$(BIND)/tests: libs +$(BIND)/tests $(BIND)/libs: $(FILES) $(CSRCS:$(SRCD)/%.c=$(BIND)/%) +	mkdir -p $(BIND)/$(SUBD) +	find $(SRCD)/$(SUBD) -type f ! -name '*.c' -exec cp {} $(BIND)/$(SUBD) \;  # VM things  | 
