#
# Make a new version of MPACK and put it in ~cad/lib.
# Also put a lint library (MPACK.LN) there.
#
# sccsid @(#)Makefile	1.22 MAGIC (Berkeley) 12/1/85
#
CC=cc
CADDIR = this_is_set_by_the_parent_Makefile_and_the_findcad_script
CAD=${CADDIR}
MAGICDIR=..
MODULE=mpack
H=	${MAGICDIR}/include
LIB=	${MAGICDIR}/lib
BIN=	${MAGICDIR}/bin
IFLAGS=	-I. -I${H}
RANLIB=`../:ranlib`

DFLAGS= `cat ../misc/DFLAGS`
CFLAGS= `cat ../misc/CFLAGS` ${DFLAGS} ${IFLAGS}
PCFLAGS= `cat ../misc/PCFLAGS` ${DFLAGS} ${IFLAGS}

LINTFLAGS=${IFLAGS} -u
LINTLIBS= ${LIB}/lint/utils.ln ${LIB}/lint/tiles.ln ${LIB}/lint/tech.ln \
	${LIB}/lint/database.ln ${LIB}/lint/drc.ln ${LIB}/lint/cif.ln \
	${LIB}/lint/lintfix.c

LNKS=	magicMain.o magicStubs.o mpackMain.o \
     	${LIB}/utils.o ${LIB}/tiles.o ${LIB}/tech.o ${LIB}/database.o \
	${LIB}/drc.o ${LIB}/cif.o

HDRS = mpack.h mpackint.h
SRCS = mpackMain.c magicMain.c magicStubs.c
OBJS = mpackMain.o magicMain.o magicStubs.o

.SUFFIXES: .po

.c.o:
	rm -f $*.o
	${CC} ${CFLAGS} -c $*.c

all:	libmpack.a

test: mpack.o test.c
	rm -f test
	${CC} ${CFLAGS} test.c mpack.o -o test

mpack.o: ${LNKS} 
	rm -f mpack.o
	ld -r ${LNKS} -o mpack.o

libmpack.a: mpack.o
	rm -f libmpack.a
	ar cr libmpack.a mpack.o
	${RANLIB} libmpack.a

${MODULE}.ln: ${SRCS} ${HDRS}
	rm -f ${MODULE}.ln
	lint ${LINTFLAGS} -C${MODULE} ${SRCS}
	mv llib-l${MODULE}.ln ${MODULE}.ln

installcad: install

install: installhdrs ${CAD}/lib/libmpack.a ${CAD}/lib/${MODULE}.ln ${CAD}/lib/mpack.h

installhdrs: ${CAD}/lib/mpack.h

${CAD}/lib/mpack.h: mpack.h
	rm -f ${CAD}/lib/mpack.h
	cp mpack.h ${CAD}/lib

${CAD}/lib/libmpack.a: libmpack.a
	cp libmpack.a ${CAD}/lib/libmpack.a
	${RANLIB} ${CAD}/lib/libmpack.a

${CAD}/lib/${MODULE}.ln: ${SRCS}
	../:lintlib ${MODULE} ${SRCS}

DPATH=	${DESTHOST}:${DESTDIR}

tarfile:;
	tar -cvf mpack.tar README INSTALL Makefile $(SRCS) $(HDRS)

lint:	${SRCS} ${LINTLIBS} ${HDRS}
	lint ${LINTFLAGS} ${SRCS} ${LINTLIBS} >lint


clean:
	-rm -f *.o  libmpack.a mpack.o

# include file dependencies for "magicMain.c"
magicMain.o:	magicMain.c
magicMain.o:	${H}/magic.h
magicMain.o:	${H}/hash.h
magicMain.o:	${H}/textio.h
magicMain.o:	${H}/geometry.h
magicMain.o:	${H}/graphics.h
magicMain.o:	${H}/tile.h
magicMain.o:	${H}/tech.h
magicMain.o:	${H}/database.h
magicMain.o:	${H}/drc.h
magicMain.o:	${H}/windows.h
magicMain.o:	${H}/dbwind.h
magicMain.o:	${H}/commands.h
magicMain.o:	${H}/signals.h
magicMain.o:	${H}/utils.h
magicMain.o:	${H}/runstats.h
magicMain.o:	${H}/cif.h
magicMain.o:	${H}/router.h
 
# include file dependencies for "magicStubs.c"
magicStubs.o:	magicStubs.c
magicStubs.o:	${H}/magic.h
magicStubs.o:	${H}/geometry.h
magicStubs.o:	${H}/tile.h
magicStubs.o:	${H}/database.h
magicStubs.o:	${H}/textio.h
magicStubs.o:	${H}/undo.h
 
# include file dependencies for "mpackMain.c"
mpack.o:	mpackMain.c
mpack.o:	${H}/magic.h
mpack.o:	${H}/geometry.h
mpack.o:	${H}/tile.h
mpack.o:	${H}/database.h
mpack.o:	mpack.h
mpack.o:	mpackint.h
mpack.o:	${H}/utils.h
mpack.o:	${H}/tech.h
mpack.o:	${H}/drc.h
mpack.o:	${H}/cif.h
mpack.o:	${H}/textio.h
 
