The R Project SVN R

Rev

Rev 27902 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 27902 Rev 28080
Line 42... Line 42...
42
use Text::Wrap;
42
use Text::Wrap;
43
 
43
 
44
## don't buffer output
44
## don't buffer output
45
$| = 1;
45
$| = 1;
46
 
46
 
47
my $revision = ' $Revision: 1.73 $ ';
47
my $revision = ' $Revision: 1.74 $ ';
48
my $version;
48
my $version;
49
my $name;
49
my $name;
50
$revision =~ / ([\d\.]*) /;
50
$revision =~ / ([\d\.]*) /;
51
$version = $1;
51
$version = $1;
52
($name = $0) =~ s|.*/||;
52
($name = $0) =~ s|.*/||;
Line 122... Line 122...
122
    if($opt_binary) {
122
    if($opt_binary) {
123
	my $libdir = "${R::Vars::TMPDIR}/Rbuild.$$";
123
	my $libdir = "${R::Vars::TMPDIR}/Rbuild.$$";
124
	mkdir("$libdir", 0755)
124
	mkdir("$libdir", 0755)
125
	    or die "Cannot create directory '$libdir'\n";
125
	    or die "Cannot create directory '$libdir'\n";
126
 
126
 
127
	if(system("${R::Vars::R_CMD} INSTALL -l '$libdir' " .
127
	if(R_system("${R::Vars::R_CMD} INSTALL -l '$libdir' " .
128
		  "$INSTALL_opts '$pkg'")) {
128
		    "$INSTALL_opts '$pkg'")) {
129
	    $log->error("installation failed");
129
	    $log->error("installation failed");
130
	}
130
	}
131
	print("\n");
131
	print("\n");
132
	chdir($libdir);
132
	chdir($libdir);
133
 
133
 
Line 148... Line 148...
148
	}
148
	}
149
 
149
 
150
	if($WINDOWS) {
150
	if($WINDOWS) {
151
	    my $filename = "${pkgname}_" . $description->{"Version"};
151
	    my $filename = "${pkgname}_" . $description->{"Version"};
152
	    $log->message("building '$filename.zip'");
152
	    $log->message("building '$filename.zip'");
153
	    system("rm -f $startdir/$filename.zip");
153
	    R_system("rm -f $startdir/$filename.zip");
154
	    system("zip -r9X $startdir/$filename.zip " .
154
	    R_system("zip -r9X $startdir/$filename.zip " .
155
		   "$pkgs $topLevelFiles");
155
		     "$pkgs $topLevelFiles");
156
	    chdir($startdir);
156
	    chdir($startdir);
157
	} else {
157
	} else {
158
	    ## <FIXME>
158
	    ## <FIXME>
159
	    ## As R CMD INSTALL recursively copies all of 'inst', we at
159
	    ## As R CMD INSTALL recursively copies all of 'inst', we at
160
	    ## least need to make sure that CVS subdirs are excluded.
160
	    ## least need to make sure that CVS subdirs are excluded.
Line 276... Line 276...
276
	    ## workaround for paths in Cygwin tar
276
	    ## workaround for paths in Cygwin tar
277
	    $filepath =~ s+^([A-Za-x]):+/cygdrive/\1+;
277
	    $filepath =~ s+^([A-Za-x]):+/cygdrive/\1+;
278
	}
278
	}
279
	## <FIXME>
279
	## <FIXME>
280
	## Is option '-h' portable?
280
	## Is option '-h' portable?
281
	system("$tar chf $filepath $pkgname");
281
	R_system("$tar chf $filepath $pkgname");
282
	## </FIXME>
282
	## </FIXME>
283
	my $tmpdir = "${R::Vars::TMPDIR}/Rbuild.$$";
283
	my $tmpdir = "${R::Vars::TMPDIR}/Rbuild.$$";
284
	## (Same as $libdir for building a binary package.)
284
	## (Same as $libdir for building a binary package.)
285
	rmtree($tmpdir) if(-d $tmpdir);
285
	rmtree($tmpdir) if(-d $tmpdir);
286
	mkdir("$tmpdir", 0755)
286
	mkdir("$tmpdir", 0755)
287
	    or die "Cannot create directory '$tmpdir'\n";
287
	    or die "Cannot create directory '$tmpdir'\n";
288
	chdir($tmpdir);
288
	chdir($tmpdir);
289
	system("$tar xhf $filepath");
289
	R_system("$tar xhf $filepath");
290
	## Remove exclude files.
290
	## Remove exclude files.
291
	open(EXCLUDE, "< $exclude");
291
	open(EXCLUDE, "< $exclude");
292
	while(<EXCLUDE>) {
292
	while(<EXCLUDE>) {
293
	    rmtree(glob($_));
293
	    rmtree(glob($_));
294
	}
294
	}
Line 325... Line 325...
325
	$fh->print("Packaged: ",
325
	$fh->print("Packaged: ",
326
		   scalar(localtime()), "; ",
326
		   scalar(localtime()), "; ",
327
		   $user_name, "\n");
327
		   $user_name, "\n");
328
	$fh->close();
328
	$fh->close();
329
	## Finalize.
329
	## Finalize.
330
	system("$tar chf $filepath $pkgname");
330
	R_system("$tar chf $filepath $pkgname");
331
	chdir($startdir);
331
	chdir($startdir);
332
	rmtree($tmpdir);
332
	rmtree($tmpdir);
333
	system("gzip -9f $filename");
333
	R_system("gzip -9f $filename");
334
    }
334
    }
335
    $log->close();
335
    $log->close();
336
    print("\n");
336
    print("\n");
337
}
337
}
338
 
338
 
Line 351... Line 351...
351
	$log->message("cleaning src");
351
	$log->message("cleaning src");
352
	if($WINDOWS) {
352
	if($WINDOWS) {
353
	    ## a Windows Makefile.win might use $(RHOME)/src/gnuwin32/MkRules
353
	    ## a Windows Makefile.win might use $(RHOME)/src/gnuwin32/MkRules
354
	    $ENV{RHOME} = $ENV{R_HOME};
354
	    $ENV{RHOME} = $ENV{R_HOME};
355
	    if(-r "Makefile.win") {
355
	    if(-r "Makefile.win") {
356
		system("${R::Vars::MAKE} -f Makefile.win clean");
356
		R_system("${R::Vars::MAKE} -f Makefile.win clean");
357
	    } else {
357
	    } else {
358
		foreach my $file (<*.o $pkgname.a $pkgname.dll $pkgname.def>) {
358
		foreach my $file (<*.o $pkgname.a $pkgname.dll $pkgname.def>) {
359
		    unlink($file);
359
		    unlink($file);
360
		}
360
		}
361
		rmtree("_libs") if (-d "_libs");
361
		rmtree("_libs") if (-d "_libs");