UNIX admin <[EMAIL PROTECTED]> wrote:

> > I did already write a rule file that allows the
> > schily makefilesystem to create 
> > Blastwave packages with no user intervention.
> > Yesterday, I did even do this
> > simultaneously on sparc and on x86 on a NFS mounted
> > directory.
> > 
> > The code will be published soon...
>
> It will be interesting to see how you solved this problem. Is this between 
> Solaris platform revisions only, or did you solve it for all UNIX platforms, 
> HP-UX and IRIX included?

The schily makefilesystem supports simultaneous builds on the same file tree 
(e.g. NFS mounted) on different plaforms since ~ 1994.

This is done by using platform dependend subdirectories for _all_ program 
output (e.g. compilation results). 

After the compilation has been done for the whole source, the results are 
installed in a prototype directory, $(SRCROOT)/$(PROTODIR) which may be 
e.g. ..../proto/i386-sunos5-cc

The final step for creating the packages is simple:

There is a directory with package definitions: .../pkgdesf/CSW/CSW*/
where * expande to the names of the packets. This is scanned by a sub-directory
loop make rule. Every packget includes a simple Makefile:

#ident %W% %E% %Q%
###########################################################################
# Sample makefile for creating SVr4 packages
###########################################################################
SRCROOT=        ../../..
RULESDIR=       RULES
include         $(SRCROOT)/$(RULESDIR)/rules.top
###########################################################################

include         $(SRCROOT)/$(RULESDIR)/rules.csw
###########################################################################
include         $(SRCROOT)/$(RULESDIR)/rules.pkg
###########################################################################

and rules.csw includes the rules for creating the packages:

PKG     :sh=    sed -n 's/^PKG=//p' pkginfo
VERSION :sh=    sed -n 's/^VERSION=\([^,]*\).*/\1/p' pkginfo
NAME    :sh=    sed -n 's/^NAME=//p' pkginfo|awk '{print $1}'
OS_NAME :sh=    uname -s
DATE    :sh=    date '+REV=%Y.%m.%d'

VENDOR=         -CSW
PROTOTYPE=      prototype

$(SRCROOT)/packages/$(OARCH):
                $(MKDIR) -p $@

all: $(SRCROOT)/packages/$(OARCH)
        pkgmk -o -b `pwd`/$(SRCROOT)/$(PROTODIR)/$(INS_BASE) -d 
$(SRCROOT)/packages/$(OARCH) -a $(P_ARCH) \
                        -v $(VERSION),$(DATE) -f $(PROTOTYPE) 
BASEDIR=$(INS_BASE)
        pkgtrans -s $(SRCROOT)/packages/$(OARCH) \
                        
$(NAME)-$(VERSION),$(DATE)-$(OS_NAME)$(OSREL)-$(P_ARCH)$(VENDOR).pkg $(PKG)
        gzip -9f 
$(SRCROOT)/packages/$(OARCH)/$(NAME)-$(VERSION),$(DATE)-$(OS_NAME)$(OSREL)-$(P_ARCH)$(VENDOR).pkg

Jörg

-- 
 EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin
       [EMAIL PROTECTED]                (uni)  
       [EMAIL PROTECTED]     (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to