xref: /haiku/src/build/libpackage/Jamfile (revision 16c83730262f1e4f0fc69d80744bb36dcfbbe3af)
1SubDir HAIKU_TOP src build libpackage ;
2
3UsePrivateBuildHeaders kernel package shared storage ;
4
5SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package ] ;
6SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package hpkg ] ;
7SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package hpkg v1 ] ;
8SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package manager ] ;
9SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package solver ] ;
10
11USES_BE_API on libpackage_build.so = true ;
12LINKFLAGS on libpackage_build.so += $(HOST_PTHREAD_LINKFLAGS) ;
13
14
15{
16	# The package writer needs to know where the license files are located.
17	local dataDir = [ FDirName $(HAIKU_TOP) data system data ] ;
18	# The directory path we compile in must be absolute. If it isn't prepend
19	# pwd.
20	local defines ;
21	if ! [ Match "(^/.*)" : $(dataDir) ] {
22		dataDir = `pwd`/$(dataDir) ;
23	}
24	local defines = [ FDefines
25		\"HAIKU_BUILD_SYSTEM_DATA_DIRECTORY="\\\"$(dataDir)\\\""\"
26	] ;
27	ObjectC++Flags PackageWriterImpl.cpp : $(defines) ;
28}
29
30
31HPKG_SOURCES =
32	AttributeDataReader.cpp
33	BlockBufferPool.cpp
34	BlockBufferPoolImpl.cpp
35	BlockBufferPoolNoLock.cpp
36	BufferPool.cpp
37	PoolBuffer.cpp
38	DataOutput.cpp
39	DataReader.cpp
40	DataWriters.cpp
41	ErrorOutput.cpp
42	FDDataReader.cpp
43	GlobalWritableFileInfo.cpp
44	HPKGDefs.cpp
45	PackageContentHandler.cpp
46	PackageData.cpp
47	PackageDataReader.cpp
48	PackageEntry.cpp
49	PackageEntryAttribute.cpp
50	PackageFileHeapAccessorBase.cpp
51	PackageFileHeapReader.cpp
52	PackageFileHeapWriter.cpp
53	PackageReader.cpp
54	PackageReaderImpl.cpp
55	PackageWriter.cpp
56	PackageWriterImpl.cpp
57	ReaderImplBase.cpp
58	RepositoryContentHandler.cpp
59	RepositoryReader.cpp
60	RepositoryReaderImpl.cpp
61	RepositoryWriter.cpp
62	RepositoryWriterImpl.cpp
63	Strings.cpp
64	UserSettingsFileInfo.cpp
65	WriterImplBase.cpp
66
67	# V1 support
68	HPKGDefsV1.cpp
69	PackageContentHandlerV1.cpp
70	PackageDataReaderV1.cpp
71	PackageDataV1.cpp
72	PackageEntryAttributeV1.cpp
73	PackageEntryV1.cpp
74	PackageInfoContentHandlerV1.cpp
75	PackageReaderImplV1.cpp
76	PackageReaderV1.cpp
77	ReaderImplBaseV1.cpp
78
79	# compression
80	ZlibCompressionBase.cpp
81	ZlibCompressor.cpp
82	ZlibDecompressor.cpp
83;
84
85# TODO: remove this hack once gcc2 has -iquote implemented
86if $(HOST_PLATFORM) = haiku_host &&  $(HOST_GCC_VERSION[1]) < 3 {
87	local locations = common/non-packaged common system ;
88	SourceHdrs FetchFileJob.cpp : /boot/$(locations)/develop/headers/curl ;
89}
90
91# locate the library
92MakeLocate libpackage_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ;
93
94BuildPlatformSharedLibrary libpackage_build.so
95	:
96	ActivateRepositoryCacheJob.cpp
97	ActivateRepositoryConfigJob.cpp
98	ActivationTransaction.cpp
99	AddRepositoryRequest.cpp
100	Attributes.cpp
101	ChecksumAccessors.cpp
102	Context.cpp
103	DownloadFileRequest.cpp
104	DropRepositoryRequest.cpp
105	FetchFileJob.cpp
106	InstallationLocationInfo.cpp
107	Job.cpp
108	JobQueue.cpp
109	PackageInfo.cpp
110	PackageInfoContentHandler.cpp
111	PackageInfoParser.cpp
112	PackageInfoSet.cpp
113	PackageResolvable.cpp
114	PackageResolvableExpression.cpp
115	PackageRoster.cpp
116	PackageVersion.cpp
117	RefreshRepositoryRequest.cpp
118	RemoveRepositoryJob.cpp
119	RepositoryCache.cpp
120	RepositoryConfig.cpp
121	RepositoryInfo.cpp
122	Request.cpp
123	TempfileManager.cpp
124	User.cpp
125	ValidateChecksumJob.cpp
126
127	$(HPKG_SOURCES)
128
129	# hpkg, but only libpackage
130	NoErrorOutput.cpp
131	StandardErrorOutput.cpp
132
133	# manager
134	Exceptions.cpp
135	RepositoryBuilder.cpp
136
137	# solver
138	Solver.cpp
139	SolverPackage.cpp
140	SolverPackageSpecifier.cpp
141	SolverPackageSpecifierList.cpp
142	SolverProblem.cpp
143	SolverProblemSolution.cpp
144	SolverRepository.cpp
145	SolverResult.cpp
146	:
147	libshared_build.a $(HOST_LIBBE) curl z $(HOST_LIBSTDC++)
148;
149
150HaikuSubInclude solver ;
151