Move version info into configure.ac and generate version_base.h from template
This commit is contained in:
parent
68f461f5a9
commit
10b5f70e71
|
|
@ -169,7 +169,7 @@ clean:
|
|||
rm -f ivl.exp iverilog-vpi.man iverilog-vpi.pdf iverilog-vpi.ps
|
||||
rm -f iverilog_man.ps iverilog_man.pdf iverilog_man_`./version.exe %M_%n`.pdf
|
||||
rm -f parse.output syn-rules.output dosify$(BUILDEXT) ivl@EXEEXT@ check.vvp
|
||||
rm -f lexor_keyword.cc libivl.a libvpi.a iverilog-vpi syn-rules.cc
|
||||
rm -f lexor_keyword.cc libivl.a libvpi.a iverilog-vpi syn-rules.cc version_base.h
|
||||
rm -rf dep
|
||||
rm -f version.exe
|
||||
|
||||
|
|
@ -251,7 +251,10 @@ iverilog-vpi: $(srcdir)/iverilog-vpi.sh Makefile
|
|||
chmod +x $@
|
||||
endif
|
||||
|
||||
version.exe: $(srcdir)/version.c $(srcdir)/version_base.h version_tag.h
|
||||
version_base.h: $(srcdir)/version_base.h.in config.status
|
||||
./config.status --file=$@
|
||||
|
||||
version.exe: $(srcdir)/version.c version_base.h version_tag.h
|
||||
$(BUILDCC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o version.exe -I. -I$(srcdir) $(srcdir)/version.c
|
||||
|
||||
%.o: %.cc config.h | dep
|
||||
|
|
|
|||
14
configure.ac
14
configure.ac
|
|
@ -1,7 +1,18 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT
|
||||
|
||||
AC_CONFIG_MACRO_DIRS([m4])
|
||||
|
||||
dnl Define project version
|
||||
m4_define([VER_MAJOR], [14])
|
||||
m4_define([VER_MINOR], [0])
|
||||
m4_define([VER_EXTRA], [devel])
|
||||
|
||||
AC_INIT([iverilog], [VER_MAJOR.VER_MINOR (VER_EXTRA)])
|
||||
AC_SUBST([VERSION_MAJOR], [VER_MAJOR])
|
||||
AC_SUBST([VERSION_MINOR], [VER_MINOR])
|
||||
AC_SUBST([VERSION_EXTRA], [" (VER_EXTRA)"])
|
||||
AC_SUBST([VERSION], ["VER_MAJOR.VER_MINOR (VER_EXTRA)"])
|
||||
|
||||
AC_CONFIG_SRCDIR([netlist.h])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_HEADERS([_pli_types.h])
|
||||
|
|
@ -408,6 +419,7 @@ AC_CONFIG_FILES([
|
|||
tgt-vhdl/Makefile
|
||||
tgt-vlog95/Makefile
|
||||
tgt-vvp/Makefile
|
||||
version_base.h
|
||||
vhdlpp/Makefile
|
||||
vpi/Makefile
|
||||
vvp/Makefile
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ cfparse%c cfparse%h: $(srcdir)/cfparse%y
|
|||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
main.o: main.c globals.h $(srcdir)/../version_base.h ../version_tag.h Makefile | dep
|
||||
main.o: main.c globals.h ../version_base.h ../version_tag.h Makefile | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c -DIVL_ROOT='"@libdir@/ivl$(suffix)"' -DIVL_SUFFIX='"$(suffix)"' -DIVL_INC='"@includedir@"' -DIVL_LIB='"@libdir@"' -DDLLIB='"@DLLIB@"' -DIVL_INCLUDE_INSTALL_DIR="\"$(realpath $(DESTDIR)/$(includedir))\"" $(srcdir)/main.c
|
||||
mv $*.d dep
|
||||
|
||||
|
|
|
|||
|
|
@ -89,4 +89,4 @@ uninstall:
|
|||
rm -f "$(DESTDIR)$(libdir)/ivl$(suffix)/ivlpp@EXEEXT@"
|
||||
|
||||
lexor.o: lexor.c globals.h
|
||||
main.o: main.c globals.h $(srcdir)/../version_base.h ../version_tag.h
|
||||
main.o: main.c globals.h ../version_base.h ../version_tag.h
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@
|
|||
#
|
||||
# 1. It creates a new branch with the proper name.
|
||||
#
|
||||
# 2. It then updates the version_base.h to match this version. It likely
|
||||
# 2. It then updates the configure.ac to match this version. It likely
|
||||
# already does, but it is incorrectly marked as devel instead of stable.
|
||||
#
|
||||
# 3. It updates the default suffix in aclocal.m4 to match the branch.
|
||||
# 3. It updates the default suffix in m4/ax_enable_suffix.m4 to match the branch.
|
||||
#
|
||||
# Now manually push the new branch to the master repository.
|
||||
#
|
||||
|
|
@ -27,7 +27,8 @@ case $1 in
|
|||
esac
|
||||
|
||||
major=$1
|
||||
|
||||
minor=0
|
||||
extra="stable"
|
||||
branch="v${major}-branch"
|
||||
|
||||
branch_exists=`git ls-remote --heads origin $branch`
|
||||
|
|
@ -39,16 +40,17 @@ fi
|
|||
echo "Creating branch $branch"
|
||||
git checkout -b $branch
|
||||
|
||||
echo "Updating version_base.h..."
|
||||
sed -i -E "s/(define\s+VERSION_MAJOR\s+).*/\1$major/" version_base.h
|
||||
sed -i -E "s/(define\s+VERSION_MINOR\s+).*/\10/" version_base.h
|
||||
sed -i -E "s/(define\s+VERSION_EXTRA\s+).*/\1\" \(stable\)\"/" version_base.h
|
||||
file=configure.ac
|
||||
echo "Updating $file..."
|
||||
sed -i -E "s/(m4_define\(\[VER_MAJOR\],[[:space:]]*\[)[^]]*(\]\))/\1$major\2/" $file
|
||||
sed -i -E "s/(m4_define\(\[VER_MINOR\],[[:space:]]*\[)[^]]*(\]\))/\1$minor\2/" $file
|
||||
sed -i -E "s/(m4_define\(\[VER_EXTRA\],[[:space:]]*\[)[^]]*(\]\))/\1$extra\2/" $file
|
||||
|
||||
echo "Updating aclocal.m4..."
|
||||
sed -i -E "s/(install_suffix='-)dev/\1$major/" aclocal.m4
|
||||
echo "Updating m4/ax_enable_suffix.m4..."
|
||||
sed -i -E "s/(install_suffix='-)dev/\1$major/" m4/ax_enable_suffix.m4
|
||||
|
||||
echo "Adding updated files to the new branch..."
|
||||
git add version_base.h aclocal.m4
|
||||
git add configure.ac m4/ax_enable_suffix.m4
|
||||
git commit -m "Creating new branch $branch"
|
||||
|
||||
echo "Done"
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
# based on the first and second argument passed to the script, which should
|
||||
# be the desired major and minor numbers for the release. Before creating the
|
||||
# tag, autoconf.sh will be run to create the configure and lexor_keyword.cc
|
||||
# files, the version_base.h and verilog.spec files will be updated to reflect
|
||||
# the new release ID and a release_tag.h file will be created in the top level
|
||||
# directory to provide the VERSION_TAG macro. After creating the tag, the
|
||||
# configure, lexor_keywords.cc, and release_tag.h files will be deleted.
|
||||
# files, the verilog.spec file will be updated to reflect the new release ID
|
||||
# and a release_tag.h file will be created in the top level directory to
|
||||
# provide the VERSION_TAG macro. After creating the tag, the configure,
|
||||
# lexor_keywords.cc, and release_tag.h files will be deleted.
|
||||
#
|
||||
# The complete steps to publish a release are:
|
||||
#
|
||||
|
|
@ -44,6 +44,13 @@ if [ -n "$tag_exists" ] ; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
extra="stable"
|
||||
file=configure.ac
|
||||
echo "Updating $file..."
|
||||
sed -i -E "s/(m4_define\(\[VER_MAJOR\],[[:space:]]*\[)[^]]*(\]\))/\1$major\2/" $file
|
||||
sed -i -E "s/(m4_define\(\[VER_MINOR\],[[:space:]]*\[)[^]]*(\]\))/\1$minor\2/" $file
|
||||
sed -i -E "s/(m4_define\(\[VER_EXTRA\],[[:space:]]*\[)[^]]*(\]\))/\1$extra\2/" $file
|
||||
|
||||
echo "Executing autoconf.sh..."
|
||||
sh autoconf.sh
|
||||
if [ $? -ne 0 ] ; then
|
||||
|
|
@ -51,11 +58,6 @@ if [ $? -ne 0 ] ; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
echo "Updating version_base.h..."
|
||||
sed -i -E "s/(define\s+VERSION_MAJOR\s+).*/\1$major/" version_base.h
|
||||
sed -i -E "s/(define\s+VERSION_MINOR\s+).*/\1$minor/" version_base.h
|
||||
sed -i -E "s/(define\s+VERSION_EXTRA\s+).*/\1\" \(stable\)\"/" version_base.h
|
||||
|
||||
echo "Updating verilog.spec..."
|
||||
sed -i -E "s/(define\s+major\s+).*/\1$major/" verilog.spec
|
||||
sed -i -E "s/(define\s+minor\s+).*/\1$minor/" verilog.spec
|
||||
|
|
@ -66,7 +68,7 @@ echo "#define VERSION_TAG \"$tag\"" > release_tag.h
|
|||
|
||||
echo "Adding files and creating the tag..."
|
||||
git add -f configure lexor_keyword.cc vhdlpp/lexor_keyword.cc
|
||||
git add version_base.h verilog.spec release_tag.h
|
||||
git add configure.ac verilog.spec release_tag.h
|
||||
git commit -m "Creating release $tag"
|
||||
git tag -a -m "Release $major.$minor" $tag
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This script manually creates a version.h file.
|
||||
# This script manually creates a version_tag.h file.
|
||||
#
|
||||
# It is used when creating a MinGW executable from a Cygwin
|
||||
# hosted git repository. It assumes that git is available.
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
#ifndef VERSION
|
||||
/*
|
||||
* Edit this definition in version_base.in to define the base version
|
||||
* number for the compiled result.
|
||||
* This file is generated from version_base.h.in by the build system
|
||||
*
|
||||
* WARNING! All changes made in this file will be lost when recompiling!
|
||||
*/
|
||||
# define VERSION_MAJOR 14
|
||||
# define VERSION_MINOR 0
|
||||
#define VERSION_MAJOR @VERSION_MAJOR@
|
||||
#define VERSION_MINOR @VERSION_MINOR@
|
||||
|
||||
/*
|
||||
* This will be appended to the version. Use this to mark development
|
||||
* versions and the like.
|
||||
*/
|
||||
# define VERSION_EXTRA " (devel)"
|
||||
# define VERSION_EXTRA "@VERSION_EXTRA@"
|
||||
|
||||
# define VERSION_STRINGIFY(x) #x
|
||||
# define VERSION_STR(a,b,extra) VERSION_STRINGIFY(a.b) extra
|
||||
Loading…
Reference in New Issue