xref: /haiku/src/system/libroot/Jamfile (revision c90684742e7361651849be4116d0e5de3a817194)
1SubDir HAIKU_TOP src system libroot ;
2
3UsePrivateHeaders libroot runtime_loader ;
4UsePrivateSystemHeaders ;
5
6UnarchiveObjects $(TARGET_GCC_LIBGCC_OBJECTS) : $(TARGET_GCC_LIBGCC) ;
7	# we need to link against libgcc.a objects and make
8	# it available to other applications as in BeOS
9
10local librootObjects =
11	os_main.o
12	os_arch_$(TARGET_ARCH).o
13
14	posix_arch_$(TARGET_ARCH).o
15	posix_crypt.o
16	posix_locale.o
17	posix_main.o
18	posix_pthread.o
19	posix_signal.o
20	posix_stdio.o
21	posix_gnu_arch_$(TARGET_ARCH).o
22	posix_gnu_ctype.o
23	posix_gnu_ext.o
24	posix_gnu_iconv.o
25	posix_gnu_libio.o
26	posix_gnu_locale.o
27	posix_gnu_misc.o
28	posix_gnu_regex.o
29	posix_gnu_stdio.o
30	posix_gnu_stdlib.o
31	posix_gnu_string.o
32	posix_gnu_wcsmbs.o
33	posix_stdlib.o
34	posix_string.o
35	posix_string_arch_$(TARGET_ARCH).o
36	posix_sys.o
37	posix_time.o
38	posix_unistd.o
39	posix_wchar.o
40;
41
42local librootDebugObjects =
43	posix_malloc_debug.o
44;
45
46local librootNoDebugObjects =
47	posix_malloc.o
48;
49
50DONT_LINK_AGAINST_LIBROOT on libroot.so = true ;
51DONT_LINK_AGAINST_LIBROOT on libroot_debug.so = true ;
52
53SetVersionScript libroot.so : libroot_versions ;
54SetVersionScript libroot_debug.so : libroot_versions ;
55
56SharedLibrary libroot.so
57	:
58	libroot_init.c
59	:
60	$(TARGET_GCC_LIBGCC_OBJECTS)
61	$(librootObjects:G=nogrist)
62	$(librootNoDebugObjects:G=nogrist)
63	$(TARGET_STATIC_LIBSUPC++)
64;
65
66# Use the standard libroot.so soname, so when the debug version is pre-loaded
67# it prevents the standard version to be loaded as well.
68HAIKU_SONAME on libroot_debug.so = libroot.so ;
69
70SharedLibrary libroot_debug.so
71	:
72	libroot_init.c
73	:
74	$(TARGET_GCC_LIBGCC_OBJECTS)
75	$(librootObjects:G=nogrist)
76	$(librootDebugObjects:G=nogrist)
77	$(TARGET_STATIC_LIBSUPC++)
78;
79
80
81# Copy libroot.so and update the copy's revision section. We link everything
82# against the original, but the copy will end up on the disk image (this way
83# we avoid unnecessary dependencies). The copy will be located in a subdirectory.
84if $(TARGET_PLATFORM) = haiku {
85	MakeLocate <revisioned>libroot.so
86		: [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ;
87	CopySetHaikuRevision <revisioned>libroot.so : libroot.so ;
88
89	MakeLocate <revisioned>libroot_debug.so
90		: [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ;
91	CopySetHaikuRevision <revisioned>libroot_debug.so : libroot_debug.so ;
92}
93
94
95SubInclude HAIKU_TOP src system libroot add-ons ;
96SubInclude HAIKU_TOP src system libroot os ;
97SubInclude HAIKU_TOP src system libroot posix ;
98