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