xref: /haiku/src/system/libroot/Jamfile (revision 1345706a9ff6ad0dc041339a02d4259998b0765d)
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;
40
41local librootDebugObjects =
42	posix_malloc_debug.o
43;
44
45local librootNoDebugObjects =
46	posix_malloc.o
47;
48
49DONT_LINK_AGAINST_LIBROOT on libroot.so = true ;
50DONT_LINK_AGAINST_LIBROOT on libroot_debug.so = true ;
51
52SetVersionScript libroot.so : libroot_versions ;
53SetVersionScript libroot_debug.so : libroot_versions ;
54
55SharedLibrary libroot.so
56	:
57	libroot_init.c
58	:
59	$(TARGET_GCC_LIBGCC_OBJECTS)
60	$(librootObjects:G=nogrist)
61	$(librootNoDebugObjects:G=nogrist)
62	$(TARGET_STATIC_LIBSUPC++)
63;
64
65# Use the standard libroot.so soname, so when the debug version is pre-loaded
66# it prevents the standard version to be loaded as well.
67HAIKU_SONAME on libroot_debug.so = libroot.so ;
68
69SharedLibrary libroot_debug.so
70	:
71	libroot_init.c
72	:
73	$(TARGET_GCC_LIBGCC_OBJECTS)
74	$(librootObjects:G=nogrist)
75	$(librootDebugObjects:G=nogrist)
76	$(TARGET_STATIC_LIBSUPC++)
77;
78
79
80# Copy libroot.so and update the copy's revision section. We link everything
81# against the original, but the copy will end up on the disk image (this way
82# we avoid unnecessary dependencies). The copy will be located in a subdirectory.
83if $(TARGET_PLATFORM) = haiku {
84	MakeLocate <revisioned>libroot.so
85		: [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ;
86	CopySetHaikuRevision <revisioned>libroot.so : libroot.so ;
87
88	MakeLocate <revisioned>libroot_debug.so
89		: [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ;
90	CopySetHaikuRevision <revisioned>libroot_debug.so : libroot_debug.so ;
91}
92
93
94SubInclude HAIKU_TOP src system libroot add-ons ;
95SubInclude HAIKU_TOP src system libroot os ;
96SubInclude HAIKU_TOP src system libroot posix ;
97