TARGET = lib.a SRCS = $(wildcard *.c) ASMS = $(wildcard *.s) OBJS = $(SRCS:.c=.o) $(ASMS:.s=.o) CFLAGS = -m32 -I../include -ffreestanding -nostdinc -nostdlib -fno-stack-protector -fno-pie -gstabs+ -g ASMFLAGS = -f elf32 AR = ar CC = gcc $(CFLAGS) ASM = nasm $(ASMFLAGS) all: build build: $(TARGET) .s.o: $(ASM) -o $*.o $^ .c.o: $(CC) -c -o $*.o $^ $(TARGET): $(OBJS) $(AR) rc $(TARGET) $(OBJS) clean: rm -f $(OBJS) rm -f $(TARGET)