source: trunk/hal/tsar_mips32/Makefile @ 439

Last change on this file since 439 was 439, checked in by satin@…, 4 years ago

Introduice new distributed Makefile architecture.
Remove deprecated sys/ directory

File size: 3.9 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_bdv.o  \
20               $(HAL_ARCH)/build/drivers/soclib_hba.o  \
21               $(HAL_ARCH)/build/drivers/soclib_mmc.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_iob.o
26
27CORE_OBJS    = $(HAL_ARCH)/build/core/hal_special.o      \
28              $(HAL_ARCH)/build/core/hal_context.o      \
29              $(HAL_ARCH)/build/core/hal_atomic.o       \
30              $(HAL_ARCH)/build/core/hal_remote.o       \
31              $(HAL_ARCH)/build/core/hal_uspace.o       \
32              $(HAL_ARCH)/build/core/hal_irqmask.o      \
33              $(HAL_ARCH)/build/core/hal_gpt.o          \
34              $(HAL_ARCH)/build/core/hal_ppm.o          \
35              $(HAL_ARCH)/build/core/hal_vmm.o          \
36              $(HAL_ARCH)/build/core/hal_exception.o    \
37              $(HAL_ARCH)/build/core/hal_interrupt.o    \
38              $(HAL_ARCH)/build/core/hal_syscall.o      \
39              $(HAL_ARCH)/build/core/hal_drivers.o      \
40              $(HAL_ARCH)/build/core/hal_kentry.o       \
41              $(HAL_ARCH)/build/core/hal_switch.o       \
42              $(HAL_ARCH)/build/core/hal_user.o
43
44HAL_INCLUDE =     -I$(KERNEL) \
45                 -I$(HAL_ARCH)/drivers \
46                 -I$(HAL)/generic             \
47                 -I$(HAL_ARCH)/core    \
48                 -I../../tools/arch_info         \
49                 -I$(KERNEL)/kern \
50                 -I$(KERNEL)/mm   \
51                 -I$(KERNEL)/fs   \
52                 -I$(KERNEL)/syscalls   \
53                 -I$(KERNEL)/devices    \
54                 -I$(KERNEL)/libk
55
56# Rule to generate .o for HAL.
57compile: dirs $(CORE_OBJS) $(DRIVERS_OBJS)
58
59# Rule to create the build directories.
60dirs:
61        @mkdir -p $(HAL_ARCH)/build
62        @mkdir -p $(HAL_ARCH)/build/drivers
63        @mkdir -p $(HAL_ARCH)/build/core
64
65
66##############################
67# rules to compile the drivers
68$(HAL_ARCH)/build/drivers/%.o:       $(HAL_ARCH)/drivers/%.c \
69                                $(HAL_ARCH)/drivers/%.h \
70                                $(KERNEL)/kernel_config.h             \
71                                $(HAL_ARCH)/core/hal_types.h
72        $(CC) $(HAL_INCLUDE) $(CFLAGS)  -c -o $@ $<
73
74######################################
75# Rules to generate kernel/hal objects
76$(HAL_ARCH)/build/core/%.o:           $(HAL_ARCH)/core/%.c    \
77                                $(HAL)/generic/%.h             \
78                                $(KERNEL)/kernel_config.h             \
79                                $(HAL_ARCH)/core/hal_types.h
80        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
81
82$(HAL_ARCH)/build/core/hal_kentry.o:  $(HAL_ARCH)/core/hal_kentry.S \
83                                $(HAL_ARCH)/core/hal_kentry.h \
84                                $(KERNEL)/kernel_config.h                   \
85                                $(HAL_ARCH)/core/hal_types.h
86        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
87
88$(HAL_ARCH)/build/core/hal_switch.o:  $(HAL_ARCH)/core/hal_switch.S \
89                                $(HAL)/generic/hal_switch.h
90        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
91        $(DU) -D $@ > $@.txt
92
93clean:
94        rm -rf $(HAL_ARCH)/build/*
Note: See TracBrowser for help on using the repository browser.