mirror of
https://github.com/cowmonk/cowos.git
synced 2025-10-27 14:33:27 +00:00
58 lines
1 KiB
Makefile
58 lines
1 KiB
Makefile
MAKEFLAGS += -rR
|
|
.SUFFIXES:
|
|
|
|
override OUTPUT := cowos
|
|
|
|
CC := clang
|
|
|
|
CFLAGS := -g -O3 -pipe
|
|
|
|
CPPFLAGS :=
|
|
|
|
override CFLAGS += \
|
|
-m64 -g -c -ffreestanding -Wall -Werror -fcommon -Iinclude/ -fPIE -mno-80387 \
|
|
-mno-mmx \
|
|
-mno-sse \
|
|
-nostdlib \
|
|
-mno-sse2 \
|
|
-mno-red-zone -fno-stack-protector \
|
|
-fno-stack-check \
|
|
-fno-lto \
|
|
-target x86_64-unknown-none
|
|
|
|
override CPPFLAGS := \
|
|
-I src \
|
|
$(CPPFLAGS) \
|
|
-DLIMINE_API_REVISION=3 \
|
|
-MMD \
|
|
-MP
|
|
|
|
override NASMFLAGS += \
|
|
-Wall \
|
|
-f elf64
|
|
|
|
override LDFLAGS += \
|
|
-Wl,-m,elf_x86_64 \
|
|
-Wl,--build-id=none \
|
|
-nostdlib \
|
|
-static \
|
|
-z max-page-size=0x1000 \
|
|
-T linker.ld
|
|
|
|
C_SOURCES = $(shell find . -name '*.c')
|
|
C_OBJS = $(patsubst %.c,%.o,$(C_SOURCES))
|
|
|
|
.PHONY: all
|
|
all: bin/$(OUTPUT)
|
|
|
|
bin/$(OUTPUT): Makefile $(C_OBJS) linker.ld
|
|
mkdir ./bin/ -p
|
|
$(CC) $(LDFLAGS) -o ./bin/$(OUTPUT) $(C_OBJS) -fuse-ld=lld
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) $(subst .o,.c,$@) -o $@
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
find . -name '*.o' -delete
|
|
rm -r -f ./bin
|