aboutsummaryrefslogtreecommitdiff
path: root/lib/Makefile
blob: ef56b3ad2788acf90bf85f8328336aa5c29f5058 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# MIT License, Copyright (c) 2020 Marvin Borner

# TODO: Remove serial and cpu from libc?
COBJS = str.o \
	mem.o \
	math.o \
	conv.o \
	print.o \
	serial.o \
	cpu.o \
	sys.o
CC = ../cross/opt/bin/i686-elf-gcc
LD = ../cross/opt/bin/i686-elf-ld
OC = ../cross/opt/bin/i686-elf-ar

# Flags to make the binary smaller TODO: Remove after indirect pointer support!
CSFLAGS = -mpreferred-stack-boundary=2 -fno-asynchronous-unwind-tables -Os

CFLAGS = $(CSFLAGS) -Wall -Wextra -nostdlib -nostdinc -ffreestanding -fno-builtin -mgeneral-regs-only -std=c99 -m32 -pedantic-errors -Iinc/

%.o: %.c
	@$(CC) -c $(CFLAGS) $< -o $@

libc: CFLAGS += -Duserspace
libc: $(COBJS)
	@mkdir -p ../build/
	@$(AR) qc ../build/libc.a $+

libk: CFLAGS += -Dkernel
libk: $(COBJS)
	@mkdir -p ../build/
	@$(AR) qc ../build/libk.a $+

clean:
	@find . -name "*.o" -type f -delete