|
15 | 15 |
|
16 | 16 | sub print_usage_and_exit
|
17 | 17 | {
|
18 |
| - print("Usage: ./release.pl <version>\n"); |
19 |
| - print(" Example: ./release.pl 1.2.0\n"); |
| 18 | + print("usage: ./release.pl <version>\n"); |
| 19 | + print(" or: ./release.pl --package-asio\n"); |
| 20 | + print("\n"); |
| 21 | + print("examples:\n"); |
| 22 | + print(" create new version and build packages for asio and boost.asio:\n"); |
| 23 | + print(" ./release.pl 1.2.0\n"); |
| 24 | + print(" create packages for asio only:\n"); |
| 25 | + print(" ./release.pl --package-asio\n"); |
20 | 26 | exit(1);
|
21 | 27 | }
|
22 | 28 |
|
|
45 | 51 | }
|
46 | 52 | }
|
47 | 53 |
|
| 54 | +sub determine_version_from_configure() |
| 55 | +{ |
| 56 | + my $from = "configure.ac"; |
| 57 | + open(my $input, "<$from") or die("Can't open $from for reading"); |
| 58 | + while (my $line = <$input>) |
| 59 | + { |
| 60 | + chomp($line); |
| 61 | + if ($line =~ /^AC_INIT\(asio.*\[(.*)\]\)$/) |
| 62 | + { |
| 63 | + our $asio_name = "asio-$1"; |
| 64 | + our $boost_asio_name = "boost_asio_$1"; |
| 65 | + last; |
| 66 | + } |
| 67 | + } |
| 68 | +} |
| 69 | + |
48 | 70 | sub update_configure_ac
|
49 | 71 | {
|
50 | 72 | # Open the files.
|
@@ -202,9 +224,11 @@ sub build_example_diffs
|
202 | 224 |
|
203 | 225 | sub make_asio_packages
|
204 | 226 | {
|
| 227 | + our $asio_name; |
205 | 228 | system("./autogen.sh");
|
206 | 229 | system("./configure");
|
207 | 230 | system("make dist");
|
| 231 | + system("tar tfz $asio_name.tar.gz | sed -e 's/^[^\\/]*//' | sort -df > asio.manifest"); |
208 | 232 | }
|
209 | 233 |
|
210 | 234 | sub build_boost_asio_doc
|
@@ -361,29 +385,48 @@ sub create_boost_asio_content
|
361 | 385 |
|
362 | 386 | sub make_boost_asio_packages
|
363 | 387 | {
|
| 388 | + our $boost_asio_name; |
364 | 389 | system("tar --format=ustar -chf - $boost_asio_name | gzip -c >$boost_asio_name.tar.gz");
|
365 | 390 | system("tar --format=ustar -chf - $boost_asio_name | bzip2 -9 -c >$boost_asio_name.tar.bz2");
|
366 | 391 | system("rm -f $boost_asio_name.zip");
|
367 | 392 | system("zip -rq $boost_asio_name.zip $boost_asio_name");
|
368 | 393 | system("rm -rf $boost_asio_name");
|
| 394 | + system("tar tfz $boost_asio_name.tar.gz | sed -e 's/^[^\\/]*//' | sort -df > boost_asio.manifest"); |
369 | 395 | }
|
370 | 396 |
|
371 |
| -sub create_manifests |
| 397 | +(scalar(@ARGV) == 1) or print_usage_and_exit(); |
| 398 | +my $new_version = 1; |
| 399 | +my $package_asio = 1; |
| 400 | +my $package_boost = 1; |
| 401 | +if ($ARGV[0] eq "--package-asio") |
372 | 402 | {
|
373 |
| - system("tar tfz $asio_name.tar.gz | sed -e 's/^[^\\/]*//' | sort -df > asio.manifest"); |
374 |
| - system("tar tfz $boost_asio_name.tar.gz | sed -e 's/^[^\\/]*//' | sort -df > boost_asio.manifest"); |
| 403 | + $new_version = 0; |
| 404 | + $package_boost = 0; |
375 | 405 | }
|
376 | 406 |
|
377 |
| -(scalar(@ARGV) == 1) or print_usage_and_exit(); |
378 |
| -determine_version($ARGV[0]); |
379 |
| -update_configure_ac(); |
380 |
| -update_readme(); |
381 |
| -update_asio_version_hpp(); |
382 |
| -update_boost_asio_version_hpp(); |
383 |
| -build_asio_doc(); |
384 |
| -build_example_diffs(); |
385 |
| -make_asio_packages(); |
386 |
| -build_boost_asio_doc(); |
387 |
| -create_boost_asio_content(); |
388 |
| -make_boost_asio_packages(); |
389 |
| -create_manifests(); |
| 407 | +if ($new_version) |
| 408 | +{ |
| 409 | + determine_version($ARGV[0]); |
| 410 | + update_configure_ac(); |
| 411 | + update_readme(); |
| 412 | + update_asio_version_hpp(); |
| 413 | + update_boost_asio_version_hpp(); |
| 414 | +} |
| 415 | +else |
| 416 | +{ |
| 417 | + determine_version_from_configure(); |
| 418 | +} |
| 419 | + |
| 420 | +if ($package_asio) |
| 421 | +{ |
| 422 | + build_asio_doc(); |
| 423 | + build_example_diffs(); |
| 424 | + make_asio_packages(); |
| 425 | +} |
| 426 | + |
| 427 | +if ($package_boost) |
| 428 | +{ |
| 429 | + build_boost_asio_doc(); |
| 430 | + create_boost_asio_content(); |
| 431 | + make_boost_asio_packages(); |
| 432 | +} |
0 commit comments