zzsh/Makefile
2023-06-28 15:08:34 +02:00

36 lines
619 B
Makefile

CC = gcc
CFLAGS = -Wall -Wextra -Werror
NAME = zzsh
SRC_DIR = src
OBJ_DIR = obj
LIB_DIR = lib
SOURCES = $(shell find $(SRC_DIR) -type f -name '*.c')
OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SOURCES))
LIBRARIES = $(shell find $(LIB_DIR) -maxdepth 1 -mindepth 1 -type d)
DEPS = $(OBJECTS:.o=.d)
all: $(NAME)
$(LIBRARIES):
@echo Create $@
@$(MAKE) -C $@
$(NAME): $(OBJECTS)
$(CC) $(OBJECTS) -o $(NAME)
-include $(DEPS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(@D)
@echo Compiling $< -> $@
@$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(OBJ_DIR)
fclean: clean
rm -f $(NAME)
re: fclean $(NAME)