Files
libasm/Makefile
2025-08-07 13:41:51 +02:00

55 lines
1.1 KiB
Makefile

NAME ?= libasm.a
SRCS_DIR = srcs
SRCS_BONUS_DIR = srcs/bonus
OBJS_DIR = .objs
SRCS_NAMES = ft_strlen.s\
ft_strcpy.s\
ft_strcmp.s\
ft_write.s\
ft_read.s\
ft_strdup.s
SRCS_BONUS_NAMES = ft_atoi_base.s\
ft_list_push_front.s\
ft_list_size.s\
ft_list_sort.s\
ft_list_remove_if.s\
SRCS = $(addprefix $(SRCS_DIR)/, $(SRCS_NAMES))
SRCS_BONUS = $(addprefix $(SRCS_BONUS_DIR)/, $(SRCS_NAMES))
OBJS = $(addprefix $(OBJS_DIR)/, $(SRCS_NAMES:.s=.o))
OBJS_BONUS = $(addprefix $(OBJS_DIR)/, $(SRCS_BONUS_NAMES:.s=.o))
FLAGS = -felf64
all: $(NAME)
test: test.c bonus
clang -z noexecstack test.c -L. -lasm -o test -g
./test || echo -e "\033[31m tests exited with an error code"
bonus: $(OBJS_DIR) $(OBJS) $(OBJS_BONUS)
ar rcs $(NAME) $(OBJS) $(OBJS_BONUS)
$(NAME): $(OBJS_DIR) $(OBJS)
ar rcs $@ $(OBJS)
$(OBJS_DIR):
mkdir -p $(OBJS_DIR)
$(OBJS_DIR)/%.o: $(SRCS_DIR)/%.s
nasm $(FLAGS) -o $@ $<
$(OBJS_DIR)/%.o: $(SRCS_BONUS_DIR)/%.s
nasm $(FLAGS) -o $@ $<
clean:
rm -rf $(OBJS_DIR)
fclean: clean
rm -f $(NAME) test
.PHONY: fclean clean all