29 lines
589 B
Makefile
29 lines
589 B
Makefile
|
|
CC = i686-elf-gcc
|
||
|
|
LD = i686-elf-ld
|
||
|
|
|
||
|
|
SYSROOT = ../sysroot
|
||
|
|
USR_INCLUDE = $(SYSROOT)/usr/include
|
||
|
|
USR_LIB = $(SYSROOT)/usr/lib
|
||
|
|
|
||
|
|
CFLAGS = -ffreestanding -O2 -Wall -Wextra -I$(USR_INCLUDE)
|
||
|
|
LDFLAGS = -m elf_i386 -nostdlib
|
||
|
|
|
||
|
|
TARGET = rockterm
|
||
|
|
|
||
|
|
all: $(TARGET)
|
||
|
|
|
||
|
|
crt0.o: crt0.S
|
||
|
|
$(CC) $(CFLAGS) -c crt0.S -o crt0.o
|
||
|
|
|
||
|
|
main.o: main.c
|
||
|
|
$(CC) $(CFLAGS) -c main.c -o main.o
|
||
|
|
|
||
|
|
$(TARGET): crt0.o main.o $(USR_LIB)/*
|
||
|
|
$(LD) $(LDFLAGS) -T linker.ld crt0.o main.o $(USR_LIB)/* -o $(TARGET)
|
||
|
|
cp $(TARGET) $(SYSROOT)/usr/bin
|
||
|
|
|
||
|
|
clean:
|
||
|
|
rm -f *.o $(TARGET) compile_commands.json
|
||
|
|
rm -rf .cache
|
||
|
|
|
||
|
|
.PHONY: all clean test
|