ALL: lib workers iface

ITOOLSDIR = ..
LIBNAME  = $(LDIR)/tools$(COMM).a

CFLAGS   = $(COPT) $(OPT) -I$(ITOOLSDIR)
LDIR     = $(ITOOLSDIR)/libs/libs$(BOPT)$(PROFILE)/$(ARCH)
SOURCE   = args.c csync.c daemon.c dist.c fcall.c ialog.c init.c \
           mesh2d.c nbrs.c pcnt.c pdebug.c procset.c  mfort.c \
	   gray.c hosts.c basename.c pvfp.c manyarch.c rate.c
SOURCEC  = $(SOURCE)
SOURCEF  =
OBJS     = args.o csync.o daemon.o dist.o fcall.o ialog.o init.o \
           mesh2d.o nbrs.o pcnt.o pdebug.o procset.o  mfort.o \
	   gray.o hosts.o basename.o pvfp.o manyarch.o rate.o

# 
# To include an object file that depends on the architecture, use
# SOURCE = ... name$(ARCH) or name$(COMM).  We may want to provide a
# subarch to distinquish between things like intel/i860 and delta/paragon.
#

$(LIBNAME)($(OBJS)): hosts.h comm.h commnx.h commpvm.h commp4.h commpicl.h \
	commcm5.h commn3.h commdef.h logging.h


include $(ITOOLSDIR)/bmake/$(ARCH).$(BOPT)$(PROFILE)
include $(ITOOLSDIR)/bmake/$(ARCH)
include $(ITOOLSDIR)/bmake/$(ARCH).$(COMM)

init.c: initnx.c initp4.c initpicl.c initpvm.c initcm5.c initeui.c \
	fmain.c cmain.c
	touch init.c

#
# If it wasn't for EUI, we would need only a single version of these.  
# EUI (through mpcc) renames the global "main" to "mp_init".
workers: fmain.c cmain.c
	$(CC) -c $(CFLAGS) $(BASEOPT) -D$(ARCH) fmain.c cmain.c
	mv fmain.o $(LDIR)/fmain$(COMM).o
	mv cmain.o $(LDIR)/cmain$(COMM).o

iface:
	$(CC) -c $(CFLAGS) $(BASEOPT) picl2comm.c	
	mv picl2comm.o $(LDIR)/picl2comm$(COMM).o
	$(CC) -c $(CFLAGS) $(BASEOPT) nx2comm.c	
	mv nx2comm.o $(LDIR)/nx2comm$(COMM).o



