mirror of
https://github.com/ceph/ceph
synced 2024-12-18 01:16:55 +00:00
Merge pull request #4025 from ceph/wip-fix-configure-noversion
configure.ac: add --disable-gitversion Reviewed-by: Kefu Chai <kchai@redhat.com> Reviewed-by: Sage Weil <sage@redhat.com> Reviewed-by: Loic Dachary <ldachary@redhat.com>
This commit is contained in:
commit
fe25118b73
@ -279,6 +279,12 @@ else
|
||||
AC_MSG_FAILURE([no suitable crypto library found])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(gitversion,
|
||||
[AC_HELP_STRING([--enable-gitversion], [build Ceph with git version string])],
|
||||
[], [enable_gitversion=yes])
|
||||
|
||||
AM_CONDITIONAL(NO_GIT_VERSION, [test "x$enable_gitversion" = "xno"])
|
||||
|
||||
AC_ARG_ENABLE([root-make-check],
|
||||
[AS_HELP_STRING([--enable-root-make-check], [enable make check tests that require root privileges])],
|
||||
[],
|
||||
|
@ -3,7 +3,9 @@ include Makefile-env.am
|
||||
SUBDIRS += ocf java tracing
|
||||
DIST_SUBDIRS += gmock ocf libs3 java tracing
|
||||
|
||||
|
||||
if NO_GIT_VERSION
|
||||
export NO_VERSION="yes"
|
||||
endif
|
||||
|
||||
# subdirs
|
||||
|
||||
@ -164,7 +166,6 @@ EXTRA_DIST += \
|
||||
$(srcdir)/init-rbdmap \
|
||||
$(srcdir)/ceph-clsinfo \
|
||||
$(srcdir)/make_version \
|
||||
$(srcdir)/check_version \
|
||||
$(srcdir)/.git_version \
|
||||
$(srcdir)/ceph-rbdnamer \
|
||||
$(srcdir)/test/encoding/readable.sh \
|
||||
@ -670,19 +671,17 @@ base: core-daemons admin-tools \
|
||||
|
||||
FORCE:
|
||||
.git_version: FORCE
|
||||
$(srcdir)/check_version $(srcdir)/.git_version
|
||||
$(srcdir)/make_version -g $(srcdir)/.git_version
|
||||
|
||||
# if NO_VERSION is set, only generate a new ceph_ver.h if there currently
|
||||
# is none, and call "make_version -n" to fill it with a fixed string.
|
||||
# Otherwise, set it from the contents of .git_version.
|
||||
|
||||
ceph_ver.h: .git_version
|
||||
ceph_ver.h: .git_version FORCE
|
||||
if [ -n "$$NO_VERSION" ] ; then \
|
||||
if [ ! -f ./ceph_ver.h ] ; then \
|
||||
$(srcdir)/make_version -n ./ceph_ver.h ; \
|
||||
fi; \
|
||||
$(srcdir)/make_version -g $(srcdir)/.git_version -c $(srcdir)/ceph_ver.h -n ; \
|
||||
else \
|
||||
$(srcdir)/make_version $(srcdir)/.git_version ./ceph_ver.h ; \
|
||||
$(srcdir)/make_version -g $(srcdir)/.git_version -c $(srcdir)/ceph_ver.h ; \
|
||||
fi
|
||||
|
||||
ceph_ver.c: ./ceph_ver.h
|
||||
@ -693,7 +692,7 @@ sample.fetch_config: fetch_config
|
||||
cp -f $(srcdir)/fetch_config ./sample.fetch_config
|
||||
|
||||
dist-hook:
|
||||
$(srcdir)/check_version $(srcdir)/.git_version
|
||||
$(srcdir)/make_version -g $(srcdir)/.git_version
|
||||
|
||||
CLEANFILES += ceph_ver.h sample.fetch_config
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
dname=`dirname $0`
|
||||
|
||||
if [ ! -d $dname/../.git ]; then
|
||||
echo "not updating .git_version (no $dname/../.git)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cur=`cd $dname && git rev-parse HEAD 2>/dev/null; git describe 2>/dev/null`
|
||||
[ -e $1 ] && old=`cat $1`
|
||||
|
||||
if [ "$cur" != "$old" ]; then
|
||||
echo regenerating $1 with $cur
|
||||
echo "$cur" > $1
|
||||
else
|
||||
echo $1 is up to date.
|
||||
fi
|
||||
|
105
src/make_version
105
src/make_version
@ -1,23 +1,108 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo '$1: '$1
|
||||
GIT_VERSION_FILE=
|
||||
CEPH_VER_HEADER=
|
||||
NO_VERSION=0
|
||||
|
||||
if [ "$1" = "-n" ] ; then
|
||||
cur="no_version"
|
||||
v="Development"
|
||||
is_git() {
|
||||
type git > /dev/null 2>&1 || { echo "Could not find git command. Please install. Aborting."; exit 1; }
|
||||
git status > /dev/zero 2>&1;
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "This is no git repository, not updating .git_version"
|
||||
return 1
|
||||
else
|
||||
cur=`head -1 $1`
|
||||
v=`tail -1 $1 | cut -c 2-`
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
check_gitversion() {
|
||||
if is_git; then
|
||||
current=`git rev-parse HEAD 2> /dev/null; git describe 2> /dev/null`
|
||||
if [ -f $GIT_VERSION_FILE ] ; then
|
||||
old=`cat $GIT_VERSION_FILE`
|
||||
|
||||
if [ "$current" != "$old" ]; then
|
||||
echo "$current" > $GIT_VERSION_FILE
|
||||
fi
|
||||
else
|
||||
echo "$current" > $GIT_VERSION_FILE
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
print_ceph_ver() {
|
||||
# print the content of the ceph_ver.h file
|
||||
if [ $NO_VERSION -eq 1 ]; then
|
||||
ver="no_version"
|
||||
ver_nice="Development"
|
||||
else
|
||||
ver=`head -1 $GIT_VERSION_FILE`
|
||||
ver_nice=`tail -1 $GIT_VERSION_FILE | cut -c 2-`
|
||||
fi
|
||||
|
||||
print_all() {
|
||||
echo "#ifndef CEPH_VERSION_H"
|
||||
echo "#define CEPH_VERSION_H"
|
||||
echo
|
||||
echo "#define CEPH_GIT_VER $cur"
|
||||
echo "#define CEPH_GIT_NICE_VER \"$v\""
|
||||
echo "#define CEPH_GIT_VER $ver"
|
||||
echo "#define CEPH_GIT_NICE_VER \"$ver_nice\""
|
||||
echo
|
||||
echo "#endif"
|
||||
}
|
||||
|
||||
print_all > $2
|
||||
set_ceph_ver() {
|
||||
# compare new and old CEPH_VER_HEADER
|
||||
if [ -f $CEPH_VER_HEADER ]; then
|
||||
tmpfile=$(mktemp -t "ceph_ver_h.XXXXXXXXXXXXX")
|
||||
print_ceph_ver > $tmpfile
|
||||
cur_ver=`cat $CEPH_VER_HEADER`
|
||||
new_ver=`cat $tmpfile`
|
||||
if [ "$cur_ver" != "$new_ver" ]; then
|
||||
mv $tmpfile $CEPH_VER_HEADER
|
||||
else
|
||||
rm $tmpfile
|
||||
fi
|
||||
else
|
||||
print_ceph_ver > $CEPH_VER_HEADER
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
printf "usage: $0 -g FILEPATH [options]\n"
|
||||
printf "\t-g|--git-version-file\tFILEPATH for git version file (e.g. ./src/.git_version)\n"
|
||||
printf "\t-c|--ceph-ver-header\tFILEPATH for ceph version header (e.g. ./src/ceph_ver.h)\n"
|
||||
printf "\t-n|--no-version\t\tdon't generate version from git\n"
|
||||
printf "\t-h|--help\t\tprint this usage instructions\n"
|
||||
}
|
||||
|
||||
until [ -z "$1" ]; do
|
||||
case $1 in
|
||||
-n|--no-version)
|
||||
NO_VERSION=1;
|
||||
;;
|
||||
-g|--git-version-file)
|
||||
GIT_VERSION_FILE=$2
|
||||
shift;
|
||||
;;
|
||||
-c|--ceph-ver-header)
|
||||
CEPH_VER_HEADER=$2
|
||||
shift;
|
||||
;;
|
||||
-h|--help)
|
||||
usage;
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done;
|
||||
|
||||
if [ -n "$GIT_VERSION_FILE" ] ; then
|
||||
if [ -z "$CEPH_VER_HEADER" ] ; then
|
||||
check_gitversion
|
||||
else
|
||||
check_gitversion
|
||||
set_ceph_ver
|
||||
fi
|
||||
else
|
||||
usage
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user