Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 compilation
     (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, other-
     wise it calls $PVM_ROOT/pvmgetarch  to  determine	the  architecture  name.
     pvmgetarch is a script that sniffs at various parts of the system to deter-
     mine the correct architecture name.  It is updated as new PVM ports are de-
     fined, and can be augmented locally.

     aimk determines the machine architecture and execs make, passing it the ar-
     chitecture  and a configuration file along with arguments supplied to aimk.
     It runs make in a subdirectory to prevent executables from becoming  inter-
     mixed  and  to  permit  overlapping  compiles.  A different makefile can be
     placed in each subdirectory or a single  makefile,  Makefile.aimk,  can  be
     shared   between  architectures.	Per-architecture  definitions  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  directory
	   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,  other-
     wise 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	concurrently  on
     machines of different types, sharing the same source directory.

	   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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=aimk&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help