make/makefile.mk

Sun, 22 Dec 2024 22:10:04 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 22 Dec 2024 22:10:04 +0100
changeset 1047
40aad3f0bc9e
parent 988
15b3ca7ee33f
permissions
-rw-r--r--

don't trust that size_t always has word width

it should be the case on all platforms supported by UCX, but it's not strictly defined in POSIX that it must be the case

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 \
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 uaplogo.png docs make src tests $(dist_dir)/libucx/
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30 @cd $(dist_dir) && tar -czf libucx-src-$(VERSION).tar.gz -Hustar libucx
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31 @echo "[ Dist created: $(dist_dir)/libucx-src-$(VERSION).tar.gz ]"
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
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59 test-compile: static FORCE
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
791
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
71 docs: FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
72 @(test "$(WITH_DOCS_API)" = "yes" && cd docs && $(MAKE) all-api) \
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 @(test "$(WITH_DOCS_HTML)" = "yes" && cd docs && $(MAKE) all-html) \
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
75 || echo "[ Generation of HTML Docs disabled - skipped ]"
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77 update-rules: FORCE
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78 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
79 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
80
945ee9bf2dd1 generate (release) config.mk if none exists - fixes #350
Mike Becker <universe@uap-core.de>
parents:
diff changeset
81 FORCE:

mercurial