Files
libasm/Makefile

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
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)
libasm_bonus.a : $(OBJS_DIR) $(OBJS) $(OBJS_BONUS)
ar rcs libasm_bonus.a $(OBJS) $(OBJS_BONUS)
test: test.c libasm_bonus.a
clang -z noexecstack test.c -L. -lasm_bonus -o test -g
./test || echo -e "\033[31m tests exited with an error code"
$(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
rm -f libasm_bonus.a
.PHONY: fclean clean all