# Changes copyright (c) 1992-94 by Mark Hill, James Larus, and David Wood for
# the Wisconsin Wind Tunnel Project.
#
# ALL RIGHTS RESERVED.
#
# This software is furnished under a license and may be used and
# copied only in accordance with the terms of such license and the
# inclusion of the above copyright notice.  This software or any other
# copies thereof or any derivative works may not be provided or
# otherwise made available to any other persons.  Title to and ownership
# of the software is retained by Mark Hill, James Larus, and David Wood.
# Any use of this software must include the above copyright notice.
#
# THIS SOFTWARE IS PROVIDED "AS IS".  THE LICENSOR MAKES NO
# WARRANTIES ABOUT ITS CORRECTNESS OR PERFORMANCE.

.KEEP_STATE:

CM5_ROOT = /p/cm5

CFLAGS += -g -O2 -DINLINE="extern inline" -DSTACHE_BLK_SIZE=$(BLK_SIZE) \
          -DNO_TRACE -DNO_ASSERTIONS

CMLD = /p/wwt/scripts/cmld

TPPI_ROOT = $(WWT_ROOT)

WWTLIB_DIR = $(TPPI_ROOT)/lib

INC = -I$(TPPI_ROOT)/include/cm5/$(TEMPEST_IMPL) \
      -I$(TPPI_ROOT)/include/cm5/$(TEMPEST_IMPL)/utils \
      -I$(TPPI_ROOT)/include/cm5 \
      -I$(TPPI_ROOT)/include/prot/stache -I$(TPPI_ROOT)/include/cm5/sys \
      -I$(TPPI_ROOT)/include/prot/utils \
      -I$(TPPI_ROOT)/include/utils

CFLAGS  += -DWWT -DBLZ -DNO_FORK_SEMANTICS $(INC)
LDFLAGS += -n -dc -dp -e __wwt_startup_ -X 

LIBDIRS += -L$(WWTLIB_DIR) -L$(WWTLIB_DIR)/cm5/$(TEMPEST_IMPL) -L/p/wwt/lib
SP_LIBS += -ltempest_sp -l$(PROTOCOL)_sp -lcmna_sp -lm -lc
PE_LIBS += -ltempest_pe -l$(PROTOCOL)_pe -ltempest_pe -lutils_pe -lcmna_pe \
           -lm -lc

OBJS = em3d.o make_graph.o prot.o mcs_lock.o

#==============
# PARMACS stuff
#==============
MACDIR = $(WWTLIB_DIR)/cm5/$(TEMPEST_IMPL)
MACROS = $(MACDIR)/c.m4.local $(MACDIR)/c.m4.monmacs $(MACDIR)/c.m4.smacs
#==============

.SUFFIXES:
.SUFFIXES: .o .c .U .h .H

prot.o: prot.c
	gcc -mno-fpu -c $(CFLAGS) $*.c

%.o: %.c
	$(CC) -c $(CFLAGS) $*.c

%.o: $(SRCDIR)/%.c
	$(CC) -c $(CFLAGS) $(SRCDIR)/$*.c

%.c: %.U
	/bin/m4 $(MACROS) $*.U > $*.c

%.c: $(SRCDIR)/%.U
	/bin/m4 $(MACROS) $(SRCDIR)/$*.U > $*.c

%.h: %.H
	/bin/m4 $(MACROS) $*.H > $*.h

%.h: $(SRCDIR)/%.H
	/bin/m4 $(MACROS) $(SRCDIR)/$*.H > $*.h

$(TARGET): $(OBJS)
	$(CMLD) $(CMLDFLAGS) -gcc -o $(TARGET) $(LIBDIRS) $(SP_LIBS)  \
	 -pe $(OBJS) $(LIBDIRS) $(PE_LIBS)

rmtarget:
	rm -f $(TARGETDIR)/$(TARGET) $(TARGETDIR)/$(TARGET).Z

install: $(TARGET)
	cp $(TARGET).Z $(TARGETDIR)

em3d.o: em3d.c em3d.h mcs_lock.h prot.h
make_graph.o: make_graph.c em3d.h mcs_lock.h prot.h
prot.o: prot.c prot_single.c prot_vector.c prot_bulk.c mcs_lock.h prot.h
mcs_lock.o: mcs_lock.h

clean:
	/bin/rm -f $(TARGET) $(TARGET).pn $(TARGET).Z *.[coh] $(TARGET).no-vt   
