# map -- mapping and library package 
#----------------------------------------------------------------------

CAD	= /net/eros/octtools/pmax
MIS	= /net/beeblebrox/misII/mis2.2/src

LINTCREATEFLAG = -C
HOST	= beeblebrox
DIST	= /net/beeblebrox/misII/mis2.2/src

P	= map
PSRC	= map_delay.c bin_arrival.c bin_area.c bin_area_del.c \
	  bin_flatten.c bin_power.c bin_fanout.c \
	  bin_required.c gate_link.c bin_delay.c bin_util.c \
	  com_map.c addinv.c prim.c library.c libutil.c match.c tree.c \
	  treesize.c treemap.c maputil.c chkform.c hackit.c
POBJ	= map_delay.o bin_arrival.o bin_area.o bin_area_del.o \
	  bin_flatten.o bin_power.o bin_fanout.o \
	  bin_required.o gate_link.o bin_delay.o bin_util.o \
	  com_map.o addinv.o prim.o library.o libutil.o match.o tree.o \
	  treesize.o treemap.o maputil.o chkform.o hackit.o
PHDR	= map.h map_int.h library.h lib_int.h
MISC    = $(P).doc library.doc Makefile map.1

TARGET	= misII
TARGETPG= misII-pg

LIBS	= $(MIS)/lib/libmisII.a \
	  $(CAD)/lib/liboh.a \
	  $(CAD)/lib/liboct.a \
	  $(CAD)/lib/libst.a \
	  $(CAD)/lib/libtr.a \
	  $(CAD)/lib/liberrtrap.a \
	  $(CAD)/lib/libuprintf.a \
	  $(CAD)/lib/libutility.a \
	  $(CAD)/lib/libmm.a \
	  $(CAD)/lib/libport.a

LIBSG	= $(MIS)/lib/libmisII-g.a \
	  $(CAD)/lib/liboh-g.a \
	  $(CAD)/lib/liboct-g.a \
	  $(CAD)/lib/libst-g.a \
	  $(CAD)/lib/libtr-g.a \
	  $(CAD)/lib/liberrtrap-g.a \
	  $(CAD)/lib/libuprintf-g.a \
	  $(CAD)/lib/libutility-g.a \
	  $(CAD)/lib/libmm-g.a \
	  $(CAD)/lib/libport-g.a

LIBSPG	= $(MIS)/lib/libmisII-pg.a \
	  $(CAD)/lib/liboh-pg.a \
	  $(CAD)/lib/liboct-pg.a \
	  $(CAD)/lib/libst-pg.a \
	  $(CAD)/lib/libtr-pg.a \
	  $(CAD)/lib/liberrtrap-pg.a \
	  $(CAD)/lib/libuprintf-pg.a \
	  $(CAD)/lib/libutility-pg.a \
	  $(CAD)/lib/libmm-pg.a \
	  $(CAD)/lib/libport-pg.a

LINTLIBS= $(MIS)/lib/llib-lmisII.ln	\
	  $(CAD)/lib/llib-loct.ln

INCLUDE	= -I../include -I$(MIS)/include -I$(CAD)/include
CFLAGS	= -g $(INCLUDE) 
LDFLAGS	= -g
LINTFLAGS =  $(INCLUDE) ${LINTEXTRAS}

SABER	= $(MIS)/lib/.saberinit

#----------------------------------------------------------------------

$(TARGET): $(PHDR) $(POBJ) $(LIBS) 
	$(CC) $(LDFLAGS) -o $(TARGET) $(POBJ) $(LIBS) -lm -lX11

saber: $(POBJ) $(LIBS) 
	#load $(LDFLAGS) $(POBJ) $(LIBS) -lm -lXMenu -lX11

$(TARGETPG): _force
	make "CFLAGS = -pg -O $(INCLUDE)" $(POBJ)
	$(CC) -pg -o $(TARGETPG) $(POBJ) $(LIBSPG) -lm -lX11 -lsock -lbsd

lint: $(PSRC) $(PHDR) $(HDR)
	lint $(LINTFLAGS) $(PSRC) $(LINTLIBS)

install: lib$(P).a llib-l$(P).ln

lib$(P).o: $(POBJ)
	@rm -f lib$(P).o
	ld -r -o lib$(P).o $(POBJ)

lib$(P).a: $(POBJ)
	@rm -f lib$(P).a
	ar cr lib$(P).a $(POBJ)
	ranlib lib$(P).a

llib-l$(P).ln: $(PSRC) $(PHDR)
	lint $(LINTFLAGS) ${LINTCREATEFLAG}$(P) -n $(PSRC)

.saberinit: Makefile
	@echo source "$(SABER)" >.saberinit
	@echo load $(INCLUDE) $(MIS)/lib/mis.o $(POBJ) $(LIBS) -lm -lX11 >>.saberinit

dist:
	rdist -Richw $(PSRC) $(PHDR) $(MISC) $(HOST):$(DIST)/$(P)
	rdist -Richw $(P).1 $(HOST):$(DIST)/lib/help
	 
clean:
	rm -f $(TARGET) $(TARGETPG) *.a *.ln *.o \
	    [Tt]ags [Mm]ake.out malloc.out gmon.out lint .saberinit leak

tags: _force
	@for i in $(PSRC) $(PHDR); do			\
	    cwd=`pwd`; ctags -a $$cwd/$$i;		\
	done;

strip_depend:
	sed '/^#--DO NOT CHANGE ANYTHING AFTER THIS LINE/,$$d' Makefile >mktemp
	mv mktemp Makefile

depend:
	sed '/^#--DO NOT CHANGE ANYTHING AFTER THIS LINE/,$$d' Makefile >mktemp
	echo '#--DO NOT CHANGE ANYTHING AFTER THIS LINE' >>mktemp
	$(CAD)/bin/cc-M $(INCLUDE) $(PSRC) | \
	    sed 's|$(CAD)|$$(CAD)|g' | \
	    grep -v '/usr/include' >>mktemp
	mv mktemp Makefile

#-------------------------- IBM 3090 support -----------------
IBMHOST	= beeblebrox
IBMDIST	= /net/beeblebrox/misII/vax/src
ibmdist: $(PSRC) $(PHDR)
	rdist -Richw $(PSRC) $(PHDR) $(IBMHOST):$(IBMDIST)
#-------------------------------------------------------------
_force:

