aimk



AIMK(1PVM)                      PVM Version 3.4                     AIMK(1PVM)




NAME

       aimk - Portable make wrapper script


SYNOPSIS

       aimk [ -here ] [ make arguments ]



DESCRIPTION

       aimk  is a wrapper program for make, used to portably select options to
       build PVM and PVM applications on various machines.  Each port  of  PVM
       is  assigned an architecture name.  The name is used both during compi-
       lation (to conditionally switch in code) and at runtime (to  select  an
       executable or host).

       aimk  uses  the  value  of environment variable $PVM_ARCH if it is set,
       otherwise it calls $PVM_ROOT/pvmgetarch to determine  the  architecture
       name.   pvmgetarch is a script that sniffs at various parts of the sys-
       tem to determine the correct architecture name.  It is updated  as  new
       PVM ports are defined, and can be augmented locally.

       aimk determines the machine architecture and execs make, passing it the
       architecture and a configuration file along with arguments supplied  to
       aimk.   It  runs  make  in  a  subdirectory to prevent executables from
       becoming intermixed and to permit overlapping  compiles.   A  different
       makefile can be placed in each subdirectory or a single makefile, Make-
       file.aimk, can be shared between architectures.  Per-architecture defi-
       nitions  from  the  $PVM_ROOT/conf directory are appended to the common
       makefile.  aimk calls make is called in one of three ways, depending on
       what makefiles are present:


       i.    If $PVM_ARCH/Makefile or $PVM_ARCH/makefile exists, change direc-
             tory to $PVM_ARCH and exec make there:

             (cd $PVM_ARCH ; make PVM_ARCH=$PVM_ARCH < aimk args >)


       ii.   Else if Makefile.aimk exists, create $PVM_ARCH  directory  if  it
             doesn’t exist, then:

             (cd $PVM_ARCH ; \
             make -f $PVM_ROOT/conf/$PVM_ARCH.def \
             -f ../Makefile.aimk PVM_ARCH=$PVM_ARCH < aimk args >)


       iii.  Else just exec make in current directory:

             make PVM_ARCH=$PVM_ARCH < aimk args >



       If aimk succeeds in calling make, the exit status is that of make, oth-
       erwise it is 1.



FLAGS

       -here Forces aimk to run make in the current directory, e.g.   converts
             case i. to case iii.





EXAMPLES

       The  following  Makefile.aimk  file builds and installs hello, creating
       the PVM binary directory if it doesn’t exist.  It can  be  run  concur-
       rently  on  machines of different types, sharing the same source direc-
       tory.

             LDIR    =  -L$(PVM_ROOT)/lib/$(PVM_ARCH)
             PVMLIB  =  -lpvm3
             SDIR    =  ..
             BDIR    =  $(HOME)/pvm3/bin
             XDIR    =  $(BDIR)/$(PVM_ARCH)
             CFLAGS  =  -g -I$(PVM_ROOT)/include
             LIBS    =  $(LDIR) $(PVMLIB) $(ARCHLIB)

             $(XDIR):
                     - mkdir $(BDIR) $(XDIR)

             hello: $(SDIR)/hello.c $(XDIR)
                     $(CC) $(CFLAGS) -o $@ $(SDIR)/$@.c $(LIBS)
                     mv $@ $(XDIR)



ENVIRONMENT

           $PVM_ROOT   Root path of PVM installation.
           $PVM_ARCH   PVM architecture name for machine.



FILES

           $PVM_ROOT/lib/aimk                  The aimk program
           $PVM_ROOT/conf/$PVM_ARCH.def        Arch config file



SEE ALSO

       pvm_intro(1PVM)



                                 02 May, 1994                       AIMK(1PVM)

Man(1) output converted with man2html