source: trunk/hal/x86_64/Makefile @ 517

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

This version modifies the exec syscall and fixes a large number of small bugs.
The version number has been updated (0.1)

File size: 6.1 KB
Line 
1#############################################################################
2#                  HAL  Makefile for x86_64                                 #
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
18
19DRIVERS_OBJS = $(HAL_ARCH)/build/drivers/ioc_ata.o     \
20               $(HAL_ARCH)/build/drivers/pic_apic.o    \
21               $(HAL_ARCH)/build/drivers/txt_rs232.o
22
23CORE_OBJS    = \
24              $(HAL_ARCH)/build/core/hal_boot.o         \
25              $(HAL_ARCH)/build/core/hal_smpboot.o      \
26              $(HAL_ARCH)/build/core/hal_init.o         \
27              $(HAL_ARCH)/build/core/hal_cpu.o          \
28              $(HAL_ARCH)/build/core/hal_kentry.o       \
29              $(HAL_ARCH)/build/core/hal_acpi.o         \
30              $(HAL_ARCH)/build/core/hal_apic.o         \
31              $(HAL_ARCH)/build/core/x86_printf.o       \
32              $(HAL_ARCH)/build/core/hal_drivers.o      \
33              $(HAL_ARCH)/build/core/hal_special.o      \
34              $(HAL_ARCH)/build/core/hal_context.o      \
35              $(HAL_ARCH)/build/core/hal_atomic.o       \
36              $(HAL_ARCH)/build/core/hal_remote.o       \
37              $(HAL_ARCH)/build/core/hal_uspace.o       \
38              $(HAL_ARCH)/build/core/hal_irqmask.o      \
39              $(HAL_ARCH)/build/core/hal_gpt.o          \
40              $(HAL_ARCH)/build/core/hal_ppm.o          \
41              $(HAL_ARCH)/build/core/hal_exception.o    \
42              $(HAL_ARCH)/build/core/hal_interrupt.o    \
43              $(HAL_ARCH)/build/core/hal_syscall.o      \
44
45
46HAL_INCLUDE =     -I$(KERNEL) \
47                 -Idrivers \
48                 -I$(HAL)/generic             \
49                 -Icore    \
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
59# Rule to generate .o for HAL.
60compile: dirs $(CORE_OBJS) $(DRIVERS_OBJS)
61
62# Rule to create the build directories.
63dirs:
64        @mkdir -p $(HAL_ARCH)/build
65        @mkdir -p $(HAL_ARCH)/build/drivers
66        @mkdir -p $(HAL_ARCH)/build/core
67
68
69##############################
70# rules to compile the drivers
71$(HAL_ARCH)/build/drivers/%.o:       drivers/%.c \
72                                drivers/%.h \
73                                $(KERNEL)/kernel_config.h             \
74                                core/hal_kernel_types.h
75        $(CC) $(HAL_INCLUDE) $(CFLAGS)  -c -o $@ $<
76
77######################################
78# Rules to generate kernel/hal objects
79$(HAL_ARCH)/build/core/%.o:           core/%.c    \
80                                $(HAL)/generic/%.h             \
81                                $(KERNEL)/kernel_config.h             \
82                                core/hal_kernel_types.h
83        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
84
85$(HAL_ARCH)/build/core/hal_boot.o:    core/hal_boot.S \
86                                core/hal_boot.h        \
87                                core/hal_multiboot.h   \
88                                core/hal_segmentation.h \
89                                $(KERNEL)/kernel_config.h              \
90                                core/hal_kernel_types.h
91        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
92
93$(HAL_ARCH)/build/core/hal_smpboot.o: core/hal_smpboot.S \
94                                core/hal_boot.h        \
95                                core/hal_multiboot.h   \
96                                core/hal_segmentation.h \
97                                $(KERNEL)/kernel_config.h              \
98                                core/hal_kernel_types.h
99        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
100
101$(HAL_ARCH)/build/core/hal_init.o:    core/hal_init.c         \
102                                core/hal_boot.h         \
103                                core/hal_multiboot.h    \
104                                core/hal_segmentation.h \
105                                core/hal_acpi.h         \
106                                core/hal_apic.h         \
107                                core/hal_internal.h     \
108                                $(KERNEL)/kernel_config.h               \
109                                core/hal_kernel_types.h
110        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
111
112$(HAL_ARCH)/build/core/hal_cpu.o:     core/hal_cpu.S \
113                                core/hal_boot.h        \
114                                core/hal_segmentation.h \
115                                $(KERNEL)/kernel_config.h              \
116                                core/hal_kernel_types.h
117        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
118
119$(HAL_ARCH)/build/core/hal_kentry.o:  core/hal_kentry.S      \
120                                core/hal_kentry.h      \
121                                core/hal_boot.h        \
122                                $(KERNEL)/kernel_config.h              \
123                                core/hal_kernel_types.h
124        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
125
126$(HAL_ARCH)/build/core/hal_acpi.o:    core/hal_acpi.c        \
127                                core/hal_acpi.h        \
128                                $(KERNEL)/kernel_config.h              \
129                                core/hal_kernel_types.h
130        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
131
132$(HAL_ARCH)/build/core/hal_apic.o:    core/hal_apic.c        \
133                                core/hal_apic.h        \
134                                $(KERNEL)/kernel_config.h              \
135                                core/hal_kernel_types.h
136        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
137
138$(HAL_ARCH)/build/core/x86_printf.o:  core/x86_printf.c      \
139                                $(KERNEL)/kernel_config.h              \
140                                core/hal_kernel_types.h
141        $(CC) $(HAL_INCLUDE) $(CFLAGS) -c -o $@ $<
142
143clean:
144        rm -rf $(HAL_ARCH)/build/*
Note: See TracBrowser for help on using the repository browser.