xref: /haiku/src/build/libsolv/Jamfile (revision 225b6382637a7346d5378ee45a6581b4e2616055)
1SubDir HAIKU_TOP src build libsolv ;
2
3local libsolvSourceBaseDirectory
4	= [ BuildFeatureAttribute libsolv : sources : path ] ;
5local libsolvSourceDirectory = [ FDirName $(libsolvSourceBaseDirectory) src ] ;
6local libsolvextSourceDirectory
7	= [ FDirName $(libsolvSourceBaseDirectory) ext ] ;
8
9local libsolvMajor = 0 ;
10local libsolvMinor = 3 ;
11local libsolvPatch = 0 ;
12local libsolvVersion = $(libsolvMajor).$(libsolvMinor).$(libsolvPatch) ;
13
14DEFINES =
15	LIBSOLV_INTERNAL
16	HAIKU
17	ENABLE_HAIKU
18	VERSION=\\\"$(libsolvVersion)\\\"
19	;
20
21# One of the following must be defined:
22# * HAVE_FUNOPEN / HAVE_FOPENCOOKIE
23#
24# One of the following can be defined:
25# * HAVE_QSORT_R / HAVE___QSORT ?
26switch $(HOST_PLATFORM) {
27	case linux :
28		DEFINES += HAVE_STRCHRNUL HAVE_QSORT_R HAVE_FOPENCOOKIE ;
29	case haiku_host :
30		DEFINES += HAVE_FOPENCOOKIE ;
31	case freebsd :
32		DEFINES += HAVE_FUNOPEN ;
33	case * :
34		Exit $(SUBDIR)/Jamfile: "Please add a case for your platform"
35			"($(HOST_PLATFORM))!" ;
36}
37
38SubDirCcFlags -Wno-sign-compare -Wno-missing-prototypes ;
39
40
41# libsolv
42
43UseHeaders $(libsolvSourceDirectory) ;
44
45local libsolvSources = [ FGristFiles
46	bitmap.c poolarch.c poolvendor.c poolid.c strpool.c dirpool.c
47	solver.c solverdebug.c repo_solv.c repo_write.c evr.c pool.c
48	queue.c repo.c repodata.c repopage.c util.c policy.c solvable.c
49	transaction.c rules.c problems.c
50	chksum.c md5.c sha1.c sha2.c solvversion.c selection.c
51	] ;
52
53LOCATE on $(libsolvSources) = $(libsolvSourceDirectory) ;
54Depends $(libsolvSources) : [ BuildFeatureAttribute libsolv : sources ] ;
55
56MakeLocate libsolv_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ;
57
58BuildPlatformSharedLibrary libsolv_build.so
59	:
60	$(libsolvSources)
61	;
62
63# libsolvext
64
65UseHeaders $(libsolvextSourceDirectory) ;
66
67local libsolvextSources = [ FGristFiles
68	solv_xfopen.c testcase.c
69	repo_haiku.cpp
70	] ;
71
72LOCATE on $(libsolvextSources) = $(libsolvextSourceDirectory) ;
73Depends $(libsolvextSources) : [ BuildFeatureAttribute libsolv : sources ] ;
74
75USES_BE_API on libsolvext_build.so = true ;
76
77MakeLocate libsolvext_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ;
78
79BuildPlatformSharedLibrary libsolvext_build.so
80	:
81	$(libsolvextSources)
82	:
83	libsolv_build.so
84	libpackage_build.so
85	z
86	;
87
88
89# generate solvversion.h
90
91actions GenerateLibsolvVersionHeader
92{
93	sed -e s,@VERSION@,$(LIBSOLV_VERSION),g \
94		-e s,@LIBSOLV_MAJOR@,$(LIBSOLV_MAJOR),g \
95		-e s,@LIBSOLV_MINOR@,$(LIBSOLV_MINOR),g \
96		-e s,@LIBSOLV_PATCH@,$(LIBSOLV_PATCH),g \
97		$(2) > $(1)
98}
99
100local versionHeaderIn = solvversion.h.in ;
101LOCATE on $(versionHeaderIn) = $(libsolvSourceDirectory) ;
102Depends $(versionHeaderIn) : [ BuildFeatureAttribute libsolv : sources ] ;
103
104local versionHeader = [ FGristFiles solvversion.h ] ;
105MakeLocate $(versionHeader) : $(LOCATE_SOURCE) ;
106Depends $(versionHeader) : $(versionHeaderIn) ;
107LIBSOLV_VERSION on $(versionHeader) = $(libsolvVersion) ;
108LIBSOLV_MAJOR on $(versionHeader) = $(libsolvMajor) ;
109LIBSOLV_MINOR on $(versionHeader) = $(libsolvMinor) ;
110LIBSOLV_PATCH on $(versionHeader) = $(libsolvPatch) ;
111GenerateLibsolvVersionHeader $(versionHeader) : $(versionHeaderIn) ;
112
113Includes $(libsolvSources) $(libsolvextSources) : $(versionHeader) ;
114