generate (release) config.mk if none exists - fixes #350

Tue, 02 Jan 2024 23:31:00 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 02 Jan 2024 23:31:00 +0100
changeset 791
945ee9bf2dd1
parent 790
42877968260c
child 792
3ca984931e1d

generate (release) config.mk if none exists - fixes #350

Makefile file | annotate | diff | comparison | revisions
make/makefile.mk file | annotate | diff | comparison | revisions
--- a/Makefile	Mon Jan 01 16:43:18 2024 +0100
+++ b/Makefile	Tue Jan 02 23:31:00 2024 +0100
@@ -21,61 +21,40 @@
 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-include config.mk
-
 all: compile test-compile FORCE
 
-install:
+install: config.mk FORCE
 	@cd src && $(MAKE) install
 
-dist: FORCE
-	$(MKDIR) $(dist_dir)/libucx
-	$(COPYALL) CHANGELOG configure COPYING Doxyfile Makefile README \
-		uaplogo.png docs make src tests $(dist_dir)/libucx/
-	@cd $(dist_dir) && tar -czf libucx-src-$(VERSION).tar.gz -Hustar libucx
-	@echo "[ Dist created: $(dist_dir)/libucx-src-$(VERSION).tar.gz ]"
+dist: config.mk FORCE
+	$(MAKE) -f make/makefile.mk dist
 
-clean:
-	$(RMDIR) $(build_dir)
+clean: config.mk FORCE
+	$(MAKE) -f make/makefile.mk clean
 
-dist-clean:
-	$(RMDIR) $(dist_dir)
-	$(RMDIR) $(build_dir)
-
-compile: $(build_dir) static shared
+dist-clean: config.mk FORCE
+	$(MAKE) -f make/makefile.mk dist-clean
 
-$(build_dir):
-	$(MKDIR) $@
+compile: config.mk FORCE
+	$(MAKE) -f make/makefile.mk compile
 
-shared: FORCE
-	@cd src && $(MAKE) OBJ_EXT=.shared.o \
-		CFLAGS="$(CFLAGS) $(SHLIB_CFLAGS)" \
-		LDFLAGS="$(LDFLAGS) $(SHLIB_LDFLAGS)" \
-		shared
+test-compile: config.mk FORCE
+	$(MAKE) -f make/makefile.mk test-compile
 
-static: FORCE
-	@cd src && $(MAKE) static
-
-check: all
-	$(RMFILE) $(build_dir)/*.gcda
-	$(RMFILE) $(build_dir)/tests/*.gcda
-	$(build_dir)/tests/ucxtest
+check: config.mk FORCE
+	$(MAKE) -f make/makefile.mk check
 
 check-coverage: FORCE
 	$(MAKE) -s check
 	@cd src && $(MAKE) check-coverage
 
-test-compile:
-	cd tests && $(MAKE)
+docs: config.mk FORCE
+	$(MAKE) -f make/makefile.mk docs
 
-docs: FORCE
-	@(test "$(WITH_DOCS_API)" = "yes" && cd docs && $(MAKE) all-api) \
-		|| echo "[ Generation of API Docs disabled - skipped ]"
-	@(test "$(WITH_DOCS_HTML)" = "yes" && cd docs && $(MAKE) all-html) \
-		|| echo "[ Generation of HTML Docs disabled - skipped ]"
+update-rules: config.mk FORCE
+	$(MAKE) -f make/makefile.mk update-rules
 
-update-rules:
-	make/update-rules.sh src
-	CFLAGS='$(CFLAGS) -I../src' make/update-rules.sh tests '$$(TEST_DIR)'
+config.mk:
+	./configure --release
 
 FORCE:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/makefile.mk	Tue Jan 02 23:31:00 2024 +0100
@@ -0,0 +1,72 @@
+# Copyright 2023 Mike Becker. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+include config.mk
+
+dist: FORCE
+	$(MKDIR) $(dist_dir)/libucx
+	$(COPYALL) CHANGELOG configure COPYING Doxyfile Makefile README \
+		uaplogo.png docs make src tests $(dist_dir)/libucx/
+	@cd $(dist_dir) && tar -czf libucx-src-$(VERSION).tar.gz -Hustar libucx
+	@echo "[ Dist created: $(dist_dir)/libucx-src-$(VERSION).tar.gz ]"
+
+clean: FORCE
+	$(RMDIR) $(build_dir)
+
+dist-clean: FORCE
+	$(RMDIR) $(dist_dir)
+	$(RMDIR) $(build_dir)
+
+compile: static shared
+
+$(build_dir):
+	$(MKDIR) $@
+
+shared: $(build_dir) FORCE
+	@cd src && $(MAKE) OBJ_EXT=.shared.o \
+		CFLAGS="$(CFLAGS) $(SHLIB_CFLAGS)" \
+		LDFLAGS="$(LDFLAGS) $(SHLIB_LDFLAGS)" \
+		shared
+
+static: $(build_dir) FORCE
+	@cd src && $(MAKE) static
+
+check: test-compile FORCE
+	$(RMFILE) $(build_dir)/*.gcda
+	$(RMFILE) $(build_dir)/tests/*.gcda
+	$(build_dir)/tests/ucxtest
+
+test-compile: static FORCE
+	cd tests && $(MAKE)
+
+docs: FORCE
+	@(test "$(WITH_DOCS_API)" = "yes" && cd docs && $(MAKE) all-api) \
+		|| echo "[ Generation of API Docs disabled - skipped ]"
+	@(test "$(WITH_DOCS_HTML)" = "yes" && cd docs && $(MAKE) all-html) \
+		|| echo "[ Generation of HTML Docs disabled - skipped ]"
+
+update-rules: FORCE
+	make/update-rules.sh src
+	CFLAGS='$(CFLAGS) -I../src' make/update-rules.sh tests '$$(TEST_DIR)'
+
+FORCE:

mercurial