Adapt build system and RPM build to Git.
This commit is contained in:
parent
ca6bd39302
commit
1333ca6680
52
Makefile.in
52
Makefile.in
|
@ -81,6 +81,10 @@ DOCGEN := $(DOCGEN_D)
|
|||
APIDOCS := apidocs
|
||||
endif
|
||||
|
||||
GIT_TAG := $(shell LANG=C LC_MESSAGES=C git tag 2>/dev/nul | tail -1)
|
||||
GIT_HASH := $(shell LANG=C LC_MESSAGES=C git rev-list -n1 HEAD 2>/dev/null)
|
||||
|
||||
|
||||
.PHONY: all everything debug ddebug xdebug ndebug
|
||||
all: engine modules clients ilibs
|
||||
|
||||
|
@ -291,9 +295,9 @@ uninstall uninstall-root:
|
|||
|
||||
install-root uninstall-root: LDCONFIG:=ldconfig
|
||||
|
||||
.PHONY: snapshot tarball rpm srpm revision
|
||||
.PHONY: snapshot tarball rpm srpm rpm-tag srpm-tag rpm-head srpm-head revision check-gittag
|
||||
snapshot tarball: check-topdir revision clean windows apidocs
|
||||
@if [ $@ = snapshot ]; then ver="`date '+SVN-%Y%m%d'`"; else ver="@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@"; fi ; \
|
||||
@if [ $@ = snapshot ]; then ver="`date '+GIT-%Y%m%d'`"; else ver="@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@"; fi ; \
|
||||
wd=`pwd|sed 's,^.*/,,'`; \
|
||||
mkdir -p packing/tarballs; cd ..; \
|
||||
echo $$wd/tar-exclude >$$wd/tar-exclude; \
|
||||
|
@ -307,6 +311,7 @@ snapshot tarball: check-topdir revision clean windows apidocs
|
|||
find $$wd -name .svn >>$$wd/tar-exclude; \
|
||||
find $$wd -name CVS >>$$wd/tar-exclude; \
|
||||
find $$wd -name .cvsignore >>$$wd/tar-exclude; \
|
||||
find $$wd -name .gitignore >>$$wd/tar-exclude; \
|
||||
else \
|
||||
echo "$$wd/packing/rpm/yate.spec" >>$$wd/tar-exclude; \
|
||||
fi ; \
|
||||
|
@ -323,15 +328,48 @@ snapshot tarball: check-topdir revision clean windows apidocs
|
|||
$$wd; \
|
||||
rm $$wd/tar-exclude
|
||||
|
||||
rpm: tarball
|
||||
# rpm and sprm will check that head is at the last tag
|
||||
rpm: check-gittag tarball
|
||||
rpmbuild -tb $(RPMOPT) packing/tarballs/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@.tar.gz
|
||||
|
||||
srpm: tarball
|
||||
srpm: check-gittag tarball
|
||||
rpmbuild -ta $(RPMOPT) packing/tarballs/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@.tar.gz
|
||||
|
||||
revision: check-topdir
|
||||
@-rev=`LANG=C LC_MESSAGES=C svn info 2>/dev/null | sed -n 's,^Last Changed Rev: *,,p'`; \
|
||||
test -z "$$rev" || echo "$$rev" > packing/revision.txt
|
||||
|
||||
#build rpm/srpm with tag in revision number
|
||||
rpm-tag:
|
||||
rpmbuild -tb --define 'revision $(GIT_TAG)git' $(RPMOPT) packing/tarballs/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@.tar.gz
|
||||
|
||||
srpm-tag:
|
||||
rpmbuild -ta --define 'revision $(GIT_TAG)git' $(RPMOPT) packing/tarballs/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@.tar.gz
|
||||
|
||||
|
||||
# build packages from GIT HEAD
|
||||
rpm-head: tarball
|
||||
rpmbuild -tb --define 'revision $(GIT_HASH)git' $(RPMOPT) packing/tarballs/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@.tar.gz
|
||||
|
||||
srpm-head: tarball
|
||||
rpmbuild -ta --define 'revision $(GIT_HASH)git' $(RPMOPT) packing/tarballs/@PACKAGE_TARNAME@-@PACKAGE_VERSION@-@PACKAGE_STATUS@@PACKAGE_RELEASE@.tar.gz
|
||||
|
||||
# tag=`LANG=C LC_MESSAGES=C git tag 2>/dev/nul | tail -1`; \
|
||||
|
||||
check-gittag revision: check-topdir
|
||||
@tag_hash=""; \
|
||||
if [ "" != "$(GIT_TAG)" ]; then \
|
||||
tag_hash=`LANG=C LC_MESSAGES=C git rev-list -n1 $(GIT_TAG) 2>/dev/null`; \
|
||||
elif [ $@ = check-gittag ]; then \
|
||||
echo "No available GIT tag"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
if [ "x$(GIT_HASH)" != "x$$tag_hash" ]; then \
|
||||
if [ $@ = check-gittag ]; then \
|
||||
echo "Current commit hash $(GIT_HASH) different from expected hash for tag $(GIT_TAG) ($$tag_hash)"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
tag=""; \
|
||||
fi; \
|
||||
test -z "$(GIT_TAG)" || echo "$(GIT_TAG)" > packing/revision.txt ; \
|
||||
test -z "$(GIT_HASH)" || echo "$$GIT_HASH" > packing/git_commit.txt
|
||||
|
||||
%.o: @srcdir@/%.cpp $(MKDEPS) @srcdir@/yatengine.h
|
||||
$(COMPILE) -c $<
|
||||
|
|
|
@ -9,8 +9,11 @@ fi
|
|||
|
||||
PACKAGE_RELEASE="1"
|
||||
PACKAGE_STATUS="devel"
|
||||
PACKAGE_REVISION=`cd "$srcdir"; LANG=C LC_MESSAGES=C svn info 2>/dev/null | sed -n 's,^Last Changed Rev: *,,p'`
|
||||
PACKAGE_REVISION=`cd "$srcdir"; LANG=C LC_MESSAGES=C git rev-list -n 1 HEAD 2>/dev/null`
|
||||
test -z "$PACKAGE_REVISION" && PACKAGE_REVISION=`cat "$srcdir/packing/revision.txt" 2>/dev/null`
|
||||
test -z "$PACKAGE_REVISION" && PACKAGE_REVISION=`cat "$srcdir/packing/git_commit.txt" 2>/dev/null`
|
||||
PACKAGE_GIT_HASH=`cd "$srcdir"; LANG=C LC_MESSAGES=C git rev-list -n 1 HEAD 2>/dev/null`
|
||||
test -z "$PACKAGE_REVISION" && PACKAGE_REVISION=`cat "$srcdir/packing/git_commit.txt" 2>/dev/null`
|
||||
AC_ARG_WITH(status,AC_HELP_STRING([--with-status=NAME],[use NAME as package status]),[PACKAGE_STATUS=$withval])
|
||||
|
||||
PACKAGE_VERSION_MAJOR="${PACKAGE_VERSION%%.*}"
|
||||
|
@ -25,6 +28,7 @@ AC_SUBST(PACKAGE_VERSION_RELEASE)
|
|||
AC_SUBST(PACKAGE_RELEASE)
|
||||
AC_SUBST(PACKAGE_STATUS)
|
||||
AC_SUBST(PACKAGE_REVISION)
|
||||
AC_SUBST(PACKAGE_GIT_HASH)
|
||||
|
||||
# We may need the host OS type but avoid the overhead of AC_CANONICAL_SYSTEM
|
||||
AC_MSG_CHECKING([for local operating system type])
|
||||
|
|
|
@ -549,6 +549,7 @@ bool EngineStatusHandler::received(Message &msg)
|
|||
msg.retValue() << "name=engine,type=system";
|
||||
msg.retValue() << ",version=" << YATE_VERSION;
|
||||
msg.retValue() << ",revision=" << YATE_REVISION;
|
||||
msg.retValue() << ",githash=" << YATE_GIT_HASH;
|
||||
msg.retValue() << ",nodename=" << Engine::nodeName();
|
||||
msg.retValue() << ";plugins=" << plugins.count();
|
||||
msg.retValue() << ",inuse=" << Engine::self()->usedPlugins();
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
revision.txt
|
||||
git_commit.txt
|
||||
core*
|
||||
*.orig
|
||||
*~
|
||||
.*.swp
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
%define debug_package ${nil}
|
||||
%endif
|
||||
|
||||
%if "%{revision}" == "svn"
|
||||
%define revision @PACKAGE_REVISION@svn
|
||||
%if "%{revision}" == "git"
|
||||
%define revision @PACKAGE_REVISION@git
|
||||
%endif
|
||||
|
||||
%if "%{dist}" == ""
|
||||
|
@ -90,6 +90,7 @@ BuildRequires: gcc-c++
|
|||
%description
|
||||
Yate is a telephony engine designed to implement PBX and IVR solutions
|
||||
for small to large scale projects.
|
||||
(GIT commit: @PACKAGE_GIT_HASH@)
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#define YATE_RELEASE "@PACKAGE_RELEASE@"
|
||||
#define YATE_STATUS "@PACKAGE_STATUS@"
|
||||
#define YATE_REVISION "@PACKAGE_REVISION@"
|
||||
#define YATE_GIT_HASH "@PACKAGE_GIT_HASH@"
|
||||
|
||||
/* Windows version resource - file and string style */
|
||||
#define YATE_WINVER_F @PACKAGE_VERSION_MAJOR@,@PACKAGE_VERSION_MINOR@,@PACKAGE_VERSION_BUILD@,@PACKAGE_VERSION_RELEASE@
|
||||
|
|
Loading…
Reference in New Issue