#
# Mathematica interface to NetSolve
# 
#   $Id: Makefile,v 1.1.1.1 1999/04/09 19:19:22 nsadmin Exp $
#
#------------------- Custom section --------------------------
# Please tune the following paths according you environment

include ../../Makefile-def

NS_PATH		= $(NETSOLVE_SERVER_ROOT)
NSSRV_PATH      = $(NETSOLVE_SERVER_ROOT)
include $(NS_PATH)/conf/$(NETSOLVE_ARCH).def

# path to MathLink Development Kit directory containing
#   mathlink.h, libML.a, mprep
#
# this is a typical line for Mathematica v3
# MLDK		= $(HOME)/pack/MLDK301/AddOns/MathLink/DevelopersKits/HP-RISC/CompilerAdditions
# and this is for Mathematica v2.x
# MLDK		= $(HOME)/pack/MLDK-HP700
#
# but you better make another directory containing a subdirectory with name
#   $NETSOLVE_ARCH where you should place or link the files mathlink.h, libML.a, mprep

MLDK		= $(HOME)/pack/$(NETSOLVE_ARCH)/


CC 		= gcc
NSMATH_SRCS	= nsmath.tm.c nsmath.c nsmath_gateway.c ns_utils.c
NSMATH_OBJS    	= $(NSMATH_SRCS:.c=.o)

MPREP		= $(MLDK)/mprep

NSMATH_BINDIR   = $(NETSOLVE_MATH)/bin/$(NETSOLVE_ARCH)
NSMATH_OBJDIR   = $(NS_PATH)/obj/$(NETSOLVE_ARCH)
NSMATH_CFLAGS	= -g -Wall #-Ae (for HPUX cc to enter in ANSI mode)
NSMATH_DEFS	= -DDBGLOG -DLOGLEVEL=8
NSMATH_INC	= -I$(MLDK) -I$(NS_PATH)/include
NSMATH_LIBPATH	= -L$(NS_PATH)/lib/$(NETSOLVE_ARCH)
NSMATH_LIBS     = -lML $(CLIENTCOREOBJ) -lm

# You should not need to change anything below this line
#--------------- End of custom section -----------------------

VPATH = $(NSMATH_OBJDIR)

all:	$(NSMATH_BINDIR)/ns_math

.SUFFIXES:
.SUFFIXES: .o .c

$(NSMATH_BINDIR)/ns_math:	$(NSMATH_OBJS)
	@mkdir -p $(NSMATH_BINDIR)
	@echo "*** Linking " $@ "..."
	@cd $(NSMATH_OBJDIR) ;\
	$(CC) -L$(MLDK) $(NSMATH_LIBPATH) -o $@ $(NSMATH_OBJS) $(NSMATH_LIBPATH) $(NSMATH_LIBS)

ktest:		ktest.c
	$(CC) $(CFLAGS) $(DEFINES) $(NSMATH_INC) $(NSMATH_CFLAGS) $(NSMATH_DEFS) \
	-L$(MLDK) $(NSMATH_LIBPATH) -o $@ ktest.c -lML -lm

mathsrv:	CalcMathExpr.c
	$(CC) -c $(CFLAGS) $(DEFINES) $(NSMATH_INC) $(NSMATH_CFLAGS) $(NSMATH_DEFS) \
	-I$(NSSRV_PATH)/include CalcMathExpr.c -o $(NS_PATH)/lib/$(NETSOLVE_ARCH)/CalcMathExpr.o

nsmath.tm.c:	nsmath_tm
	@echo "*** Building" $@ ...
	@$(MPREP) nsmath_tm -o nsmath.tm.c

.c.o:
	@echo "*** Compiling " $@ "..."
	@$(CC) -c $(ARCHCFLAGS) $(DEFINES) $(NSMATH_INC) $(NSMATH_CFLAGS) $(NSMATH_DEFS) \
	$< -o $(NSMATH_OBJDIR)/$@

clean:
	@echo Cleaning object and temporary files ...
	-rm -f .depend core $(NSMATH_BINDIR)/ns_math nsmath.tm.c *~
	-cd $(NSMATH_OBJDIR) ; rm -f $(NSMATH_OBJS)
	-touch .depend
	@echo

depend:		clean
	-touch nsmath.tm.c
	@echo Making dependecies ...
	makedepend -f.depend $(INCLUDES) $(NSMATH_INC) $(NSMATH_SRCS)
	-rm -f nsmath.tm.c
	@echo
		
# next rule prevents automatically loading of Mathematica interface
# when used with math v 2.2
debug:
	mv $(HOME)/init.m $(HOME)/init.mm


# restores automatically loading of Mathematica interface
# valid for math version v 2.2
nodebug:
	mv $(HOME)/init.mm $(HOME)/init.m


include .depend
