xref: /minix/minix/kernel/arch/earm/Makefile.inc (revision 7f5f010b)
1# Makefile for arch-dependent kernel code
2.include <bsd.own.mk>
3
4HERE=${.CURDIR}/arch/${MACHINE_ARCH}
5.PATH:	${HERE}
6
7# objects we want unpaged from -lminlib
8MINLIB_OBJS_UNPAGED= get_bp.o
9get_bp.o:	${NETBSDSRCDIR}/minix/lib/libminlib/${MACHINE_ARCH}/get_bp.S
10
11# objects we want unpaged from -lsys
12SYS_OBJS_UNPAGED=assert.o stacktrace.o
13assert.o:	${NETBSDSRCDIR}/minix/lib/libsys/assert.c
14stacktrace.o:	${NETBSDSRCDIR}/minix/lib/libsys/stacktrace.c
15
16# objects we want unpaged from -lminc
17MINC_OBJS_UNPAGED= atoi.o \
18	printf.o subr_prf.o \
19	strcmp.o strcpy.o strlen.o strncmp.o \
20	memcpy.o memmove.o memset.o \
21	udivdi3.o umoddi3.o qdivrem.o
22MINC_OBJS_UNPAGED+= __aeabi_ldiv0.o __aeabi_idiv0.o __aeabi_uldivmod.o divide.o divsi3.o udivsi3.o
23atoi.o:		${NETBSDSRCDIR}/minix/lib/libminc/atoi.c
24printf.o:	${NETBSDSRCDIR}/sys/lib/libsa/printf.c
25subr_prf.o:	${NETBSDSRCDIR}/sys/lib/libsa/subr_prf.c
26memcpy.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/memcpy.S
27memmove.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/memmove.S
28memset.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/memset.S
29strlen.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/strlen.S
30strcpy.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/strcpy.S
31strcmp.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/strcmp.S
32
33#strcat.o:	${NETBSDSRCDIR}/common/lib/libc/string/strcat.c
34__aeabi_idiv0.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/gen/__aeabi_idiv0.c
35__aeabi_ldiv0.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/gen/__aeabi_ldiv0.c
36__aeabi_uldivmod.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S
37divide.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/gen/divide.S
38divsi3.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/gen/divsi3.S
39udivsi3.o:	${NETBSDSRCDIR}/common/lib/libc/arch/arm/gen/udivsi3.S
40
41# the following is required by pre_init.c
42strncmp.o:	${NETBSDSRCDIR}/common/lib/libc/string/strncmp.c
43
44# these are required by kprintn.o:
45udivdi3.o:	${NETBSDSRCDIR}/common/lib/libc/quad/udivdi3.c
46umoddi3.o:	${NETBSDSRCDIR}/common/lib/libc/quad/umoddi3.c
47qdivrem.o:	${NETBSDSRCDIR}/common/lib/libc/quad/qdivrem.c
48
49CPPFLAGS.__aeabi_idiv0.c+= -D_STANDALONE
50CPPFLAGS.__aeabi_ldiv0.c+= -D_STANDALONE
51
52# LSC: putchar and kputc have the same signature. A bit hackish.
53CPPFLAGS.subr_prf.c+= -Dputchar=kputc
54
55# Activate optional support, may be deactivated.
56CPPFLAGS.subr_prf.c+= -DLIBSA_PRINTF_LONGLONG_SUPPORT -DLIBSA_PRINTF_WIDTH_SUPPORT
57
58.include "bsp/ti/Makefile.inc"
59
60# some object files we give a symbol prefix (or namespace) of __k_unpaged_
61# that must live in their own unique namespace.
62#
63.for unpaged_obj in head.o pre_init.o direct_tty_utils.o \
64	pg_utils.o klib.o utility.o arch_reset.o \
65	${MINLIB_OBJS_UNPAGED} ${MINC_OBJS_UNPAGED} ${SYS_OBJS_UNPAGED} ${BSP_OBJS_UNPAGED}
66unpaged_${unpaged_obj}: ${unpaged_obj}
67	${OBJCOPY} --prefix-symbols=__k_unpaged_ ${.OBJDIR}/${unpaged_obj} $@
68UNPAGED_OBJS += unpaged_${unpaged_obj}
69ORIG_UNPAGED_OBJS += ${unpaged_obj}
70.endfor
71
72
73CLEANFILES+= ${ORIG_UNPAGED_OBJS}
74
75SRCS+=	mpx.S arch_clock.c arch_do_vmctl.c arch_system.c do_padconf.c \
76	exception.c hw_intr.c klib.S memory.c \
77	protect.c direct_tty_utils.c arch_reset.c \
78	pg_utils.c phys_copy.S phys_memset.S exc.S
79
80OBJS.kernel+=	${UNPAGED_OBJS}
81
82klib.o mpx.o head.o: procoffsets.h
83
84SRCS+= procoffsets.h
85
86PROCOFFSETSCF=procoffsets.cf
87
88.PATH: ${NETBSDSRCDIR}/minix/include/arch/${MACHINE_ARCH}/include
89
90procoffsets.h: ${PROCOFFSETSCF} kernel.h proc.h stackframe.h archtypes.h
91	${_MKTARGET_CREATE}
92	${TOOL_CAT} ${HERE}/${PROCOFFSETSCF} | \
93	  ${TOOL_GENASSYM} -- ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} >$@.tmp && \
94	  mv -f $@.tmp $@
95
96sconst.h: procoffsets.h
97apic_asm.o head.o klib.o mpx.o: sconst.h
98
99