matos/userspace/Makefile

29 lines
716 B
Makefile

# Used to generated .d file that deal with header dependencies
CPPFLAGS = -MMD
LDFLAGS += -m elf_i386
CFLAGS += -m32 -Wall -Wextra -Werror -ffreestanding -fno-exceptions -fno-pie -fno-stack-protector -fno-tree-vectorize -nostdinc -fno-asynchronous-unwind-tables -g
LIBGCC = $(shell $(CC) -print-libgcc-file-name $(CFLAGS))
SUBDIRS := . kernel
ARCH?=x86
INCDIRS += $(foreach dir, $(SUBDIRS), -I$(dir))
CPPFLAGS += $(INCDIRS)
csrc=$(wildcard *.c)
cobj=$(csrc:%.c=%.o)
deps=$(csrc:%.c=%.d)
PROG = user
$(PROG) : $(cobj) linker.ld
$(CC) -static -Wl,--warn-common $(CFLAGS) -nostdlib -o $@ -T linker.ld $(cobj) $(LIBGCC)
clean:
$(RM) $(PROG) $(cobj) $(deps)
ifneq ($(MAKECMDGOALS),clean)
-include $(deps)
endif