xref: /haiku/src/build/libpackage/Jamfile (revision a5a3b2d9a3d95cbae71eaf371708c73a1780ac0d)
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	BufferPool.cpp
37	PoolBuffer.cpp
38	DataReader.cpp
39	ErrorOutput.cpp
40	FDDataReader.cpp
41	GlobalWritableFileInfo.cpp
42	HPKGDefs.cpp
43	PackageContentHandler.cpp
44	PackageData.cpp
45	PackageDataReader.cpp
46	PackageEntry.cpp
47	PackageEntryAttribute.cpp
48	PackageFileHeapAccessorBase.cpp
49	PackageFileHeapReader.cpp
50	PackageFileHeapWriter.cpp
51	PackageReader.cpp
52	PackageReaderImpl.cpp
53	PackageWriter.cpp
54	PackageWriterImpl.cpp
55	ReaderImplBase.cpp
56	RepositoryContentHandler.cpp
57	RepositoryReader.cpp
58	RepositoryReaderImpl.cpp
59	RepositoryWriter.cpp
60	RepositoryWriterImpl.cpp
61	Strings.cpp
62	UserSettingsFileInfo.cpp
63	WriterImplBase.cpp
64
65	# V1 support
66	HPKGDefsV1.cpp
67	PackageContentHandlerV1.cpp
68	PackageDataReaderV1.cpp
69	PackageDataV1.cpp
70	PackageEntryAttributeV1.cpp
71	PackageEntryV1.cpp
72	PackageInfoContentHandlerV1.cpp
73	PackageReaderImplV1.cpp
74	PackageReaderV1.cpp
75	ReaderImplBaseV1.cpp
76;
77
78# TODO: remove this hack once gcc2 has -iquote implemented
79if $(HOST_PLATFORM) = haiku_host &&  $(HOST_GCC_VERSION[1]) < 3 {
80	local locations = common/non-packaged common system ;
81	SourceHdrs FetchFileJob.cpp : /boot/$(locations)/develop/headers/curl ;
82}
83
84# locate the library
85MakeLocate libpackage_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ;
86
87BuildPlatformSharedLibrary libpackage_build.so
88	:
89	ActivateRepositoryCacheJob.cpp
90	ActivateRepositoryConfigJob.cpp
91	ActivationTransaction.cpp
92	AddRepositoryRequest.cpp
93	Attributes.cpp
94	ChecksumAccessors.cpp
95	CommitTransactionResult.cpp
96	Context.cpp
97	DownloadFileRequest.cpp
98	DropRepositoryRequest.cpp
99	FetchFileJob.cpp
100	InstallationLocationInfo.cpp
101	Job.cpp
102	PackageInfo.cpp
103	PackageInfoContentHandler.cpp
104	PackageInfoParser.cpp
105	PackageInfoSet.cpp
106	PackageResolvable.cpp
107	PackageResolvableExpression.cpp
108	PackageRoster.cpp
109	PackageVersion.cpp
110	RefreshRepositoryRequest.cpp
111	RemoveRepositoryJob.cpp
112	RepositoryCache.cpp
113	RepositoryConfig.cpp
114	RepositoryInfo.cpp
115	Request.cpp
116	TempfileManager.cpp
117	User.cpp
118	ValidateChecksumJob.cpp
119
120	$(HPKG_SOURCES)
121
122	# hpkg, but only libpackage
123	NoErrorOutput.cpp
124	StandardErrorOutput.cpp
125
126	# manager
127	Exceptions.cpp
128	RepositoryBuilder.cpp
129
130	# solver
131	Solver.cpp
132	SolverPackage.cpp
133	SolverPackageSpecifier.cpp
134	SolverPackageSpecifierList.cpp
135	SolverProblem.cpp
136	SolverProblemSolution.cpp
137	SolverRepository.cpp
138	SolverResult.cpp
139	:
140	libshared_build.a $(HOST_LIBBE) curl $(HOST_LIBSTDC++)
141;
142
143HaikuSubInclude solver ;
144