source: trunk/hal/tsar_mips32/Makefile @ 673

Last change on this file since 673 was 647, checked in by alain, 5 years ago

...miscelaneous...

File size: 4.2 KB
Line 
1#############################################################################
2#                  HAL Makefile for Tsar-MIPS32                             #
3#############################################################################
4
5-include ../../params-soft.mk
6ifeq ($(ARCH_NAME),)
7$(error Please define in ARCH_NAME parameter in params-soft.mk!)
8endif
9
10LIBGCC = -L$(shell $(CC) -print-libgcc-file-name | sed 's/libgcc.a//') #todo ?
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                dirs                                \
16                clean                               \
17
18DRIVERS_OBJS = $(HAL_ARCH)/build/drivers/soclib_tty.o  \
19               $(HAL_ARCH)/build/drivers/soclib_mty.o  \
20               $(HAL_ARCH)/build/drivers/soclib_bdv.o  \
21               $(HAL_ARCH)/build/drivers/soclib_hba.o  \
22               $(HAL_ARCH)/build/drivers/soclib_pic.o  \
23               $(HAL_ARCH)/build/drivers/soclib_nic.o  \
24               $(HAL_ARCH)/build/drivers/soclib_dma.o  \
25               $(HAL_ARCH)/build/drivers/soclib_mmc.o  \
26               $(HAL_ARCH)/build/drivers/soclib_fbf.o  \
27               $(HAL_ARCH)/build/drivers/soclib_iob.o
28
29CORE_OBJS    = $(HAL_ARCH)/build/core/hal_special.o      \
30               $(HAL_ARCH)/build/core/hal_context.o      \
31               $(HAL_ARCH)/build/core/hal_atomic.o       \
32               $(HAL_ARCH)/build/core/hal_remote.o       \
33               $(HAL_ARCH)/build/core/hal_uspace.o       \
34               $(HAL_ARCH)/build/core/hal_irqmask.o      \
35               $(HAL_ARCH)/build/core/hal_gpt.o          \
36               $(HAL_ARCH)/build/core/hal_ppm.o          \
37               $(HAL_ARCH)/build/core/hal_vmm.o          \
38               $(HAL_ARCH)/build/core/hal_exception.o    \
39               $(HAL_ARCH)/build/core/hal_interrupt.o    \
40               $(HAL_ARCH)/build/core/hal_syscall.o      \
41               $(HAL_ARCH)/build/core/hal_drivers.o      \
42               $(HAL_ARCH)/build/core/hal_kentry.o       \
43               $(HAL_ARCH)/build/core/hal_switch.o       \
44               $(HAL_ARCH)/build/core/hal_user.o
45
46HAL_INCLUDE =    -I$(KERNEL)             \
47                 -I$(HAL_ARCH)/drivers   \
48                 -I$(HAL)/generic        \
49                 -I$(HAL_ARCH)/core      \
50                 -I../../tools/arch_info \
51                 -I$(KERNEL)/kern        \
52                 -I$(KERNEL)/mm          \
53                 -I$(KERNEL)/fs          \
54                 -I$(KERNEL)/syscalls    \
55                 -I$(SHARED_INCLUDE)     \
56                 -I$(KERNEL)/devices     \
57                 -I$(KERNEL)/libk        \
58                 -I../../ # for hard_config.h (needed by soclib_sdc_driver for SYS_CLK)
59
60##############################
61# Rule to generate .o for HAL.
62compile: dirs $(CORE_OBJS) $(DRIVERS_OBJS)
63
64########################################
65# Rule to create the build directories.
66dirs:
67        @mkdir -p $(HAL_ARCH)/build
68        @mkdir -p $(HAL_ARCH)/build/drivers
69        @mkdir -p $(HAL_ARCH)/build/core
70
71
72##############################
73# rules to compile the drivers
74$(HAL_ARCH)/build/drivers/%.o:  $(HAL_ARCH)/drivers/%.c      \
75                                $(HAL_ARCH)/drivers/%.h      \
76                                $(KERNEL)/kernel_config.h    \
77                                $(HAL_ARCH)/core/hal_kernel_types.h
78        $(CC) $(HAL_INCLUDE) $(CFLAGS)  -c -o $@ $<
79        $(DU) -D $@ > $@.txt
80
81######################################
82# Rules to generate kernel/hal objects
83$(HAL_ARCH)/build/core/%.o:     $(HAL_ARCH)/core/%.c         \
84                                $(HAL)/generic/%.h           \
85                                $(KERNEL)/kernel_config.h    \
86                                $(HAL_ARCH)/core/hal_kernel_types.h
87        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
88
89$(HAL_ARCH)/build/core/hal_kentry.o:  $(HAL_ARCH)/core/hal_kentry.S \
90                                      $(HAL_ARCH)/core/hal_kentry.h \
91                                      $(KERNEL)/kernel_config.h     \
92                                      $(HAL_ARCH)/core/hal_kernel_types.h
93        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
94
95$(HAL_ARCH)/build/core/hal_switch.o:  $(HAL_ARCH)/core/hal_switch.S \
96                                      $(HAL)/generic/hal_switch.h
97        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
98        $(DU) -D $@ > $@.txt
99
100clean:
101        rm -rf $(HAL_ARCH)/build/*
Note: See TracBrowser for help on using the repository browser.