summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpackaging/SGI/idb.pl156
1 files changed, 72 insertions, 84 deletions
diff --git a/packaging/SGI/idb.pl b/packaging/SGI/idb.pl
index ddbad80356..1da0c95a32 100755
--- a/packaging/SGI/idb.pl
+++ b/packaging/SGI/idb.pl
@@ -35,73 +35,37 @@ close IGNORES;
# get the names of all the binary files to be installed
open(MAKEFILE,"$SRCDIR/source/Makefile") || die "Unable to open Makefile\n";
-@makefile = <MAKEFILE>;
-@winbind_progs = grep(/^WINBIND_PROGS /,@makefile);
-@winbind_sprogs = grep(/^WINBIND_SPROGS /,@makefile);
-@winbind_lprogs = grep(/^WINBIND_LPROGS /,@makefile);
-@winbind_pam_progs = grep(/^WINBIND_PAM_PROGS /,@makefile);
-@sprogs = grep(/^SPROGS /,@makefile);
-@progs1 = grep(/^PROGS1 /,@makefile);
-@progs2 = grep(/^PROGS2 /,@makefile);
-@mprogs = grep(/^MPROGS /,@makefile);
-@progs = grep(/^PROGS /,@makefile);
-@scripts = grep(/^SCRIPTS /,@makefile);
-@codepagelist = grep(/^CODEPAGELIST/,@makefile);
+while (not eof(MAKEFILE)) {
+ $_ = <MAKEFILE>;
+ chomp;
+ last if /^# object file lists/ ;
+ if (/^EXEEXT/) {
+ /^.*=(.*)/;
+ $EXEEXT = $1;
+ }
+ if (/^srcdir/) {
+ /^.*=(.*)/;
+ $srcdir = $1;
+ }
+ if (/^builddir/) {
+ /^.*=(.*)/;
+ $builddir = $1;
+ }
+ if (/^SBIN_PROGS/) { @sbinprogs = get_line($_); }
+ if (/^BIN_PROGS1/) { @binprogs1 = get_line($_); }
+ if (/^BIN_PROGS2/) { @binprogs2 = get_line($_); }
+ if (/^BIN_PROGS3/) { @binprogs3 = get_line($_); }
+ if (/^BIN_PROGS/) { @binprogs = get_line($_); }
+ if (/^SCRIPTS/) { @scripts = get_line($_); }
+ if (/^TORTURE_PROGS/) { @tortureprogs = get_line($_); }
+ if (/^SHLIBS/) { @shlibs = get_line($_); }
+}
close MAKEFILE;
-if (@winbind_progs) {
- @winbind_progs[0] =~ s/^.*\=//;
- @winbind_progs = split(' ',@winbind_progs[0]);
-}
-if (@winbind_sprogs) {
- @winbind_sprogs[0] =~ s/^.*\=//;
- @winbind_sprogs = split(' ',@winbind_sprogs[0]);
-}
-if (@winbind_lprogs) {
- @winbind_lprogs[0] =~ s/^.*\=//;
- @winbind_lprogs = split(' ',@winbind_lprogs[0]);
-}
-if (@winbind_pam_progs) {
- @winbind_pam_progs[0] =~ s/^.*\=//;
- @winbind_pam_progs = split(' ',@winbind_pam_progs[0]);
-}
-if (@sprogs) {
- @sprogs[0] =~ s/^.*\=//;
- @sprogs[0] =~ s/\$\(\S+\)\s//g;
- @sprogs = split(' ',@sprogs[0]);
-}
-if (@progs) {
- @progs[0] =~ s/^.*\=//;
- @progs[0] =~ s/\$\(\S+\)\s//g;
- @progs = split(' ',@progs[0]);
-}
-if (@mprogs) {
- @mprogs[0] =~ s/^.*\=//;
- @mprogs = split(' ',@mprogs[0]);
-}
-if (@progs1) {
- @progs1[0] =~ s/^.*\=//;
- @progs1 = split(' ',@progs1[0]);
-}
-if (@progs2) {
- @progs2[0] =~ s/^.*\=//;
- @progs2 = split(' ',@progs2[0]);
-}
-if (@scripts) {
- @scripts[0] =~ s/^.*\=//;
- @scripts[0] =~ s/\$\(srcdir\)\///g;
- @scripts = split(' ',@scripts[0]);
-}
+# add my local files to the list of binaries to install
+@bins = sort byfilename (@sbinprogs,@binprogs,@binprogs1,@binprogs2,@binprogs3,@scripts,("sambalp","smbprint"));
-# we need to create codepages for the package
-@codepagelist[0] =~ s/^.*\=//;
-chdir "$SRCDIR/source";
-system("chmod +x ./script/installcp.sh");
-system("./script/installcp.sh . . ../packaging/SGI/codepages ./bin @codepagelist[0]");
-chdir $curdir;
-opendir(DIR,"$SRCDIR/packaging/SGI/codepages") || die "Can't open codepages directory";
-@codepage = sort readdir(DIR);
-closedir(DIR);
+@nsswitch = sort byfilename (@shlibs);
# install the swat files
chdir "$SRCDIR/source";
@@ -110,11 +74,6 @@ system("./script/installswat.sh ../packaging/SGI/swat ./ ../packaging/SGI/swat/
system("cp -f ../swat/README ../packaging/SGI/swat");
chdir $curdir;
-# add my local files to the list of binaries to install
-@bins = sort byfilename (@sprogs,@progs,@progs1,@progs2,@mprogs,@scripts,@winbind_progs,@winbind_sprogs,("/findsmb","/sambalp","/smbprint"));
-
-@nsswitch = sort byfilename (@winbind_lprogs,@winbind_pam_progs);
-
# get a complete list of all files in the tree
chdir "$SRCDIR/";
&dodir('.');
@@ -122,10 +81,12 @@ chdir $curdir;
# the files installed in docs include all the original files in docs plus all
# the "*.doc" files from the source tree
-@docs = sort byfilename grep (!/^docs\/$/ & (/^source\/.*\.doc$/ | /^docs\//),@allfiles);
-@docs = grep(!/htmldocs\/using_samba/, @docs);
+@docs = sort bynextdir grep (!/CVS/ & (/^source\/.*\.doc$/ | /^docs\/\w/),@allfiles);
+@docs = grep(!/htmldocs/ & !/manpages/, @docs);
@docs = grep(!/docbook/, @docs);
+@libfiles = sort byfilename (grep (/^source\/codepages\/\w/,@allfiles),("packaging/SGI/smb.conf","source/bin/libsmbclient.a","source/bin/libsmbclient.so"));
+
@swatfiles = sort grep(/^packaging\/SGI\/swat/, @allfiles);
@catman = sort grep(/^packaging\/SGI\/catman/ & !/\/$/, @allfiles);
@catman = sort bydirnum @catman;
@@ -147,10 +108,10 @@ print IDB "l 0000 root sys etc/rc2.d/S82winbind $SRCPFX/packaging/SGI $PKG.sw.ba
if ($PKG eq "samba_irix") {
print IDB "d 0755 root sys usr/relnotes/samba_irix $SRCPFX/packaging/SGI $PKG.man.relnotes\n";
- print IDB "f 0644 root sys usr/relnotes/samba_irix/TC build/TC $PKG.man.relnotes\n";
- print IDB "f 0644 root sys usr/relnotes/samba_irix/ch1.z build/ch1.z $PKG.man.relnotes\n";
- print IDB "f 0644 root sys usr/relnotes/samba_irix/ch2.z build/ch2.z $PKG.man.relnotes\n";
- print IDB "f 0644 root sys usr/relnotes/samba_irix/ch3.z build/ch3.z $PKG.man.relnotes\n";
+ print IDB "f 0644 root sys usr/relnotes/samba_irix/TC relnotes/TC $PKG.man.relnotes\n";
+ print IDB "f 0644 root sys usr/relnotes/samba_irix/ch1.z relnotes/ch1.z $PKG.man.relnotes\n";
+ print IDB "f 0644 root sys usr/relnotes/samba_irix/ch2.z relnotes/ch2.z $PKG.man.relnotes\n";
+ print IDB "f 0644 root sys usr/relnotes/samba_irix/ch3.z relnotes/ch3.z $PKG.man.relnotes\n";
}
else {
@copyfile = grep (/^COPY/,@allfiles);
@@ -207,7 +168,6 @@ while(@bins) {
print IDB "d 0755 root sys usr/samba/docs $SRCPFX/docs $PKG.man.doc\n";
while (@docs) {
$nextfile = shift @docs;
- next if ($nextfile eq "CVS");
($junk,$file) = split(/\//,$nextfile,2);
if (grep(/\/$/,$nextfile)) {
$file =~ s/\/$//;
@@ -223,14 +183,15 @@ print IDB "d 0755 root sys usr/samba/include $SRCPFX/packaging/SGI $PKG.sw.base\
print IDB "f 0644 root sys usr/samba/include/libsmbclient.h $SRCPFX/source/include/libsmbclient.h $PKG.sw.base\n";
print IDB "d 0755 root sys usr/samba/lib $SRCPFX/packaging/SGI $PKG.sw.base\n";
-print IDB "d 0755 root sys usr/samba/lib/codepages $SRCPFX/packaging/SGI $PKG.sw.base\n";
-while (@codepage) {
- $nextpage = shift @codepage;
- print IDB "f 0644 root sys usr/samba/lib/codepages/$nextpage $SRCPFX/packaging/SGI/codepages/$nextpage $PKG.sw.base nostrip \n";
+while (@libfiles) {
+ $nextfile = shift @libfiles;
+ ($file = $nextfile) =~ s/.*\///;
+ if ($file eq "smb.conf") {
+ print IDB "f 0644 root sys usr/samba/lib/$file $SRCPFX/$nextfile $PKG.sw.base config(suggest)\n";
+ } else {
+ print IDB "f 0644 root sys usr/samba/lib/$file $SRCPFX/$nextfile $PKG.sw.base nostrip \n";
+ }
}
-print IDB "f 0644 root sys usr/samba/lib/libsmbclient.a $SRCPFX/source/bin/libsmbclient.a $PKG.sw.base\n";
-print IDB "f 0644 root sys usr/samba/lib/libsmbclient.so $SRCPFX/source/bin/libsmbclient.so $PKG.sw.base\n";
-print IDB "f 0644 root sys usr/samba/lib/smb.conf $SRCPFX/packaging/SGI/smb.conf $PKG.sw.base config(suggest)\n";
print IDB "d 0755 lp sys usr/samba/printer $SRCPFX/packaging/SGI $PKG.sw.base\n";
print IDB "d 0755 lp sys usr/samba/printer/W32ALPHA $SRCPFX/packaging/SGI $PKG.sw.base\n";
@@ -365,12 +326,20 @@ sub dodir {
}
}
-sub byfilename {
+sub bynextdir {
($f0,$f1) = split(/\//,$a,2);
($f0,$f2) = split(/\//,$b,2);
$f1 cmp $f2;
}
+sub byfilename {
+ ($f0,$f1) = split(/.*\//,$a,2);
+ if ($f1 eq "") { $f1 = $f0 };
+ ($f0,$f2) = split(/.*\//,$b,2);
+ if ($f2 eq "") { $f2 = $f0 };
+ $f1 cmp $f2;
+}
+
sub bydirnum {
($f1 = $a) =~ s/^.*\///;
($f2 = $b) =~ s/^.*\///;
@@ -390,3 +359,22 @@ sub idbsort {
$f3 cmp $f4;
}
+sub get_line {
+ local ($line) = @_;
+
+ $line =~ s/^.*=//;
+ while (($cont = index($line,"\\")) > 0) {
+ $_ = <MAKEFILE>;
+ chomp;
+ s/^\s*/ /;
+ substr($line,$cont,1,$_);
+ }
+ $line =~ s/\$\(EXEEXT\)/$EXEEXT/g;
+ $line =~ s/\$\(srcdir\)/$srcdir/g;
+ $line =~ s/\$\(builddir\)/$builddir/g;
+ $line =~ s/\$\(\S*\)\s*//g;
+ $line =~ s/\s\s*/ /g;
+ @line = split(' ',$line);
+ return @line;
+}
+