Kaydet (Commit) 6e1a8ad8 authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Bin Hamburg "build server" and BSCLIENT stuff

üst c8a12c16
...@@ -565,9 +565,6 @@ sub check_updatepack ...@@ -565,9 +565,6 @@ sub check_updatepack
push(@installer::globals::globallogfileinfo, $infoline); push(@installer::globals::globallogfileinfo, $infoline);
$infoline = "Failed to create directory $directory\n"; $infoline = "Failed to create directory $directory\n";
push(@installer::globals::globallogfileinfo, $infoline); push(@installer::globals::globallogfileinfo, $infoline);
if ( defined $ENV{'BSCLIENT'} && ( uc $ENV{'BSCLIENT'} eq 'TRUE' ) ) {
installer::exiter::exit_program("ERROR: No write access to SHIPDRIVE allthough BSCLIENT is set.", "check_updatepack");
}
} }
} }
else else
......
...@@ -162,159 +162,4 @@ sub execute_system_calls ...@@ -162,159 +162,4 @@ sub execute_system_calls
} }
} }
##############################################################
# Starting the build server with the generated system calls
##############################################################
sub start_build_server
{
my ( $targets ) = @_;
# preparing the directory structure
my $prj = $ENV{PRJ}; # for example "..";
my $platform = $ENV{INPATH}; # wntmsci10.pro, unxsols4.pro
my $platformpath = $prj . $packager::globals::separator . $platform;
if ( ! -d $platformpath ) { packager::files::create_directory($miscpath); }
my $miscpath = $platformpath . $packager::globals::separator . "misc";
if ( ! -d $miscpath ) { packager::files::create_directory($miscpath); }
$miscpath = $miscpath . $packager::globals::separator . "temp";
if ( -d $miscpath ) { packager::files::remove_complete_directory($miscpath); } # removing old files !
if ( ! -d $miscpath ) { packager::files::create_directory($miscpath); }
my $prjroot = ".." . $packager::globals::separator . ".." . $packager::globals::separator . ".." . $packager::globals::separator . ".."; # platform/misc/temp/uniquetempdir
my $makefilepath = $prj . $packager::globals::separator . "util" . $packager::globals::separator . "makefile.mk";
if ( ! $ENV{'PRJNAME'} ) { packager::exiter::exit_program("ERROR: Environment variable PRJNAME not set!", "do_broadcast"); }
my $prjname = $ENV{PRJNAME};
my $pkgformat = $ENV{PKGFORMAT};
my $prjdep = $prjname . "\\" . "util"; # always windows like path
my @targetdirs;
my @targetlines = ();
# iterating over all targets
for ( my $i = 0; $i <= $#{$targets}; $i++ )
{
my $target = ${$targets}[$i];
my $tempdir = $miscpath . $packager::globals::separator . $target;
$tempdir = packager::files::create_unique_directory ($tempdir);
@targetlines=();
push( @targetlines, "\ngenerated_target : $target\n\n"); # to be included into the makefile.mk
if ( defined $pkgformat ) {
push( @targetlines, "\n$target : ".'$$@{$(PKGFORMAT:^".")}'."\n\n"); # to be included into the makefile.mk
}
generate_makefile($tempdir, $makefilepath, $prjroot, $target, \@targetlines);
do_broadcast($tempdir, $prjname, $prj, $platform, $prjdep);
push @targetdirs, $tempdir;
}
}
##############################################################
# Generating the makefile in the temporary directory
##############################################################
sub generate_makefile
{
my ( $tempdir, $makefilepath, $prjroot, $target, $targetlines_ref ) = @_;
my $makefile = packager::files::read_file($makefilepath);
my @targetlines = ();
push( @targetlines, @{$targetlines_ref}); # to be included into the makefile.mk
$prjroot = $prjroot . "\n";
my $uniquename = $tempdir;
get_filename_from_path(\$uniquename);
$uniquename = $uniquename . "\n";
my $counter = 0;
my $increase = 1;
for ( my $i = 0; $i <= $#{$makefile}; $i++ )
{
if ( ${$makefile}[$i] =~ /^\s*TARGET\s*=.*/ ) { ${$makefile}[$i] = "TARGET=" . $uniquename; } # setting the new project root
if ( ${$makefile}[$i] =~ /^\s*PRJ\s*=.*/ ) { ${$makefile}[$i] = "PRJ=" . $prjroot; } # setting the new project root
if ( ${$makefile}[$i] =~ /^\s*\.INCLUDE[\t ]*:[\t ]*target.mk[\t ]*$/ ) { $increase = 0; } # no more increase of the counter
if ( $increase ) { $counter++; }
}
splice(@{$makefile}, $counter, 0, @targetlines); # including the new target lines at position $counter
my $newmakefilepath = $tempdir . $packager::globals::separator . "makefile.mk";
packager::files::save_file($newmakefilepath, $makefile);
}
##############################################################
# Generating the broadcasts for the build server
##############################################################
sub do_broadcast
{
use File::Temp;
my ( $tempdir, $prjname, $prj, $platform, $prjdep ) = @_;
# Syntax: cmd_bcst -s 18 "Version;Environment;Project;Verzeichnis;Restriction[;Abhaengigkeit1][;Abhaengigkeit n]..."
# Example: cmd_bcst -s 18 "SRC680;wntmsci10.pro;instsetoo_native;;instsetoo_native\bla1;instsetoo_native\util"
if ( ! $ENV{'WORK_STAMP'} ) { packager::exiter::exit_program("ERROR: Environment variable WORK_STAMP not set!", "do_broadcast"); }
my $workstamp = $ENV{WORK_STAMP};
my $prjdir = $tempdir;
$prjdir =~ s/$prj/$prjname/;
$prjdir =~ s/\//\\/g; # convert to windows path syntax
my $tempfiledir = $ENV{TMP};
$tempfiledir = $tempdir if ( ! defined $tempfiledir );
my ( $tmpfile_handle, $tmpfile_name ) = mkstemp( $tempfiledir . $packager::globals::separator . "packagerXXXXX");
if ( ! $tmpfile_handle ) {
packager::exiter::exit_program("ERROR: Couldn't open temporary file \"$tmpfile_name\"!", "do_broadcast");
}
print $tmpfile_handle "\"$workstamp;$platform;$prjname;$prjdir;nobase;$prjdep\"";
print "to tmpfile: \"$workstamp;$platform;$prjname;$prjdir;nobase;$prjdep\"\n";
close $tmpfile_handle;
my $returnvalue = system("cmd_bcst -s 18 \@$tmpfile_name");
print "cmd_bcst -s 18 \@$tmpfile_name\n";
unlink "$tmpfile_name";
if ( $returnvalue ) # an error occurred
{
if (!($packager::globals::ignoreerrors)) { packager::exiter::exit_program("ERROR: Packing not successful!", "do_broadcast"); }
}
}
##############################################################
# Returning the name of file or directory from complete path
##############################################################
sub get_filename_from_path
{
my ($longfilenameref) = @_;
if ( $packager::globals::isunix )
{
if ( $$longfilenameref =~ /^.*\/(\S.+\S?)/ )
{
$$longfilenameref = $1;
}
}
if ( $packager::globals::iswin )
{
if ( $$longfilenameref =~ /^.*\\(\S.+\S?)/ )
{
$$longfilenameref = $1;
}
}
}
1; 1;
...@@ -47,8 +47,7 @@ my $packagelist = packager::files::read_file($packager::globals::packlistname); ...@@ -47,8 +47,7 @@ my $packagelist = packager::files::read_file($packager::globals::packlistname);
my $targets = packager::work::create_package_todos($packagelist); my $targets = packager::work::create_package_todos($packagelist);
if ( $ENV{'BSCLIENT'} ) { packager::work::start_build_server($targets); } packager::work::execute_system_calls($targets);
else { packager::work::execute_system_calls($targets); }
if ( $packager::globals::logging ) if ( $packager::globals::logging )
{ {
......
...@@ -69,16 +69,6 @@ WRONG_SOURCEVERSION ...@@ -69,16 +69,6 @@ WRONG_SOURCEVERSION
# $(UPD)minor.mk could be empty as it's contents were already included from minor.mk # $(UPD)minor.mk could be empty as it's contents were already included from minor.mk
.INCLUDE : $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk .INCLUDE : $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk
.IF "$(BSCLIENT)"=="TRUE"
.IF "$(UPDATER)"!="YES"
incorrect_settings:
@echo "#"
@echo "#" ERROR: setsolar option -bsclient used but UPDATER=YES not set!
@echo "#"
force_dmake_to_error
.ENDIF
.ENDIF
.INCLUDE : udkversion.mk .INCLUDE : udkversion.mk
# --- reset defined Environments -------------------- # --- reset defined Environments --------------------
......
...@@ -2049,11 +2049,11 @@ ALLTAR : ALLDEP \ ...@@ -2049,11 +2049,11 @@ ALLTAR : ALLDEP \
$(SUBDIRS) : $(SUBDIRSDEPS) $(SUBDIRS) : $(SUBDIRSDEPS)
.IF "$(mk_tmp)$(BSCLIENT)"!="" .IF "$(mk_tmp)"!=""
$(SUBDIRS) .PHONY : $(SUBDIRS) .PHONY :
@echo ignoring SUBDIRS @echo ignoring SUBDIRS
.ELSE # "$(mk_tmp)$(BSCLIENT)"!="" .ELSE # "$(mk_tmp)"!=""
#.IF "$(PRJNAME)"!="sw" #.IF "$(PRJNAME)"!="sw"
.IF "$(GUI)"!="UNX" .IF "$(GUI)"!="UNX"
$(SUBDIRS) .PHONY : $(SUBDIRS) .PHONY :
...@@ -2067,7 +2067,7 @@ $(SUBDIRS) .PHONY : ...@@ -2067,7 +2067,7 @@ $(SUBDIRS) .PHONY :
cd $@; $(MAKECMD) subdmake=true $(MFLAGS) $(CALLMACROS) cd $@; $(MAKECMD) subdmake=true $(MFLAGS) $(CALLMACROS)
.ENDIF # "$(GUI)"!="UNX" .ENDIF # "$(GUI)"!="UNX"
#.ENDIF #.ENDIF
.ENDIF # "$(mk_tmp)$(BSCLIENT)"!="" .ENDIF # "$(mk_tmp)"!=""
.ENDIF # "$(SUBDIRS)"!="" .ENDIF # "$(SUBDIRS)"!=""
# workaround for strange dmake bug: # workaround for strange dmake bug:
......
...@@ -191,11 +191,7 @@ $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) : $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) ...@@ -191,11 +191,7 @@ $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) : $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE)
.IF "$(GUI)"=="WNT" .IF "$(GUI)"=="WNT"
$(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE)
.ELSE # "$(GUI)"=="WNT" .ELSE # "$(GUI)"=="WNT"
.IF "$(BSCLIENT)"=="TRUE"
$(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE)
.ELSE # "$(BSCLIENT)"!=""
$(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE)
.ENDIF # "$(BSCLIENT)"!=""
.ENDIF # "$(GUI)"=="WNT" .ENDIF # "$(GUI)"=="WNT"
.ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" .ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"==""
.IF "$(T_ADDITIONAL_FILES)"!="" .IF "$(T_ADDITIONAL_FILES)"!=""
...@@ -308,11 +304,7 @@ $(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_MD5)-$(TARFILE_NAME).unpack ...@@ -308,11 +304,7 @@ $(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_MD5)-$(TARFILE_NAME).unpack
$(COMMAND_ECHO)cd $(MISC) && $(TYPE:s/+//) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 $(COMMAND_ECHO)cd $(MISC) && $(TYPE:s/+//) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2
#.ENDIF # "$(my4ver:s/.//:s/,//)" >= "300" #.ENDIF # "$(my4ver:s/.//:s/,//)" >= "300"
.ELSE # "$(GUI)"=="WNT" .ELSE # "$(GUI)"=="WNT"
.IF "$(BSCLIENT)"=="TRUE"
$(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2
.ELSE # "$(BSCLIENT)"!=""
$(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2 $(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2
.ENDIF # "$(BSCLIENT)"!=""
.ENDIF # "$(GUI)"=="WNT" .ENDIF # "$(GUI)"=="WNT"
.IF "$(CONVERTFILES)"!="" .IF "$(CONVERTFILES)"!=""
$(COMMAND_ECHO)$(CONVERT) dos $(foreach,i,$(CONVERTFILES) $(MISC)/$(TARFILE_ROOTDIR)/$i) $(COMMAND_ECHO)$(CONVERT) dos $(foreach,i,$(CONVERTFILES) $(MISC)/$(TARFILE_ROOTDIR)/$i)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment