diff options
author | Steven Knight <knight@baldmt.com> | 2001-12-13 23:00:21 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2001-12-13 23:00:21 (GMT) |
commit | 6df6db482f39e2a36f69b48f2240f49b29ab762a (patch) | |
tree | a5f6cbf8109fc41ef24d578193feccf60ab7922e /Construct | |
parent | 7d284153621b986656aea2715c7fa73c5101d556 (diff) | |
download | SCons-6df6db482f39e2a36f69b48f2240f49b29ab762a.zip SCons-6df6db482f39e2a36f69b48f2240f49b29ab762a.tar.gz SCons-6df6db482f39e2a36f69b48f2240f49b29ab762a.tar.bz2 |
Roll our own RPM package generation.
Diffstat (limited to 'Construct')
-rw-r--r-- | Construct | 52 |
1 files changed, 35 insertions, 17 deletions
@@ -244,8 +244,11 @@ $scons = { debian/scons.postinst debian/scons.prerm) ], - 'files' => [ qw(LICENSE.txt README.txt script/scons.bat - setup.cfg setup.py) ], + 'files' => [ qw(LICENSE.txt README.txt os_spawnv_fix.diff + scons.1 script/scons.bat setup.cfg setup.py) ], + 'filemap' => { + 'scons.1' => '../doc/man/scons.1', + }, 'subpkgs' => [ $python_scons, $scons_script ], 'subinst_dirs' => { "python-$project" => $lib_project, @@ -353,26 +356,41 @@ for $p ($scons) { ); my @install_targets = @build_targets; - if ($rpm) { - push(@setup_args, 'bdist_rpm'); - - # XXX "$build/build/bdist.$platform/rpm/SOURCES/$pkg-$version.$archsuffix", - # XXX "$build/build/bdist.$platform/rpm/SPECS/$pkg.spec", - my @targets = ( - "$build/dist/$pkg-$version-1.src.rpm", - "$build/dist/$pkg-$version-1.noarch.rpm", - ); - push(@build_targets, @targets); - push(@install_targets, @targets); - }; - # We can get away with calling setup.py using a directory path # like this because we put a preamble in it that will chdir() # to the directory in which setup.py exists. - my $commands = qq(rm -rf $build/build $build/dist/* $build/dist/$project-$version - python $build/setup.py @setup_args + my $commands = qq(python $build/setup.py @setup_args python $build/setup.py bdist_wininst); + if ($rpm) { + chomp($cwd = `pwd`); + $topdir = "$cwd/$build/build/bdist.$platform/rpm"; + + $BUILDdir = "$topdir/BUILD/$pkg-$version"; + $RPMSdir = "$topdir/RPMS/noarch"; + $SOURCESdir = "$topdir/SOURCES"; + $SPECSdir = "$topdir/SPECS"; + $SRPMSdir = "$topdir/SRPMS"; + + $specfile = "$SPECSdir/$pkg-$version-1.spec"; + $sourcefile = "$SOURCESdir/$pkg-$version.$archsuffix"; + $rpm = "$RPMSdir/$pkg-$version-1.noarch.rpm"; + $src_rpm = "$SRPMSdir/$pkg-$version-1.src.rpm"; + + $env->InstallAs($specfile, "rpm/$pkg.spec"); + $env->InstallAs($sourcefile, $archive); + + if (! -d $BUILDdir) { + $cmd = "mkdir -p $BUILDdir; "; + } + my @targets = ( $rpm, $src_rpm ); + $env->Command(\@targets, $specfile, + "${cmd}rpm --define '_topdir $topdir' -ba %<"); + $env->Depends(\@targets, $sourcefile); + + push(@install_targets, @targets); + }; + if ($dh_builddeb && $fakeroot) { # Debian builds directly into build/dist, so we don't # need to add the .debs to the install_targets. |