xref: /haiku/src/system/kernel/lib/Jamfile (revision b22fab95101e8a66e76fb25927d412c6dc0ace1a)
1SubDir HAIKU_TOP src system kernel lib ;
2
3UsePrivateHeaders shared ;
4UsePrivateHeaders [ FDirName libroot locale ] ;
5UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility gnu ] : true ;
6
7# force inclusion of kernel_lib.h
8local kernelLibHeader = [ FDirName $(SUBDIR) kernel_lib.h ] ;
9CCFLAGS += -include $(kernelLibHeader) ;
10C++FLAGS += -include $(kernelLibHeader) ;
11
12
13local gnuSources = [ FDirName $(HAIKU_TOP) src libs gnu ] ;
14local librootSources = [ FDirName $(HAIKU_TOP) src system libroot ] ;
15local librootOSSources = [ FDirName $(librootSources) os ] ;
16local posixSources = [ FDirName $(librootSources) posix ] ;
17
18
19# kernel libroot os files
20
21local sources =
22	driver_settings.cpp
23	find_directory.cpp
24	fs_info.cpp
25	system_revision.c
26	wait_for_objects.cpp
27	;
28
29SourceHdrs $(sources) : $(librootOSSources) ;
30
31KernelMergeObject kernel_os_main.o : $(sources)
32	: $(TARGET_KERNEL_PIC_CCFLAGS)
33;
34
35SEARCH on [ FGristFiles $(sources) ]
36	= [ FDirName $(HAIKU_TOP) src system libroot os ] ;
37
38# kernel libroot posix files
39
40SEARCH_SOURCE += [ FDirName $(posixSources) ] ;
41SEARCH_SOURCE += [ FDirName $(posixSources) locale ] ;
42SEARCH_SOURCE += [ FDirName $(posixSources) stdio ] ;
43SEARCH_SOURCE += [ FDirName $(posixSources) stdlib ] ;
44SEARCH_SOURCE += [ FDirName $(posixSources) string ] ;
45SEARCH_SOURCE += [ FDirName $(posixSources) sys ] ;
46SEARCH_SOURCE += [ FDirName $(posixSources) time ] ;
47SEARCH_SOURCE += [ FDirName $(posixSources) unistd ] ;
48SEARCH_SOURCE += [ FDirName $(gnuSources) ] ;
49
50local muslSources =
51	ffs.c
52	rand.c
53	rand_r.c
54	;
55
56SourceHdrs $(muslSources) :
57	[ FDirName $(posixSources) musl include ]
58	[ FDirName $(posixSources) musl internal ]
59	[ FDirName $(posixSources) musl arch $(TARGET_KERNEL_ARCH_DIR) ] ;
60
61KernelMergeObject kernel_lib_posix.o :
62	kernel_errno.cpp
63	kernel_vsprintf.cpp
64	stack_protector.cpp
65
66	# main
67	dirent.cpp
68	fcntl.cpp
69	poll.cpp
70	utime.c
71	# locale
72	ctype_loc.cpp
73	ctype_l.cpp
74	ctype.cpp
75	localeconv.cpp
76	LocaleData.cpp
77	# stdlib
78	abs.c
79	atoi.c
80	bsearch.c
81	merge.c
82	qsort.c
83	random.c
84	strtod.c
85	strtol.c
86	strtoll.c
87	strtoul.c
88	strtoull.c
89	# sys
90	chmod.c
91	stat.c
92	mkdir.c
93	select.cpp
94	gettimeofday.c
95	uio.c
96	# time
97	time.c
98	# unistd
99	access.c
100	chown.c
101	close.c
102	#conf.c
103	directory.c
104	dup.c
105	ioctl.c
106	link.c
107	lseek.c
108	mount.c
109	read.c
110	sync.c
111	truncate.c
112	usergroup.cpp
113	write.c
114	# string
115	memchr.c
116	memcmp.c
117	memmem.c
118	memmove.c
119	strcasecmp.c
120	strcasestr.c
121	strcat.c
122	strchr.c
123	strcmp.c
124	strcpy.c
125	strcspn.c
126	strdup.cpp
127	strerror.c
128	strlcat.c
129	strlcpy.c
130	strlen.cpp
131	strncat.c
132	strncmp.c
133	strncpy.cpp
134	strndup.cpp
135	strnlen.cpp
136	strpbrk.c
137	strrchr.c
138	strspn.c
139	strstr.c
140	strtok.c
141	strupr.c
142	stpcpy.c
143
144	$(muslSources)
145	: $(TARGET_KERNEL_PIC_CCFLAGS)
146;
147
148SEARCH on [ FGristFiles $(muslSources) ] += [ FDirName $(posixSources) musl misc ] ;
149SEARCH on [ FGristFiles $(muslSources) ] += [ FDirName $(posixSources) musl prng ] ;
150
151# misc
152
153SEARCH_SOURCE =
154	[ FDirName $(HAIKU_TOP) src kits support ]
155	[ FDirName $(HAIKU_TOP) src kits shared ]
156	;
157
158KernelMergeObject kernel_misc.o :
159	DataIO.cpp
160	Referenceable.cpp
161	WeakReferenceable.cpp
162
163	: $(TARGET_KERNEL_PIC_CCFLAGS)
164;
165
166HaikuSubInclude arch $(TARGET_ARCH) ;
167HaikuSubInclude zlib ;
168if [ FIsBuildFeatureEnabled zstd ] {
169	HaikuSubInclude zstd ;
170}
171