source: trunk/hal/x86_64/Makefile

Last change on this file was 457, checked in by alain, 8 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.