#
# rcsid $Header: /ufs/repository/magic/magic/Makefile,v 1.7 2001/09/26 18:24:39 tim Exp $
#

MODULE   = magic
MAGICDIR = ..
SRCS     = magicTop.c

include ${MAGICDIR}/defs.mak

EXTRA_LIBS = ${MAGICDIR}/cmwind/libcmwind.o \
            ${MAGICDIR}/commands/libcommands.o  ${MAGICDIR}/database/libdatabase.o \
            ${MAGICDIR}/dbwind/libdbwind.o ${MAGICDIR}/drc/libdrc.o  \
            ${MAGICDIR}/debug/libdebug.o ${MAGICDIR}/extract/libextract.o \
            ${MAGICDIR}/graphics/libgraphics.o ${MAGICDIR}/macros/libmacros.o \
	    ${MAGICDIR}/main/libmain.o ${MAGICDIR}/misc/libmisc.o \
	    ${MAGICDIR}/parser/libparser.o ${MAGICDIR}/select/libselect.o \
	    ${MAGICDIR}/signals/libsignals.o ${MAGICDIR}/tech/libtech.o \
	    ${MAGICDIR}/textio/libtextio.o ${MAGICDIR}/tiles/libtiles.o \
	    ${MAGICDIR}/undo/libundo.o ${MAGICDIR}/windows/libwindows.o \
	    ${MAGICDIR}/wiring/libwiring.o ${MAGICDIR}/resis/libresis.o \
	    ${MAGICDIR}/sim/libsim.o ${MAGICDIR}/netlist/libnetlist.o \
	    ${MAGICDIR}/netmenu/libnetmenu.o ${MAGICDIR}/plow/libplow.o \
	    ${MAGICDIR}/utils/libutils.o ${MAIN_EXTRA_LIBS}

BITMAPS = up.xbm down.xbm left.xbm right.xbm zoom.xbm
DEST_XBM = $(BITMAPS:%=${TCLDIR}/bitmaps/%)

DFLAGS += -DMAGIC_VERSION="\"${VERSION}\"" -DMAGIC_DATE="\"`date`\""
LIBS   += ${GR_LIBS} ${READLINE_LIBS} -lm ${LD_EXTRA_LIBS} ${TOP_EXTRA_LIBS}
CLEANS += tclmagic${SHDLIB_EXT} libtclmagic${SHDLIB_EXT}.a tclmagic.o \
		magic.sh magic.tcl proto.magic

main: magic proto.magic

tcl-main: tclmagic${SHDLIB_EXT} magic.tcl magic.sh proto.magic

tclmagic.o: tclmagic.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} tclmagic.c -c -o tclmagic.o

tclmagic${SHDLIB_EXT}: tclmagic.o ${EXTRA_LIBS} magic.tcl.in magic.sh.in
	@echo --- making magic Tcl library \(tclmagic${SHDLIB_EXT}\)
	${RM} tclmagic${SHDLIB_EXT}
	${CC} ${CFLAGS} ${CPPFLAGS} -o $@ ${LDDL_FLAGS} tclmagic.o ${EXTRA_LIBS} -lc ${LIBS}

magic.tcl: magic.tcl.in
	sed -e /TCL_DIR/s%TCL_DIR%${TCLDIR}%g  \
            -e /SHDLIB_EXT/s%SHDLIB_EXT%${SHDLIB_EXT}%g magic.tcl.in > magic.tcl

magic.sh: magic.sh.in
	sed -e /TCL_DIR/s%TCL_DIR%${TCLDIR}%g magic.sh.in > magic.sh

proto.magic:
	${M4} ${GR_DFLAGS} ${DFLAGS} proto.magic.m4 > proto.magic

install: ${BINDIR}/magic ${SYSDIR}/.magic ${SYSDIR}/magicps.pro

install-tcl: ${BINDIR}/magic.sh ${TCLDIR}/magic.tcl ${TCLDIR}/tclmagic${SHDLIB_EXT} ${SYSDIR}/.magic ${SYSDIR}/magicps.pro ${DEST_XBM}

${TCLDIR}/tclmagic${SHDLIB_EXT}: tclmagic${SHDLIB_EXT} magic.tcl.in
	${RM} ${TCLDIR}/tclmagic${SHDLIB_EXT} magic.tcl
	${CP} tclmagic${SHDLIB_EXT} ${TCLDIR}/tclmagic${SHDLIB_EXT}

${TCLDIR}/magic.tcl: magic.tcl tkcon.tcl wrapper.tcl tkshell.tcl console.tcl techbuilder.tcl
	${RM} ${TCLDIR}/.wishrc ${TCLDIR}/magic.tcl \
		${TCLDIR}/tkcon.tcl ${TCLDIR}/wrapper.tcl \
		${TCLDIR}/tkshell.tcl ${TCLDIR}/console.tcl \
		${TCLDIR}/techbuilder.tcl
	${CP} magic.tcl ${TCLDIR}/magic.tcl
	(cd ${TCLDIR}; ln -s magic.tcl .wishrc)
	${CP} tkcon.tcl ${TCLDIR}/tkcon.tcl
	${CP} tkshell.tcl ${TCLDIR}/tkshell.tcl
	${CP} wrapper.tcl ${TCLDIR}/wrapper.tcl
	${CP} console.tcl ${TCLDIR}/console.tcl
	${CP} techbuilder.tcl ${TCLDIR}/techbuilder.tcl

${BINDIR}/magic.sh: magic.sh
	${RM} ${BINDIR}/magic.sh ${BINDIR}/magic
	${CP} magic.sh ${BINDIR}/magic
	(cd ${BINDIR}; chmod 0755 magic)

${TCLDIR}/bitmaps/%: bitmaps/%
	${RM} ${TCLDIR}/bitmaps/$*
	${CP} bitmaps/$* ${TCLDIR}/bitmaps/$*

${SYSDIR}/.magic: proto.magic
	${RM} ${SYSDIR}/.magic
	${CP} proto.magic ${SYSDIR}/.magic

${SYSDIR}/magicps.pro: magicps.pro
	${RM} ${SYSDIR}/magicps.pro
	${CP} magicps.pro ${SYSDIR}/magicps.pro

include ${MAGICDIR}/rules.mak
