NETGENDIR = ..
MODULE=netgen
SRCS = actel.c ccode.c greedy.c ntk.c print.c \
 actellib.c embed.c hash.c netfile.c objlist.c query.c \
 anneal.c ext.c netcmp.c netgen.c pdutils.c random.c timing.c \
 bottomup.c flatten.c place.c spice.c \
 wombat.c

include ${NETGENDIR}/defs.mak

EXTRA_LIBS = ${MAIN_EXTRA_LIBS}

DFLAGS += -DNETGEN_VERSION="\"${VERSION}\"" -DNETGEN_DATE="\"`date`\"" ${GR_DFLAGS}
CFLAGS += ${GR_CFLAGS}
LIBS += -lm
CLEANS += tclnetgen.so tclnetgen.o netgen netcomp ntk2adl inetcomp \
	test.o xnetgen.o main.o

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

tclnetgen.so: tclnetgen.o libnetgen.o ${EXTRA_LIBS}
	${RM} $@
	${CC} ${CFLAGS} ${CPPFLAGS} -o $@ -shared tclnetgen.o libnetgen.o ${EXTRA_LIBS} -lc ${LIBS}

${BINDIR}/ntk2adl:
	${RM} $@
	${CP} ntk2adl $@

${BINDIR}/netcomp:
	${RM} $@
	${CP} netcomp $@

${BINDIR}/inetcomp:
	${RM} $@
	${CP} inetcomp $@

netgen: lib${MODULE}.o ${EXTRA_LIBS}
	@echo --- building $@
	${RM} $@
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c xnetgen.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c main.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} lib${MODULE}.o main.o xnetgen.o ${EXTRA_LIBS} -o $@ ${LIBS} ${GR_LIBS}

netcomp: lib${MODULE}.o ${EXTRA_LIBS}
	@echo --- building $@
	${RM} $@
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c $@.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} lib${MODULE}.o $@.o ${EXTRA_LIBS} -o $@ ${LIBS}

inetcomp: lib${MODULE}.o ${EXTRA_LIBS}
	@echo --- building $@
	${RM} $@
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c $@.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} lib${MODULE}.o $@.o ${EXTRA_LIBS} -o $@ ${LIBS}

ntk2adl: lib${MODULE}.o ${EXTRA_LIBS}
	@echo --- building $@
	${RM} $@
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} -c $@.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} lib${MODULE}.o $@.o ${EXTRA_LIBS} -o $@ ${LIBS}

install: ${BINDIR}/netgen ${BINDIR}/netcomp ${BINDIR}/inetcomp ${BINDIR}/ntk2adl

install-tcl: ${TCLDIR} ${TCLDIR}/tclnetgen.so

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

include ${NETGENDIR}/rules.mak
