UNIXworkcode

1 <?xml version="1.0" encoding="UTF-8"?> 2 <project version="0.4" xmlns="http://unixwork.de/uwproj"> 3 <config> 4 <prefix/> 5 <exec-prefix/> 6 <libdir/> 7 <includedir/> 8 <var name="VERSION">4.0.0</var> 9 <var name="LIBVERSION">7.0.0</var> 10 <var name="LIBVERSION_MAJOR">7</var> 11 <var name="root_dir" exec="true">pwd</var> 12 <var name="build_dir">${root_dir}/build</var> 13 <var name="docs_dir">${root_dir}/build/docs</var> 14 <var name="dist_dir">${root_dir}/dist</var> 15 <var name="MKDIR">/bin/mkdir -p</var> 16 <var name="RMFILE">/bin/rm -f</var> 17 <var name="RMDIR">/bin/rm -f -R</var> 18 <var name="COPYFILE">/bin/cp -f</var> 19 <var name="COPYALL">/bin/cp -f -R</var> 20 <var name="SYMLINK">/bin/ln -s</var> 21 </config> 22 <config platform="freebsd"> 23 <var name="pkgconfigdir" option-help="location of the *.pc files"> 24 ${exec_prefix}/libdata/pkgconfig 25 </var> 26 </config> 27 <config not="freebsd"> 28 <var name="pkgconfigdir" option-help="location of the *.pc files"> 29 ${libdir}/pkgconfig 30 </var> 31 </config> 32 <config> 33 <var name="DOXYGEN" exec="true" option-help="path of the Doxygen executable"> 34 command -v doxygen || echo '/bin/false' 35 </var> 36 </config> 37 38 <dependency platform="macos"> 39 <lang>c</lang> 40 <make> 41 AR=ar 42 ARFLAGS=r 43 STLIB_EXT=.a 44 SHLIB_EXT=.dylib 45 46 SHLIB_LDFLAGS=-dynamiclib -current_version \$(LIBVERSION) -compatibility_version \$(LIBVERSION) 47 INSTALL_LIB=\$(root_dir)/make/install-lib-macos.sh 48 </make> 49 </dependency> 50 51 <dependency platform="unix" not="macos"> 52 <lang>c</lang> 53 <make> 54 AR=ar 55 ARFLAGS=cr 56 STLIB_EXT=.a 57 SHLIB_EXT=.so 58 INSTALL_LIB=\$(root_dir)/make/install-lib.sh 59 </make> 60 </dependency> 61 62 <dependency toolchain="gnuc" not="macos"> 63 <make> 64 SHLIB_LDFLAGS += -Wl,-soname,libucx\$(SHLIB_EXT).\$(LIBVERSION_MAJOR) 65 </make> 66 </dependency> 67 68 <dependency toolchain="suncc"> 69 <make> 70 SHLIB_LDFLAGS += -h libucx\$(SHLIB_EXT).\$(LIBVERSION_MAJOR) 71 </make> 72 </dependency> 73 74 <dependency platform="solaris"> 75 <ldflags>-lm</ldflags> 76 </dependency> 77 78 <dependency name="cxx"> 79 <lang>cpp</lang> 80 </dependency> 81 82 <dependency name="doxygen"> 83 <test>test -n "$DOXYGEN"</test> 84 </dependency> 85 86 <dependency name="coverage" toolchain="gcc"> 87 <cflags>\${COVERAGE_CFLAGS}</cflags> 88 <ldflags>\${COVERAGE_LDFLAGS}</ldflags> 89 <test>command -v gcovr</test> 90 </dependency> 91 92 <dependency name="asan" toolchain="gnuc"> 93 <cflags>-fsanitize=address</cflags> 94 <ldflags>-fsanitize=address</ldflags> 95 </dependency> 96 97 <dependency name="no_coverage"> 98 <test>test -z "$FEATURE_COVERAGE"</test> 99 </dependency> 100 101 <dependency name="memrchr"> 102 <test>$TOOLCHAIN_CC $CFLAGS -o /dev/null make/test_memrchr.c</test> 103 <cflags>-DWITH_MEMRCHR</cflags> 104 </dependency> 105 106 <dependency name="memrchr"> 107 <test>$TOOLCHAIN_CC $CFLAGS -o /dev/null -D_GNU_SOURCE make/test_memrchr.c</test> 108 <cflags>-DWITH_MEMRCHR -DMEMRCHR_NEED_GNU</cflags> 109 </dependency> 110 111 <target> 112 <feature name="api-docs"> 113 <dependencies>doxygen</dependencies> 114 <desc>run Doxygen during build</desc> 115 <make> 116 # Documentation 117 WITH_API_DOCS=yes 118 </make> 119 </feature> 120 <feature name="coverage"> 121 <desc>test coverage with gcov</desc> 122 <dependencies>coverage</dependencies> 123 </feature> 124 <feature name="asan"> 125 <desc>address sanitizer</desc> 126 <dependencies>asan</dependencies> 127 </feature> 128 <feature name="memrchr" default="true"> 129 <dependencies>memrchr</dependencies> 130 </feature> 131 <feature name="cxx-tests" default="true"> 132 <dependencies>cxx</dependencies> 133 <desc>the check-cxx makefile target</desc> 134 <make> 135 # Enable the check-cxx target 136 WITH_CXX_TEST=yes 137 </make> 138 </feature> 139 <feature name="szmul-builtin" default="true"> 140 <dependencies>no_coverage</dependencies> 141 <desc>use custom implementation, instead</desc> 142 <disabled> 143 <define name="CX_NO_SZMUL_BUILTIN"/> 144 </disabled> 145 </feature> 146 </target> 147 </project> 148