xref: /haiku/src/build/libpackage/Jamfile (revision 37fedaf8494b34aad811abcc49e79aa32943f880)
1SubDir HAIKU_TOP src build libpackage ;
2
3UsePrivateBuildHeaders kernel package shared storage support ;
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	BufferDataOutput.cpp
37	BufferPool.cpp
38	PoolBuffer.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	ZlibCompressor.cpp
81;
82
83# TODO: remove this hack once gcc2 has -iquote implemented
84if $(HOST_PLATFORM) = haiku_host &&  $(HOST_GCC_VERSION[1]) < 3 {
85	local locations = common/non-packaged common system ;
86	SourceHdrs FetchFileJob.cpp : /boot/$(locations)/develop/headers/curl ;
87}
88
89# locate the library
90MakeLocate libpackage_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ;
91
92BuildPlatformSharedLibrary libpackage_build.so
93	:
94	ActivateRepositoryCacheJob.cpp
95	ActivateRepositoryConfigJob.cpp
96	ActivationTransaction.cpp
97	AddRepositoryRequest.cpp
98	Attributes.cpp
99	ChecksumAccessors.cpp
100	Context.cpp
101	DownloadFileRequest.cpp
102	DropRepositoryRequest.cpp
103	FetchFileJob.cpp
104	InstallationLocationInfo.cpp
105	Job.cpp
106	JobQueue.cpp
107	PackageInfo.cpp
108	PackageInfoContentHandler.cpp
109	PackageInfoParser.cpp
110	PackageInfoSet.cpp
111	PackageResolvable.cpp
112	PackageResolvableExpression.cpp
113	PackageRoster.cpp
114	PackageVersion.cpp
115	RefreshRepositoryRequest.cpp
116	RemoveRepositoryJob.cpp
117	RepositoryCache.cpp
118	RepositoryConfig.cpp
119	RepositoryInfo.cpp
120	Request.cpp
121	TempfileManager.cpp
122	User.cpp
123	ValidateChecksumJob.cpp
124
125	$(HPKG_SOURCES)
126
127	# hpkg, but only libpackage
128	NoErrorOutput.cpp
129	StandardErrorOutput.cpp
130
131	# manager
132	Exceptions.cpp
133	RepositoryBuilder.cpp
134
135	# solver
136	Solver.cpp
137	SolverPackage.cpp
138	SolverPackageSpecifier.cpp
139	SolverPackageSpecifierList.cpp
140	SolverProblem.cpp
141	SolverProblemSolution.cpp
142	SolverRepository.cpp
143	SolverResult.cpp
144	:
145	libshared_build.a $(HOST_LIBBE) curl z $(HOST_LIBSTDC++)
146;
147
148HaikuSubInclude solver ;
149