# /****************************************************************
# Copyright (C) 1997-2001 Lucent Technologies
# All Rights Reserved
#
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose and without fee is hereby
# granted, provided that the above copyright notice appear in all
# copies and that both that the copyright notice and this
# permission notice and warranty disclaimer appear in supporting
# documentation, and that the name of Lucent or any of its entities
# not be used in advertising or publicity pertaining to
# distribution of the software without specific, written prior
# permission.
#
# LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
# IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
# THIS SOFTWARE.
# ****************************************************************/

# For making amplsolv.lib with lcc (http://www.cs.virginia.edu/~lcc-win32/) .

# Invoke with "make -f makefile.lc" .

CC = lc
## Do not use -O with lcc; mach.c, rops.c and probably rops2.c (at least)
## are miscompiled with -O .
CFLAGS = -DNON_STDIO

.c.obj:
	$(CC) -c $(CFLAGS) $*.c

all: arith.h stdio1.h amplsolv.lib funcadd0.obj

a = \
	asldate.obj \
	atof.obj \
	auxinfo.obj \
	avltree.obj \
	b_search.obj \
	basename.obj \
	bscanf.obj \
	com2eval.obj \
	comeval.obj \
	con1ival.obj \
	con2ival.obj \
	con2val.obj \
	conadj.obj \
	conpval.obj \
	conscale.obj \
	conval.obj \
	degree.obj \
	derprop.obj \
	details.obj \
	dtoa1.obj \
	duthes.obj \
	dynlink.obj \
	f_read.obj \
	fg_read.obj \
	fg_write.obj \
	fgh_read.obj \
	fpecatch.obj \
	fpinitmt.obj \
	fullhes.obj \
	func_add.obj \
	funcadd1.obj \
	g_fmt.obj \
	genrowno.obj \
	getenv.obj \
	getstub.obj \
	htcl.obj \
	indic_cons.obj \
	jac0dim.obj \
	jac2dim.obj \
	jacdim.obj \
	jacinc.obj \
	jacinc1.obj \
	libnamsave.obj \
	mach.obj \
	mainexit.obj \
	mip_pri.obj \
	misc.obj \
	mpec_adj.obj \
	mqpcheckv.obj \
	mypow.obj \
	names.obj \
	nl_obj.obj \
	nqpcheck.obj \
	nqpcheckZ.obj \
	obj2val.obj \
	obj_adj.obj \
	obj_prec.obj \
	objconst.obj \
	objval.obj \
	objval_.obj \
	op_type.obj \
	pfg_read.obj \
	pfghread.obj \
	printf.obj \
	pshvprod.obj \
	punknown.obj \
	qp_read.obj \
	qpcheck.obj \
	qpcheckZ.obj \
	qsortv.obj \
	readsol.obj \
	repwhere.obj \
	rops.obj \
	rops2.obj \
	sigcatch.obj \
	sos_add.obj \
	sphes.obj \
	sscanf.obj \
	stderr.obj \
	studchk0.obj \
	suf_sos.obj \
	value.obj \
	writesol.obj \
	wrtsol_.obj \
	ws_desc.obj \
	wsu_desc.obj \
	x2check.obj \
	xectim.obj \
	xp1known.obj \
	xp2known.obj

amplsolv.lib: $a
	lcclib -out:amplsolv.lib @amplsolv.lbc

Aslh = arith.h asl.h funcadd.h stdio1.h
auxinfo.obj libnamsave.obj: funcadd.h stdio1.h
mach.obj: arith.h
avltree.obj bscanf.obj conscale.obj derprop.obj dynlink.obj func_add.obj\
 funcadd.obj funcadd1.obj funcaddk.obj funcaddr.obj funcadd0.obj g_fmt.obj\
 genrowno.obj jac0dim.obj jacdim.obj jac2dim.obj jacinc.obj jacinc1.obj names.obj\
 obj_prec.obj objval_.obj sigcatch.obj sjac0dim.obj studchk0.obj: $(Aslh)
avltree.obj: avltree.h
repwhere.obj: errchk.h $(Aslh)
xp1known.obj: asl_pfg.h psinfo.h nlp.h $(Aslh)
duthes.obj fullhes.obj htcl.obj sphes.obj: asl_pfgh.h psinfo.h nlp2.h $(Aslh)
getstub.obj value.obj writesol.obj wrtsol_.obj: getstub.h $(Aslh)
com2eval.obj con2ival.obj con2val.obj obj2val.obj\
 x2check.obj: jac2dim.h nlp2.h $(Aslh)
conpval.obj pshvprod.obj xp2known.obj:\
	jacpdim.h asl_pfgh.h psinfo.h nlp2.h $(Aslh)
comeval.obj con1ival.obj conval.obj degree.obj mip_pri.obj objval.obj qpcheck.obj\
 qpcheckZ.obj readsol.obj: nlp.h $(Aslh)
indic_cons.obj misc.obj mpec_adj.obj nl_obj.obj obj_adj.obj sos_add.obj suf_sos.obj:\
	nlp.h nlp2.h asl_pfg.h asl_pfgh.h psinfo.h $(Aslh)
nl_obj.obj nqpcheck.obj nqpcheckZ.obj obj_adj.obj objconst.obj: obj_adj.h
op_type.obj: op_type.hd op_typeb.hd
fgh_read.obj: jac2dim.h opnos.hd op_type.hd dvalue.hd nlp2.h $(Aslh)
rops.obj: nlp.h errchk.h $(Aslh)
rops2.obj: nlp2.h errchk.h $(Aslh)
conadj.obj fg_write.obj qp_read.obj: nlp.h r_opn.hd $(Aslh)
f_read.obj fg_read.obj: fg_read.c nlp.h r_opn.hd dvalue.hd $(Aslh)
objconst.obj: r_opn0.hd nlp.h nlp2.h asl_pfg.h asl_pfgh.h psinfo.h $(Aslh)
pfg_read.obj: asl_pfg.h r_opn0.hd dvalue.hd nlp.h psinfo.h $(Aslh)
pfghread.obj: jacpdim.h asl_pfgh.h opnos.hd r_opn0.hd dvalue.hd\
	psinfo.h nlp2.h $(Aslh)
nqpcheck.obj nqpcheckZ.obj: nlp.h r_qp.hd $(Aslh)
printf.obj punknown.obj sscanf.obj: stdio1.h
dtoa1.obj: dtoa.c arith.h stdio1.h
mqpcheckv.obj: mqpcheckv.c avltree.h nlp.h obj_adj.h r_qp.hd

# Use CFLAGS in compiling arithchk.c in case something in CFLAGS affects
# the number of bits in integral data types.  (It's probably best not to
# add such options to CFLAGS.)

XBINLIBS =

# If your compiler requires libraries that it does not supply automatically
# (i.e., if your compiler is broken, as reportedly Microsoft's VC++ 7 is:
# it is said to need "XBINLIBS = bufferoverflowu.lib"), modify the above
# XBINLIB assignment suitably, or invoke
#   "nmake ... XBINLIBS=..."

arith.h: arithchk.c
	comptry.bat $(CC) $(CFLAGS) -DNO_FPINIT arithchk.c $(XBINLIBS)
	arithchk >arith.h
	del arithchk.exe
	del arithchk.obj

stdio1.h: stdio1.h0
	copy stdio1.h0 stdio1.h

stderr.obj: stderr.c
	$(CC) -c $(CFLAGS) -DSTDERR=stdout -D_fdopen=fdopen stderr.c

xectim.obj: xectim.c
	$(CC) -c $(CFLAGS) -D__STDC__ -DNO_RUSAGE xectim.c

details.c: details.c0
	 echo create details.c by suitably editing details.c0

# For LCC, details.c should contain details of the lcc version, such as
#	char sysdetails_ASL[] = "lcc-win32 version 3.8";

fpinitmt.obj: fpinitmt.c
	$(CC) -c -D_exception=exception -DKeep_errno $(CFLAGS) fpinitmt.c

func_add.obj: func_add.c
	$(CC) -c -DNo_popen_or_pclose $(CFLAGS) func_add.c
