make/makefile.mk

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 1213
19462011b6d5
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

791
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 # Copyright 2023 Mike Becker. All rights reserved.
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 #
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 # Redistribution and use in source and binary forms, with or without
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 # modification, are permitted provided that the following conditions are met:
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 #
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 # 1. Redistributions of source code must retain the above copyright
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 # notice, this list of conditions and the following disclaimer.
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 #
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 # 2. Redistributions in binary form must reproduce the above copyright
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 # notice, this list of conditions and the following disclaimer in the
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 # documentation and/or other materials provided with the distribution.
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 #
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 include config.mk
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 dist: FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 $(MKDIR) $(dist_dir)/libucx
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28 $(COPYALL) CHANGELOG configure COPYING Doxyfile Makefile README \
1199
d17a7350f4a7 fix that msvc solution is not included in dist package
Mike Becker <universe@uap-core.de>
parents: 1197
diff changeset
29 uaplogo.png make msvc src tests $(dist_dir)/libucx/
1197
6dadac4864dc revert naming convention for the dist package
Mike Becker <universe@uap-core.de>
parents: 1195
diff changeset
30 @cd $(dist_dir) && tar -czf ucx-$(VERSION).tar.gz -Hustar libucx
6dadac4864dc revert naming convention for the dist package
Mike Becker <universe@uap-core.de>
parents: 1195
diff changeset
31 @echo "[ Dist created: $(dist_dir)/ucx-$(VERSION).tar.gz ]"
791
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33 clean: FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34 $(RMDIR) $(build_dir)
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
35
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 dist-clean: FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 $(RMDIR) $(dist_dir)
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 $(RMDIR) $(build_dir)
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
40 compile: static shared
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
41
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42 $(build_dir):
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
43 $(MKDIR) $@
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
44
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
45 shared: $(build_dir) FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
46 @cd src && $(MAKE) OBJ_EXT=.shared.o \
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47 CFLAGS="$(CFLAGS) $(SHLIB_CFLAGS)" \
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
48 LDFLAGS="$(LDFLAGS) $(SHLIB_LDFLAGS)" \
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
49 shared
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
50
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
51 static: $(build_dir) FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52 @cd src && $(MAKE) static
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
53
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
54 check: test-compile FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
55 $(RMFILE) $(build_dir)/*.gcda
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
56 $(RMFILE) $(build_dir)/tests/*.gcda
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
57 $(build_dir)/tests/ucxtest
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
58
1327
ed75dc1db503 make test-compile depend on both static and shared
Mike Becker <universe@uap-core.de>
parents: 1213
diff changeset
59 test-compile: compile FORCE
791
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60 cd tests && $(MAKE)
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
61
988
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
62 check-cxx: CXX-AVAILABLE clean test-compile-cxx FORCE
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
63 $(build_dir)/tests/ucxtest
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
64
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
65 test-compile-cxx: static FORCE
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
66 cd tests && $(MAKE) CC=$(CXX) CFLAGS="$(CFLAGS) $(CXXFLAGS)"
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
67
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
68 CXX-AVAILABLE:
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
69 test -n "$(WITH_CXX_TEST)"
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
70
1213
19462011b6d5 fix build dir not created when invoking docs target directly
Mike Becker <universe@uap-core.de>
parents: 1199
diff changeset
71 docs: $(build_dir) FORCE
1140
88a9ee79c102 start overhauling the entire web documentation
Mike Becker <universe@uap-core.de>
parents: 988
diff changeset
72 @(test "$(WITH_API_DOCS)" = "yes" && cd $(root_dir); $(DOXYGEN) ) \
791
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
73 || echo "[ Generation of API Docs disabled - skipped ]"
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
74
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
75 update-rules: FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76 make/update-rules.sh src
988
15b3ca7ee33f make ucx C++ compatible again (and add tests for it) - fixes #486
Mike Becker <universe@uap-core.de>
parents: 791
diff changeset
77 make/update-rules.sh tests '$$(TEST_DIR)' '-I../src'
791
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
79 FORCE:

mercurial