make/project.xml

Tue, 28 Oct 2025 22:09:55 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 28 Oct 2025 22:09:55 +0100
changeset 1461
dfd79d615049
parent 1460
464f896249c1
permissions
-rw-r--r--

remove mingw support (we have MSVC support) + fix regression on macos platform

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
1456
fb4f5e37090d ucx 3.2 is not binary compatible - increase the LIBVERSION
Mike Becker <universe@uap-core.de>
parents: 1414
diff changeset
12 LIBVERSION=6.0.0
fb4f5e37090d ucx 3.2 is not binary compatible - increase the LIBVERSION
Mike Becker <universe@uap-core.de>
parents: 1414
diff changeset
13 LIBVERSION_MAJOR=6
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
1460
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
23 <dependency>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
24 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
25 MKDIR=/bin/mkdir -p
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
26 RMFILE=/bin/rm -f
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
27 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
28 COPYFILE=/bin/cp -f
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
29 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
30 SYMLINK=/bin/ln -s
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
31 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
32 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33
1460
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
34 <dependency platform="macos">
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
35 <lang>c</lang>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
36 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
37 AR=ar
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
38 ARFLAGS=r
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
39 STLIB_EXT=.a
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
40 SHLIB_EXT=.dylib
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
41 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
42 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
43
1461
dfd79d615049 remove mingw support (we have MSVC support) + fix regression on macos platform
Mike Becker <universe@uap-core.de>
parents: 1460
diff changeset
44 <dependency platform="unix" not="macos">
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
45 <lang>c</lang>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
46 <make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
47 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
48 ARFLAGS=cr
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
49 STLIB_EXT=.a
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
50 SHLIB_EXT=.so
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
51 </make>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
52 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
53
1460
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
54 <dependency toolchain="gnuc" not="macos">
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
55 <make>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
56 SHLIB_LDFLAGS += -Wl,-soname,libucx\$(SHLIB_EXT).\$(LIBVERSION_MAJOR)
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
57 </make>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
58 </dependency>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
59
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
60 <dependency toolchain="suncc">
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
61 <make>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
62 SHLIB_LDFLAGS += -h libucx\$(SHLIB_EXT).\$(LIBVERSION_MAJOR)
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
63 </make>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
64 </dependency>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
65
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
66 <dependency platform="solaris">
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
67 <ldflags>-lm</ldflags>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
68 </dependency>
464f896249c1 add support for multiple parallel versions of ucx
Mike Becker <universe@uap-core.de>
parents: 1456
diff changeset
69
988
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 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
71 <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
72 </dependency>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
73
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
74 <dependency name="doxygen">
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
75 <test>test -n "$DOXYGEN"</test>
979
bbae1ebf309b fix broken docs target after uwproj update
Mike Becker <universe@uap-core.de>
parents: 960
diff changeset
76 <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
77 </dependency>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78
960
a8a5f3dd5c3d test coverage does not really work with clang
Mike Becker <universe@uap-core.de>
parents: 842
diff changeset
79 <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
80 <cflags>\${COVERAGE_CFLAGS}</cflags>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
81 <ldflags>\${COVERAGE_LDFLAGS}</ldflags>
1064
f3b04cd60776 change coverage tool from gcov to gcovr
Mike Becker <universe@uap-core.de>
parents: 990
diff changeset
82 <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
83 </dependency>
772
4586a84c0c0b add coverage feature - relates to #342
Mike Becker <universe@uap-core.de>
parents: 766
diff changeset
84
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
85 <dependency name="asan" toolchain="gnuc">
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
86 <cflags>-fsanitize=address</cflags>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
87 <ldflags>-fsanitize=address</ldflags>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
88 </dependency>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
89
990
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
90 <dependency name="no_coverage">
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
91 <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
92 </dependency>
f708863e7ec6 automatically disable szmul builtin when testing with coverage
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
93
1413
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
94 <dependency name="memrchr">
1414
597cf869e8bc missing custom CFLAGS when testing for memrchr availability
Mike Becker <universe@uap-core.de>
parents: 1413
diff changeset
95 <test>$TOOLCHAIN_CC $CFLAGS -o /dev/null make/test_memrchr.c</test>
1413
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
96 <cflags>-DWITH_MEMRCHR</cflags>
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
97 </dependency>
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
98
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
99 <dependency name="memrchr">
1414
597cf869e8bc missing custom CFLAGS when testing for memrchr availability
Mike Becker <universe@uap-core.de>
parents: 1413
diff changeset
100 <test>$TOOLCHAIN_CC $CFLAGS -o /dev/null -D_GNU_SOURCE make/test_memrchr.c</test>
1413
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
101 <cflags>-DWITH_MEMRCHR -DMEMRCHR_NEED_GNU</cflags>
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
102 </dependency>
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
103
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
104 <target>
1140
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
105 <feature name="api-docs">
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
106 <dependencies>doxygen</dependencies>
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
107 <desc>run Doxygen during build</desc>
1140
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
108 <make>
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
109 # Documentation
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
110 WITH_API_DOCS=yes
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
111 </make>
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 1064
diff changeset
112 </feature>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
113 <feature name="coverage">
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
114 <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
115 <dependencies>coverage</dependencies>
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
116 </feature>
1320
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
117 <feature name="asan">
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
118 <desc>address sanitizer</desc>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
119 <dependencies>asan</dependencies>
f76b70a72614 add an option to enable address sanitizer
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
120 </feature>
1413
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
121 <feature name="memrchr" default="true">
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
122 <dependencies>memrchr</dependencies>
c5a225d7228c improve feature test for memrchr() making it also available on BSD
Mike Becker <universe@uap-core.de>
parents: 1320
diff changeset
123 </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
124 <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
125 <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
126 <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
127 <make>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
128 # 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
129 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
130 </make>
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 987
diff changeset
131 </feature>
987
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
132 <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
133 <dependencies>no_coverage</dependencies>
987
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
134 <desc>use custom implementation, instead</desc>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
135 <disabled>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
136 <define name="CX_NO_SZMUL_BUILTIN"/>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
137 </disabled>
53e22f112b11 add configure option for szmul
Mike Becker <universe@uap-core.de>
parents: 982
diff changeset
138 </feature>
797
e0300c2c4e95 use that recent uwproj trims indents in project.xml
Mike Becker <universe@uap-core.de>
parents: 788
diff changeset
139 </target>
753
24dc84788dee replace most of the build system with uwproj
Mike Becker <universe@uap-core.de>
parents:
diff changeset
140 </project>

mercurial