NASM=nasm NASMFLAGS=-f elf64 -g -F dwarf AR=ar ARFLAGS=rcs CC=gcc CFLAGS=-Wall -g SRC_DIR=src OBJ_DIR=obj LIB_NAME=mylib STATIC_LIB=lib$(LIB_NAME).a SHARED_LIB=lib$(LIB_NAME).so SRCS=$(SRC_DIR)/ft_strlen.s \ $(SRC_DIR)/ft_strcpy.s OBJS=$(patsubst $(SRC_DIR)/%.s,$(OBJ_DIR)/%.o,$(SRCS)) DEPS=$(OBJS:.o=.d) .PHONY: all clean dirs static shared all: dirs $(STATIC_LIB) $(SHARED_LIB) dirs: @mkdir -p $(OBJ_DIR) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.s $(NASM) $(NASMFLAGS) $< -o $@ $(STATIC_LIB): $(OBJS) $(AR) $(ARFLAGS) $@ $^ $(SHARED_LIB): $(OBJS) $(CC) -shared -o $@ $^ static: $(STATIC_LIB) shared: $(SHARED_LIB) test: test.c $(STATIC_LIB) $(CC) $(CFLAGS) test.c -L. -l$(LIB_NAME) -o test -Wl,-rpath=. clean: rm -rf $(OBJ_DIR) $(STATIC_LIB) $(SHARED_LIB) test -include $(DEPS)