make/Makefile.mk

Tue, 02 Jun 2026 19:48:15 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 02 Jun 2026 19:48:15 +0200
changeset 1159
9811e27e0889
parent 1158
96c202d45fbb
permissions
-rw-r--r--

add missing build dependency generation for the common objects

#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright 2023 Olaf Wintermann. 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.
#

# this makefile is invoked from the build root directory

BUILD_ROOT = ./
include config.mk

BUILD_DIRS = build/bin build/lib
BUILD_DIRS += build/application build/client build/ucx 
BUILD_DIRS += build/ui/common build/ui/$(TOOLKIT)

all: $(BUILD_DIRS) ucx ui application client
	make/$(PACKAGE_SCRIPT)

$(BUILD_DIRS):
	mkdir -p $@

ui: ucx FORCE
	cd ui; $(MAKE) all

ucx: FORCE
	cd ucx; $(MAKE) all

application: ui FORCE
	cd application; $(MAKE)

client: ui FORCE
	cd client; $(MAKE)

update-rules-generic: FORCE
	make/update-rules.sh ucx '$$(SHLIB_CFLAGS)'
	make/update-rules.sh application '$$(TK_CFLAGS)'
	make/update-rules.sh client '$$(TK_CFLAGS) $$(CLIENT_CFLAGS)'
	make/update-rules.sh ui '-I../ucx $$(SHLIB_CFLAGS) $$(TK_CFLAGS)' \
		common/ '$$(COMMON_OBJPRE)uic_'
	make/update-rules.sh ui '-I../ucx $$(SHLIB_CFLAGS) $$(TK_CFLAGS)' \
		server/ "\$$(SERVER_OBJPRE)" .o

update-rules-toolkit: FORCE
	case "$(TOOLKIT)" in \
		qt*|winui) echo "Not necessary for $(TOOLKIT)." ;; \
		cocoa) echo "Not yet supported for $(TOOLKIT)." ;; \
		gtk*|libadwaita) CFLAGS="$(CFLAGS) $(TK_CFLAGS)" make/update-rules.sh ui \
			'-I../ucx $$(SHLIB_CFLAGS) $$(TK_CFLAGS)' \
			gtk/ "\$$(GTK_OBJPRE)" .o ;; \
		motif) CFLAGS="$(CFLAGS) $(TK_CFLAGS)" make/update-rules.sh ui \
			'-I../ucx $$(SHLIB_CFLAGS) $$(TK_CFLAGS)' \
			motif/ "\$$(MOTIF_OBJPRE)" .o ;; \
	esac

FORCE:

mercurial