make/project.xml

Fri, 23 May 2025 12:44:24 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 23 May 2025 12:44:24 +0200
changeset 1327
ed75dc1db503
parent 1320
f76b70a72614
permissions
-rw-r--r--

make test-compile depend on both static and shared

the shared lib is not needed for the tests,
but when run with coverage, gcov will be confused
when outdated line information is available from
a previous shared build

753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 <?xml version="1.0" encoding="UTF-8"?>
987
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
2 <project version="0.3" xmlns="http://unixwork.de/uwproj">
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
3 <config>
1064
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
4 <var name="root_dir" exec="true">pwd</var>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
5 <var name="DOXYGEN" exec="true">command -v doxygen</var>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
6 </config>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
8 <dependency>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
9 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
10 # library version
1280
60123b3db06e start development of UCX 3.2
Mike Becker <universe@uap-core.de>
parents: 1140
diff changeset
11 VERSION=3.2.0
60123b3db06e start development of UCX 3.2
Mike Becker <universe@uap-core.de>
parents: 1140
diff changeset
12 LIBVERSION=5.1.0
825
3f324ea53152 be honest at least in the lib version
Mike Becker <universe@uap-core.de>
parents: 815
diff changeset
13 LIBVERSION_MAJOR=5
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
15 # build directory structure !! do not change or override !!
1064
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
16 root_dir=${root_dir}
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
17 build_dir=${root_dir}/build
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
18 docs_dir=${root_dir}/build/docs
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
19 dist_dir=${root_dir}/dist
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
20 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
21 </dependency>
842
b48cbfa109d4 add -lm to ldflags on Solaris
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 825
diff changeset
22
b48cbfa109d4 add -lm to ldflags on Solaris
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 825
diff changeset
23 <dependency platform="solaris">
b48cbfa109d4 add -lm to ldflags on Solaris
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 825
diff changeset
24 <ldflags>-lm</ldflags>
b48cbfa109d4 add -lm to ldflags on Solaris
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 825
diff changeset
25 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
27 <dependency name="file-tools">
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
28 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
29 MKDIR=/bin/mkdir -p
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
30 RMFILE=/bin/rm -f
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
31 RMDIR=/bin/rm -f -R
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
32 COPYFILE=/bin/cp -f
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
33 COPYALL=/bin/cp -f -R
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
34 SYMLINK=/bin/ln -s
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
35 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
36 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
38 <dependency name="c" platform="mingw">
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
39 <lang>c</lang>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
40 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
41 AR=ar
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
42 ARFLAGS=r
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
43 STLIB_EXT=.lib
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
44 SHLIB_EXT=.dll
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
45 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
46 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
48 <dependency name="c" platform="macos">
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
49 <lang>c</lang>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
50 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
51 AR=ar
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
52 ARFLAGS=r
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
53 STLIB_EXT=.a
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
54 SHLIB_EXT=.dylib
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
55 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
56 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
57
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
58 <dependency name="c" platform="unix">
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
59 <lang>c</lang>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
60 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
61 AR=ar
982
7a88b8a05ae1 add -c flag to ARFLAGS to suppress diagnostic message on stderr
Mike Becker <universe@uap-core.de>
parents: 979
diff changeset
62 ARFLAGS=cr
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
63 STLIB_EXT=.a
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
64 SHLIB_EXT=.so
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
65 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
66 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
67
988
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
68 <dependency name="cxx">
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
69 <lang>cpp</lang>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
70 </dependency>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
71
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
72 <dependency name="doxygen">
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
73 <test>test -n "$DOXYGEN"</test>
979
bbae1ebf309b fix broken docs target after uwproj update
Mike Becker <universe@uap-core.de>
parents: 960
diff changeset
74 <make>DOXYGEN=$DOXYGEN</make>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
75 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76
960
a8a5f3dd5c3d test coverage does not really work with clang
Mike Becker <universe@uap-core.de>
parents: 842
diff changeset
77 <dependency name="coverage" toolchain="gcc">
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
78 <cflags>\${COVERAGE_CFLAGS}</cflags>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
79 <ldflags>\${COVERAGE_LDFLAGS}</ldflags>
1064
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
80 <test>command -v gcovr</test>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
81 </dependency>
772
4586a84c0c0b add coverage feature - relates to #342
Mike Becker <universe@uap-core.de>
parents: 766
diff changeset
82
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
83 <dependency name="asan" toolchain="gnuc">
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
84 <cflags>-fsanitize=address</cflags>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
85 <ldflags>-fsanitize=address</ldflags>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
86 </dependency>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
87
990
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
88 <dependency name="no_coverage">
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
89 <test>test -z "$FEATURE_COVERAGE"</test>
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
90 </dependency>
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
91
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
92 <target>
1140
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
93 <feature name="api-docs">
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
94 <dependencies>doxygen</dependencies>
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
95 <desc>run Doxygen during build</desc>
1140
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
96 <make>
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
97 # Documentation
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
98 WITH_API_DOCS=yes
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
99 </make>
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
100 </feature>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
101 <feature name="coverage">
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
102 <desc>test coverage with gcov</desc>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
103 <dependencies>coverage</dependencies>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
104 </feature>
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
105 <feature name="asan">
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
106 <desc>address sanitizer</desc>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
107 <dependencies>asan</dependencies>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
108 </feature>
988
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
109 <feature name="cxx-tests" default="true">
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
110 <dependencies>cxx</dependencies>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
111 <desc>the check-cxx makefile target</desc>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
112 <make>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
113 # Enable the check-cxx target
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
114 WITH_CXX_TEST=yes
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
115 </make>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
116 </feature>
987
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
117 <feature name="szmul-builtin" default="true">
990
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
118 <dependencies>no_coverage</dependencies>
987
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
119 <desc>use custom implementation, instead</desc>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
120 <disabled>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
121 <define name="CX_NO_SZMUL_BUILTIN"/>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
122 </disabled>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
123 </feature>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
124 <dependencies>c,file-tools</dependencies>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
125 </target>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
126 </project>

mercurial