make/makefile.mk

Mon, 18 Nov 2024 22:05:42 +0100

author
Mike Becker <universe@uap-core.de>
date
Mon, 18 Nov 2024 22:05:42 +0100
changeset 988
15b3ca7ee33f
parent 791
945ee9bf2dd1
permissions
-rw-r--r--

make ucx C++ compatible again (and add tests for it) - fixes #486

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