mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
Group variables related with pgit.sh (PGIT_SH and PGIT_SH_CLONE) closer together. Define CLONE_FROM_USER early on. Signed-off-by: Jan Lindemann <jan@janware.com>
52 lines
1.6 KiB
Makefile
52 lines
1.6 KiB
Makefile
#
|
|
# SPDX-License-Identifier: LGPL-2.0-only
|
|
#
|
|
# Makefile for managing multiple software repositories in one tree
|
|
#
|
|
# (C) Copyright 2001-2025, Jan Lindemann <jan@janware.com>
|
|
#
|
|
# This is the top-level Makefile for a software build tree organized by
|
|
# jw-build. It is provided under the terms of the GNU Lesser Public License,
|
|
# Version 2.
|
|
#
|
|
# Current documentation on how this Makefile is meant to be used can be found
|
|
# under https://janware.com/wiki/pub/en/sw/build/. Running "make help" might
|
|
# take you there semi-automatically.
|
|
#
|
|
|
|
PROJECTS_MAKEFILE_NAME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
|
|
|
|
-include local.mk
|
|
|
|
ifeq ($(origin PROJECTS_DIR_REMOTE_BASE),undefined)
|
|
ifneq ($(JANWARE_USER),)
|
|
CLONE_FROM_USER ?= $(JANWARE_USER)
|
|
PROJECTS_DIR_REMOTE_BASE ?= ssh://$(JANWARE_USER)@git.janware.com/srv/git
|
|
else
|
|
CLONE_FROM_USER ?= janware
|
|
PROJECTS_DIR_REMOTE_BASE ?= https://janware.com/code
|
|
endif
|
|
endif
|
|
JWBDIR_GIT_REMOTE ?= $(PROJECTS_DIR_REMOTE_BASE)/$(CLONE_FROM_USER)/jw-build
|
|
JWBDIR ?= $(notdir $(JWBDIR_GIT_REMOTE))
|
|
PROJECTS_DIR_INCLUDE_MK = $(JWBDIR)/make/projects-dir-include.mk
|
|
|
|
all:
|
|
|
|
include $(PROJECTS_DIR_INCLUDE_MK)
|
|
|
|
$(PROJECTS_DIR_INCLUDE_MK): | $(JWBDIR)
|
|
|
|
$(JWBDIR):
|
|
git clone $(JWBDIR_GIT_REMOTE) $(JWBDIR)
|
|
make $(MAKECMDGOALS)
|
|
|
|
all: link-makefile.done
|
|
link-makefile.done: | $(JWBDIR)
|
|
[ -L $(PROJECTS_MAKEFILE_NAME) ] || \
|
|
ln -sf `find $(JWBDIR) -name '*.mk' -print0 | xargs -0 grep -l some-random-string-to-id-this-makefile` \
|
|
$(PROJECTS_MAKEFILE_NAME)
|
|
touch $@
|
|
clean: clean.link-makefile
|
|
clean.link-makefile:
|
|
rm -f link-makefile.done
|