lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 1 | #!/usr/bin/env perl |
| 2 | |
| 3 | $version = $ARGV[0]; |
| 4 | |
| 5 | if($version eq "") { |
| 6 | print "Enter version number!\n"; |
| 7 | exit; |
| 8 | } |
| 9 | |
| 10 | if(!-f "ares.h") { |
| 11 | print "run this script in the ares source root dir\n"; |
| 12 | exit; |
| 13 | } |
| 14 | |
| 15 | my ($major, $minor, $patch)=split(/\./, $version); |
| 16 | |
| 17 | $major += 0; |
| 18 | $minor += 0; |
| 19 | $patch += 0; |
| 20 | |
| 21 | open(VER, "<ares_version.h") || |
| 22 | die "can't open ares_version.h"; |
| 23 | open(NEWV, ">ares_version.h.dist"); |
| 24 | while(<VER>) { |
| 25 | $_ =~ s/^\#define ARES_VERSION_MAJOR .*/\#define ARES_VERSION_MAJOR $major/; |
| 26 | $_ =~ s/^\#define ARES_VERSION_MINOR .*/\#define ARES_VERSION_MINOR $minor/; |
| 27 | $_ =~ s/^\#define ARES_VERSION_PATCH .*/\#define ARES_VERSION_PATCH $patch/; |
| 28 | $_ =~ s/^\#define ARES_VERSION_STR .*/\#define ARES_VERSION_STR \"$version\"/; |
| 29 | |
| 30 | print NEWV $_; |
| 31 | } |
| 32 | close(VER); |
| 33 | close(NEWV); |
| 34 | print "ares_version.h.dist created\n"; |
| 35 | |
| 36 | if(!-f "configure") { |
| 37 | print "running buildconf\n"; |
| 38 | `./buildconf`; |
| 39 | } |
| 40 | print "adding $version in the configure.ac file\n"; |
| 41 | `sed -e 's/AC_INIT.*/AC_INIT([c-ares], [$version],/' < configure.ac > configure.ac.dist`; |
| 42 | |
| 43 | # now make a new configure script with this |
| 44 | print "makes a new configure script\n"; |
| 45 | `autoconf configure.ac.dist >configure`; |
| 46 | |
| 47 | # now run this new configure to get a fine makefile |
| 48 | print "running configure\n"; |
| 49 | `./configure`; |
| 50 | |
| 51 | # generate HTML versions of man pages |
| 52 | # Deactivated for now. It seems that man pages need some adjustments |
| 53 | # relative to paragraph and/or line breaks for proper html formatting. |
| 54 | # EXTRA_DIST will need $(HTMLPAGES) when this is fully activated. |
| 55 | # print "running make html\n"; |
| 56 | # `make -s html`; |
| 57 | |
| 58 | # generate PDF versions of man pages |
| 59 | print "running make pdf\n"; |
| 60 | `make -s pdf`; |
| 61 | |
| 62 | print "produce CHANGES\n"; |
| 63 | `git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./git2changes.pl > CHANGES.dist`; |
| 64 | |
| 65 | # now make the actual tarball |
| 66 | print "running make dist\n"; |
| 67 | `make dist VERSION=$version`; |
| 68 | |
| 69 | # remove temporay sourced man pages |
| 70 | `make -s clean-sourced-manpages`; |
| 71 | |
| 72 | print "removing temporary configure.ac file\n"; |
| 73 | `rm configure.ac.dist`; |
| 74 | print "removing temporary ares_version.h file\n"; |
| 75 | `rm ares_version.h.dist`; |
| 76 | |
| 77 | print "NOTE: now tag this release!\n"; |