jw-pkg/make/topdir.mk
2016-02-28 12:00:55 +00:00

141 lines
3.4 KiB
Makefile

all: config
install: topdir.install
clean: topdir.clean
config:
SUBDIRS ?= $(wildcard inst/pre make scripts contrib src libsrc tools include lib bin \
util plugins conf config cfg images doc test inst/post)
PROJECT_DESCR = $(TOPDIR)/make/project.conf
ifneq ($(wildcard $(TOPDIR)/make/defs.mk),)
include $(TOPDIR)/make/defs.mk
endif
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/dirs.mk
include $(MODDIR)/make/rpmdist.mk
include $(MODDIR)/make/rules.mk
include $(MODDIR)/make/doc-rules.mk
STREAMLINE_PROJECT ?= bash $(MOD_SCRIPT_DIR)/streamline-project.sh
distclean: topdir.distclean
INSTALLED_TOPDIR_FILES = $(addprefix $(INSTALL_DOCDIR)/, $(DOCS))
local-%:
find . -name $@.mk | \
while read f; do (\
cd `dirname $$f` ;\
rm -f local.mk ;\
ln -s `basename $$f` local.mk ;\
) done
unlocal:
rm -f $(shell find . -name local.mk)
topdir.distclean:
topdir.clean:
rm -f *.done
topdir.install: prefix.done $(INSTALLED_TOPDIR_FILES)
prefix.done:
mkdir -p $(PREFIX)
touch $@
install-links:
DEVELOPMENT=false make do-install-links
do-install-links:
@@cwd=`pwd`; \
echo "o in $(INSTALL_LIBDIR):" ;\
find lib -name '*.so' -o -name '*.so.*' -o -name '*.a' -o -name '*.dll' | \
$(SED) 's%^\./%%' | \
while read f; do \
cd $(INSTALL_LIBDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done; \
echo "o in $(INSTALL_EXEDIR):" ;\
find bin -type f -a -perm -u+x | \
$(SED) 's%^\./%%' | \
while read f; do \
cd $(INSTALL_EXEDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done ;\
echo "o in $(INSTALL_HDRDIR):" ;\
find include -name '*.h' | \
$(SED) 's%^\./%%' | \
while read f; do \
cd $(INSTALL_HDRDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done; \
echo "o in $(INSTALL_MAKEDIR):" ;\
find make -name '*.mk' | \
$(SED) 's%^\./%%' | \
while read f; do \
cd $(INSTALL_MAKEDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done; \
git-init:
@if [ -e .git ]; then \
echo $(TOPDIR)/.git exists, aborting ;\
exit 1 ;\
fi
git init
if [ -e $(PROJECT_DESCR_FILE) ]; then \
touch $(PROJECT_DESCR_FILE) ;\
make description ;\
fi
git-init-from-cvs: git-init
list-cvs-files.sh -f | xargs git add
git commit -m "initial checkin of $(RPM_VERSION)"
WHOAMI = $(shell whoami)
REMOTE_GIT_DIR = /srv/git/$(WHOAMI)/proj/$(PROJECT)
REMOTE_GIT_URL = ssh://$(WHOAMI)@git.jannet.de$(REMOTE_GIT_DIR)
git-config:
git config --global user.name $(FULL_NAME)
git config --global user.email $(WHOAMI)@jannet.de
git remote add origin $(REMOTE_GIT_URL)
git remote set-url --push origin $(REMOTE_GIT_URL)
git-clone-to-remote:
ssh git.jannet.de "/opt/ytools/bin/git-srv-admin.sh -j create-personal-project $(PROJECT)"
git remote set-url --push origin $(REMOTE_GIT_URL)
git push --set-upstream origin master
git push --all $(REMOTE_GIT_URL)
git-import: git-init git-config
git add -A
git commit -am "o initial checkin"
git-jannet-init: git-import git-clone-to-remote
projects-%:
python $(MOD_SCRIPT_DIR)/build.py $* $(PROJECT)
$(TOPDIR)/.git/description: $(PROJECT_DESCR_FILE)
$(MOD_SCRIPT_DIR)/ini-section.sh summary $< | tee $@.tmp
mv $@.tmp $@
description: $(TOPDIR)/.git/description
install-deps-devel:
sudo zypper in $(shell echo $(RPM_REQUIRES_DEVEL) | sed "s/ *= */-/g; s/ [^ ]\+-__NEXT_VERSION__//")
streamline:
$(STREAMLINE_PROJECT)