Files
libasm/Makefile

45 lines
582 B
Makefile

SHELL = bash
# --- lib ---
NAME = libasm.a
OBJ_DIR = obj/
SRC_DIR = src/
SRC = $(shell find $(SRC_DIR) -name '*.s')
OBJ = $(addprefix $(OBJ_DIR), $(SRC:.s=.o))
AS = nasm
ASFLAGS = -f elf64
# --- tester ---
t_CC = gcc
t_CFLAGS = -z noexecstack
t_SRC = src/tests/main.c
t_NAME = tester
all: $(NAME)
$(NAME): $(OBJ)
ar rcs -o $@ $(OBJ)
$(OBJ_DIR)%.o: %.s
@mkdir -p $(@D)
$(AS) $(ASFLAGS) $< -o $@
clean:
rm -rf $(OBJ_DIR)
fclean: clean
rm $(NAME)
re: fclean
$(MAKE) -s all
test: $(OBJ)
$(t_CC) $(OBJ) $(t_SRC) $(t_CFLAGS) -o $(t_NAME)
.PHONY: clean fclean all re