diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-06-17 15:52:43 +0800 |
---|---|---|
committer | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2020-06-18 11:07:13 +0200 |
commit | ace4489cbda424e6e831dc27f507bdb0a10266a4 (patch) | |
tree | 559853b550e109ca5d32b2fdc4fcaedc78bd9b4f | |
parent | 9941045fca570c62cf6117967281b1328d5901fe (diff) | |
download | sigc++-ace4489cbda424e6e831dc27f507bdb0a10266a4.tar.gz |
NMake Makefiles: Add rules to generate sigc.rc and sigc++config.h
This adds a 'prep-git-build' target which is run before building any of the
other targets so that this paves the first steps in making the libsigc++-2-10
branch buildable directly from a GIT checkout with the NMake Makefiles.
Note that unlike the master (3.x) branch, we still need to use m4 to generate
some sources and headers, which will be covered in the following commit.
-rw-r--r-- | MSVC_NMake/Makefile.vc | 4 | ||||
-rw-r--r-- | MSVC_NMake/generate-msvc.mak | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/MSVC_NMake/Makefile.vc b/MSVC_NMake/Makefile.vc index cb82ebb..3802dab 100644 --- a/MSVC_NMake/Makefile.vc +++ b/MSVC_NMake/Makefile.vc @@ -30,6 +30,10 @@ VALID_MSC = TRUE # into the lists we need for compilation and introspection !include create-lists-msvc.mak +!ifdef GENERATE_VERSIONED_FILES +!include pkg-ver.mak +!endif + all: $(LIBSIGC_LIB) $(libsigc_ex) all-build-info tests: $(libsigc_tests) all-build-info diff --git a/MSVC_NMake/generate-msvc.mak b/MSVC_NMake/generate-msvc.mak index 2569fb2..8084e0a 100644 --- a/MSVC_NMake/generate-msvc.mak +++ b/MSVC_NMake/generate-msvc.mak @@ -8,3 +8,41 @@ vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp \ vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-ex \ vs$(VSVER)\$(CFG)\$(PLAT)\libsigcpp-tests: @-md $@ + +# Create the versioned files + +prep-git-build: pkg-ver.mak + +sigc.rc: pkg-ver.mak sigc.rc.in + @echo Generating $@... + @copy $@.in $@ + @$(PERL) -pi.bak -e "s/\@SIGCXX_MAJOR_VERSION\@/$(PKG_MAJOR_VERSION)/g" $@ + @$(PERL) -pi.bak -e "s/\@SIGCXX_MINOR_VERSION\@/$(PKG_MINOR_VERSION)/g" $@ + @$(PERL) -pi.bak -e "s/\@SIGCXX_MICRO_VERSION\@/$(PKG_MICRO_VERSION)/g" $@ + @$(PERL) -pi.bak -e "s/\@PACKAGE_VERSION\@/$(PKG_MAJOR_VERSION).$(PKG_MINOR_VERSION).$(PKG_MICRO_VERSION)/g" $@ + @$(PERL) -pi.bak -e "s/\@SIGCXX_API_VERSION\@/$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)/g" $@ + @del $@.bak + +# You may change SIGCXX_DISABLE_DEPRECATED if you know what you are doing +sigc++config.h: pkg-ver.mak ..\sigc++config.h.in + @echo Generating $@... + @copy "..\$(@F).in" "$@" + @$(PERL) -pi.bak -e "s/\#undef SIGCXX_DISABLE_DEPRECATED/\/\* \#undef SIGCXX_DISABLE_DEPRECATED \*\//g" $@ + @$(PERL) -pi.bak -e "s/\#undef SIGCXX_MAJOR_VERSION/\#define SIGCXX_MAJOR_VERSION $(PKG_MAJOR_VERSION)/g" $@ + @$(PERL) -pi.bak -e "s/\#undef SIGCXX_MINOR_VERSION/\#define SIGCXX_MINOR_VERSION $(PKG_MINOR_VERSION)/g" $@ + @$(PERL) -pi.bak -e "s/\#undef SIGCXX_MICRO_VERSION/\#define SIGCXX_MICRO_VERSION $(PKG_MICRO_VERSION)/g" $@ + @del $@.bak + +pkg-ver.mak: ..\configure.ac + @echo Generating version info Makefile Snippet... + @$(PERL) -00 -ne "print if /AC_INIT\(/" $** | \ + $(PERL) -pe "tr/, /\n/s" | \ + $(PERL) -ne "print if 2 .. 2" | \ + $(PERL) -ne "print /\[(.*)\]/" > ver.txt + @echo @echo off>pkg-ver.bat + @echo.>>pkg-ver.bat + @echo set /p sigc_ver=^<ver.txt>>pkg-ver.bat + @echo for /f "tokens=1,2,3 delims=." %%%%a IN ("%%sigc_ver%%") do (echo PKG_MAJOR_VERSION=%%%%a^& echo PKG_MINOR_VERSION=%%%%b^& echo PKG_MICRO_VERSION=%%%%c)^>$@>>pkg-ver.bat + @pkg-ver.bat + @del ver.txt pkg-ver.bat + $(MAKE) /f Makefile.vc CFG=$(CFG) GENERATE_VERSIONED_FILES=1 sigc.rc sigc++config.h |