source: trunk/boot/tsar_mips32/Makefile @ 624

Last change on this file since 624 was 624, checked in by alain, 6 years ago

Fix several bugs to use the instruction MMU in kernel mode
in replacement of the instruction address extension register,
and remove the "kentry" segment.

This version is running on the tsar_generic_iob" platform.

One interesting bug: the cp0_ebase defining the kernel entry point
(for interrupts, exceptions and syscalls) must be initialized
early in kernel_init(), because the VFS initialisation done by
kernel_ini() uses RPCs, and RPCs uses Inter-Processor-Interrup.

File size: 4.9 KB
Line 
1#############################################################################
2#                  ALMOS-MKH Makefile for BOOTLOADER TSAR                   #
3#############################################################################
4
5-include ../../params-soft.mk
6ifeq ($(ARCH_NAME),)
7$(error Please define in ARCH_NAME parameter in params-soft.mk!)
8endif
9
10-include ../../params-hard.mk
11
12# Rules that don't build target files
13# always out-of-date, need to be regenerated everytime they are called
14.PHONY: compile                         \
15        ../../hard_config.h     \
16                dirs                                \
17                build/boot.elf     
18
19# Objects to be linked for boot.elf generation
20BOOT_OBJS       = build/boot.o            \
21              build/boot_fat32.o      \
22              build/boot_utils.o      \
23              build/boot_entry.o      \
24              build/boot_tty_driver.o \
25              build/boot_hba_driver.o \
26              build/boot_bdv_driver.o \
27              build/boot_mmc_driver.o   
28
29# List of directories to be searched for included files
30# when compiling for boot.elf generation
31BOOT_INCLUDE = -I.               \
32                -I../../tools/arch_info  \
33                -I$(HAL_ARCH)/core       \
34                -I../..                  \
35                -I$(KERNEL)              \
36                -I$(KERNEL)/kern
37
38# Rule to generate boot.elf, kernel.elf, ksh.elf, sort.elf and update virtual disk.
39compile: dirs                     \
40         build/boot.elf
41
42# Rule to create the build directories.
43dirs:
44        @mkdir -p build
45
46clean:
47        rm -rf build
48
49../../hard_config.h:
50        $(MAKE) -C ../../ hard_config.h
51
52################################################
53# Rules to compile boot drivers used by boot.elf
54build/boot_tty_driver.o: boot_tty_driver.c                   \
55                         boot_tty_driver.h                   \
56                         boot_utils.h                        \
57                         boot_config.h                       \
58                                                 $(HAL_ARCH)/core/hal_kernel_types.h \
59                                                 ../../hard_config.h
60        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
61        $(DU) -D $@ > $@.txt
62
63build/boot_bdv_driver.o:        boot_bdv_driver.c \
64                                                                boot_bdv_driver.h \
65                                                                boot_utils.h      \
66                                                                boot_config.h     \
67                                                                $(HAL_ARCH)/core/hal_kernel_types.h        \
68                                                                ../../hard_config.h
69        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
70        $(DU) -D $@ > $@.txt
71
72build/boot_hba_driver.o:        boot_hba_driver.c \
73                                                                boot_hba_driver.h \
74                                                                boot_utils.h      \
75                                                                boot_config.h     \
76                                                                $(HAL_ARCH)/core/hal_kernel_types.h        \
77                                                                ../../hard_config.h
78        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
79        $(DU) -D $@ > $@.txt
80
81build/boot_spi_driver.o:        boot_spi_driver.c \
82                                                                boot_spi_driver.h \
83                                                                boot_utils.h      \
84                                                                $(HAL_ARCH)/core/hal_kernel_types.h        \
85                                                                ../../hard_config.h
86        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
87        $(DU) -D $@ > $@.txt
88
89build/boot_mmc_driver.o:        boot_mmc_driver.c \
90                                                                boot_mmc_driver.h \
91                                                                boot_utils.h      \
92                                                                boot_config.h     \
93                                                                $(HAL_ARCH)/core/hal_kernel_types.h        \
94                                                                ../../hard_config.h
95        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
96        $(DU) -D $@ > $@.txt
97
98##############################
99# Rule to compile boot_spi_utils.o
100build/boot_spi_utils.o: boot_spi_utils.c       \
101                                                                boot_spi_utils.h       \
102                                                                $(HAL_ARCH)/core/hal_kernel_types.h         \
103                                                                ../../hard_config.h
104        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
105        $(DU) -D $@ > $@.txt
106
107##############################
108# Rule to compile boot_fat32.o
109build/boot_fat32.o: boot_fat32.c      \
110                                                                boot_fat32.h      \
111                                                                boot_utils.h      \
112                                                                boot_config.h     \
113                                                                $(HAL_ARCH)/core/hal_kernel_types.h        \
114                                                                ../../hard_config.h                     
115        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
116        $(DU) -D $@ > $@.txt
117
118##############################
119# Rule to compile boot_utils.o
120build/boot_utils.o: boot_utils.c       \
121                                                                boot_utils.h       \
122                                                                boot_tty_driver.h  \
123                                                                $(HAL_ARCH)/core/hal_kernel_types.h         \
124                                                                ../../hard_config.h
125        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
126        $(DU) -D $@ > $@.txt
127
128########################
129# Rule to compile boot.o
130build/boot.o:                           boot.c             \
131                                                                boot_utils.h       \
132                                                                boot_spi_utils.h   \
133                                                                boot_fat32.h       \
134                                                                boot_tty_driver.h  \
135                                                                boot_hba_driver.h  \
136                                                                boot_bdv_driver.h  \
137                                                                boot_mmc_driver.h  \
138                                                                boot_spi_driver.h  \
139                                                                boot_config.h      \
140                                                                $(HAL_ARCH)/core/hal_kernel_types.h         \
141                                                                ../../hard_config.h                             
142        $(CC) $(BOOT_INCLUDE) $(CFLAGS) $(MACROS) -c -o $@ $<
143        $(DU) -D $@ > $@.txt
144
145##############################
146# Rule to compile boot_entry.o
147build/boot_entry.o: boot_entry.S   \
148                                                                boot_config.h  \
149                                                                ../../hard_config.h
150        $(CC) $(BOOT_INCLUDE) $(CFLAGS) -c -o $@ $<
151        $(DU) -D $@ > $@.txt
152
153#####################################################################
154# Rule to generate boot.elf
155build/boot.elf: $(BOOT_OBJS) boot.ld
156        $(LD) -o $@ -T boot.ld $(BOOT_OBJS)
157        $(DU) -D $@ > $@.txt
Note: See TracBrowser for help on using the repository browser.