xref: /haiku/src/build/libpackage/Jamfile (revision d2d1af830b3f144937ea5e4c3f0e5b74c4c3d737)
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	CommitTransactionResult.cpp
103	Context.cpp
104	DownloadFileRequest.cpp
105	DropRepositoryRequest.cpp
106	FetchFileJob.cpp
107	InstallationLocationInfo.cpp
108	Job.cpp
109	JobQueue.cpp
110	PackageInfo.cpp
111	PackageInfoContentHandler.cpp
112	PackageInfoParser.cpp
113	PackageInfoSet.cpp
114	PackageResolvable.cpp
115	PackageResolvableExpression.cpp
116	PackageRoster.cpp
117	PackageVersion.cpp
118	RefreshRepositoryRequest.cpp
119	RemoveRepositoryJob.cpp
120	RepositoryCache.cpp
121	RepositoryConfig.cpp
122	RepositoryInfo.cpp
123	Request.cpp
124	TempfileManager.cpp
125	User.cpp
126	ValidateChecksumJob.cpp
127
128	$(HPKG_SOURCES)
129
130	# hpkg, but only libpackage
131	NoErrorOutput.cpp
132	StandardErrorOutput.cpp
133
134	# manager
135	Exceptions.cpp
136	RepositoryBuilder.cpp
137
138	# solver
139	Solver.cpp
140	SolverPackage.cpp
141	SolverPackageSpecifier.cpp
142	SolverPackageSpecifierList.cpp
143	SolverProblem.cpp
144	SolverProblemSolution.cpp
145	SolverRepository.cpp
146	SolverResult.cpp
147	:
148	libshared_build.a $(HOST_LIBBE) curl z $(HOST_LIBSTDC++)
149;
150
151HaikuSubInclude solver ;
152