Rev 4340 | Rev 4343 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4340 | Rev 4342 | ||
|---|---|---|---|
| Line 28... | Line 28... | ||
| 28 | # |
28 | # |
| 29 | 29 | ||
| 30 | ## Common compiler flags |
30 | ## Common compiler flags |
| 31 | # |
31 | # |
| 32 | 32 | ||
| 33 | -include ../../../Makefile.config |
- | |
| 34 | - | ||
| 35 | LIBC_PREFIX = $(shell pwd) |
33 | LIBC_PREFIX = $(shell pwd) |
| 36 | SOFTINT_PREFIX = ../softint |
34 | SOFTINT_PREFIX = ../softint |
| 37 | RTLD_PREFIX = ../../lib/rtld |
35 | RTLD_PREFIX = ../../lib/rtld |
| 38 | 36 | ||
| 39 | ## Setup toolchain |
37 | ## Setup toolchain |
| Line 45... | Line 43... | ||
| 45 | PIC_CFLAGS := $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__ |
43 | PIC_CFLAGS := $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__ |
| 46 | 44 | ||
| 47 | ## Sources |
45 | ## Sources |
| 48 | # |
46 | # |
| 49 | 47 | ||
| 50 | - | ||
| 51 | GENERIC_SOURCES = \ |
48 | GENERIC_SOURCES = \ |
| 52 | generic/libc.c \ |
49 | generic/libc.c \ |
| 53 | generic/ddi.c \ |
50 | generic/ddi.c \ |
| 54 | generic/as.c \ |
51 | generic/as.c \ |
| 55 | generic/cap.c \ |
52 | generic/cap.c \ |
| Line 91... | Line 88... | ||
| 91 | generic/udebug.c \ |
88 | generic/udebug.c \ |
| 92 | generic/vfs/vfs.c \ |
89 | generic/vfs/vfs.c \ |
| 93 | generic/vfs/canonify.c |
90 | generic/vfs/canonify.c |
| 94 | 91 | ||
| 95 | ARCH_SOURCES += \ |
92 | ARCH_SOURCES += \ |
| 96 | arch/$(ARCH)/src/entry.s \ |
93 | arch/$(UARCH)/src/entry.s \ |
| 97 | arch/$(ARCH)/src/thread_entry.s |
94 | arch/$(UARCH)/src/thread_entry.s |
| 98 | 95 | ||
| 99 | GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES))) |
96 | GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES))) |
| 100 | ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES))) |
97 | ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES))) |
| 101 | OBJECTS := $(GENERIC_OBJECTS) $(ARCH_OBJECTS) |
98 | OBJECTS := $(GENERIC_OBJECTS) $(ARCH_OBJECTS) |
| 102 | PIC_OBJECTS := $(addsuffix .pio,$(basename $(OBJECTS))) |
99 | PIC_OBJECTS := $(addsuffix .pio,$(basename $(OBJECTS))) |
| 103 | 100 | ||
| 104 | .PHONY: all clean depend kerninc |
101 | .PHONY: all clean depend kerninc |
| 105 | 102 | ||
| 106 | all: kerninc libc.a libc.pic.a arch/$(ARCH)/_link.ld |
103 | all: kerninc libc.a libc.pic.a arch/$(UARCH)/_link.ld |
| 107 | 104 | ||
| 108 | kerninc: |
105 | kerninc: |
| 109 | ln -sfn ../../../../kernel/generic/include include/kernel |
106 | ln -sfn ../../../../kernel/generic/include include/kernel |
| 110 | ln -sfn kernel/arch include/arch |
107 | ln -sfn kernel/arch include/arch |
| 111 | ln -sfn ../arch/$(ARCH)/include include/libarch |
108 | ln -sfn ../arch/$(UARCH)/include include/libarch |
| 112 | 109 | ||
| 113 | -include Makefile.depend |
110 | -include Makefile.depend |
| 114 | 111 | ||
| 115 | clean: |
112 | clean: |
| 116 | -rm -f include/kernel include/arch include/libarch libc.a libc.pic.a arch/$(ARCH)/_link.ld Makefile.depend |
113 | -rm -f include/kernel include/arch include/libarch libc.a libc.pic.a arch/$(UARCH)/_link.ld Makefile.depend |
| 117 | find . \( -name '*.o' -o -name '*.pio' \) -follow -exec rm \{\} \; |
114 | find . \( -name '*.o' -o -name '*.pio' \) -follow -exec rm \{\} \; |
| 118 | 115 | ||
| 119 | depend: kerninc |
116 | depend: kerninc |
| 120 | -makedepend -f - -- $(DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null |
117 | -makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null |
| 121 | -makedepend $(DEFS) $(PIC_CFLAGS) -o.pio -f - $(ARCH_SOURCES) $(GENERIC_SOURCES) >> Makefile.depend 2> /dev/null |
118 | -makedepend $(DEFS) $(PIC_CFLAGS) -o.pio -f - $(ARCH_SOURCES) $(GENERIC_SOURCES) >> Makefile.depend 2> /dev/null |
| 122 | 119 | ||
| 123 | libc.a: depend $(OBJECTS) |
120 | libc.a: depend $(OBJECTS) |
| 124 | $(AR) rc $@ $(LIBS) $(OBJECTS) |
121 | $(AR) rc $@ $(LIBS) $(OBJECTS) |
| 125 | 122 | ||
| 126 | libc.pic.a: depend $(PIC_OBJECTS) |
123 | libc.pic.a: depend $(PIC_OBJECTS) |
| 127 | $(AR) rc $@ $(LIBS) $(PIC_OBJECTS) |
124 | $(AR) rc $@ $(LIBS) $(PIC_OBJECTS) |
| 128 | 125 | ||
| 129 | arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in |
126 | arch/$(UARCH)/_link.ld: arch/$(UARCH)/_link.ld.in |
| 130 | $(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@ |
127 | $(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@ |
| 131 | 128 | ||
| 132 | %.o: %.S |
129 | %.o: %.S |
| 133 | $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@ |
130 | $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@ |
| 134 | 131 | ||