summaryrefslogtreecommitdiff
path: root/libc/Makefile
blob: cc7fa8dae4b8531b958080bfcc9919dbf7547c0f (plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
INCLUDE?=$(SYS_INCLUDE)
CFLAGS?=-fPIC
LDFLAGS?=-nostdlib -shared
LIBS?=-lgcc

# -- Do not edit below this line --

CC:=i686-boxos-gcc
VERSION:="$(shell git describe --abbrev=4 --dirty --always --tags)"
INCLUDE:=$(INCLUDE)
CFLAGS:=$(CFLAGS) -Wall -Wextra -DVERSION=\"$(VERSION)\" -ggdb
LDFLAGS:=$(LDFLAGS)
LIBS:=$(LIBS)

ARCHDIR=arch/$(ARCH)

include $(ARCHDIR)/make.config

CFLAGS:=$(CFLAGS) $(LIBC_ARCH_CFLAGS)
LDFLAGS:=$(LDFLAGS) $(LIBC_ARCH_LDFLAGS)
LIBS:=$(LIBS) $(LIBC_ARCH_LIBS)

LIBC=libc.so

LIBC_OBJS=$(LIBC_ARCH_OBJS) \
	  init.o \
	  unistd.o \

OBJS=$(ARCHDIR)/crti.o \
     $(LIBC_OBJS) \
     $(ARCHDIR)/crtn.o \

LINK_LIST=$(LDFLAGS) \
	  $(OBJS) \
	  $(LIBS) \

.PHONY: all clean install install-headers
.SUFFIXES: .o .c .s

all: $(LIBC)

$(LIBC): $(OBJS)
	@$(CC) -o $@ $(LINK_LIST)
	@echo [LD] $@

.c.o:
	@$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE)
	@echo [CC] $@

.s.o:
	@$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE)
	@echo [AS] $@

install: install-headers
	install -m 755 $(LIBC) $(SYS_ROOT)/lib

install-headers:
	install -d $(SYS_ROOT)/usr/include
	install -d $(SYS_ROOT)/usr/include/sys
	install -d $(SYS_ROOT)/usr/include/arpa
	for f in $(ROOT)/include/*; do install -m 644 "$$f" $(SYS_ROOT)/usr/include/; done
	for f in $(ROOT)/include/sys/*; do install -m 644 "$$f" $(SYS_ROOT)/usr/include/sys/; done
	for f in $(ROOT)/include/arpa/*; do install -m 644 "$$f" $(SYS_ROOT)/usr/include/arpa/; done

clean:
	$(RM) $(LIBC)
	$(RM) $(OBJS) *.o */*.o */*/*.o
	$(RM) $(OBJS:.o=.d) *.d */*.d */*/*.d

-include $(OBJS:.o=.d)