File: makefile.vc

package info (click to toggle)
libamplsolver 0~20190702-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,184 kB
  • sloc: ansic: 40,472; asm: 76; sh: 72; fortran: 51; makefile: 16
file content (236 lines) | stat: -rw-r--r-- 7,500 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# /****************************************************************
# 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 Microsoft Visual C++ .

# Invoke with "nmake -f makefile.vc" .

CC = cl
RUNTIME = -MT
CFLAGS = -nologo -Ot1 $(RUNTIME)
# For DEC Alpha processors, use
# CFLAGS = -nologo -QAieee -Ot1 -DNo_Control87
# The math libraries associated with some (older?) versions of VC++
# return NaN for, e.g., trig functions of large numbers.  If you have
# such a library, add -DNANCHECK to the CFLAGS assignment.

# For use with lcc (http://www.cs.virginia.edu/~lcc-win32/), use
#   CC = lc
#   CFLAGS = -O -DNON_STDIO
# and change fpinitmt.obj to fpinit.obj below and in amplsolv.lbc
# (or change amplsolv.lbc to amplsolv.lcc below and obtain amplsolv.lcc
# from amplsolv.lbc by changing fpinitmt.obj to fpinit.obj).

# This makefile creates a Win32 amplsolv.lib that provides for catching
# "signals" from a scrolling-window shell, sw.exe, that is available in
# netlib's "ampl/student/mswin" directory.
# For this purpose, most objects can be compiled in "single-threaded"
# mode, while fpinitmt.obj, which catches the "signals", is
# automatically compiled as a multi-threaded object.  To link a solver
# with amplsolv.lib compiled in this way, it is necessary to link with
# the multi-threaded C library while suppressing automatic linking with
# the non-threaded library, by adding
#	libcmt.lib /link /NODEFAULTLIB:libc.lib
# to the end of the solver linking command.  This is illustrated in the
# solvers/*/makefile.vc files, such as solvers/examples/makefile.vc,
# solvers/minos/makefile.vc, and solvers/donlp2/makefile.vc.

.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
	lib -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 stderr.c

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

# For MS VC++ 6.0, details.c should contain
#	char sysdetails_ASL[] = "MS VC++ 6.0";

# When using the 64-bit Microsoft cl compiler (which does not correctly
# support the C standard), after "copy makefile.vc makefile" and making
# any desired adjustments to makefile (none are needed), invoke
#	nmake fpinitmt_cl64.obj amplsolv.lib
# or
#	nmake fpinitmt_cl64.obj
#	nmake

# The following rule makes fpinitmt.obj for Microsoft's 64-bit cl compiler.

fpinitmt_cl64.obj: fpinitmt.c arith.h
	$(CC) -c $(CFLAGS) -Dstrtoull=_strtoui64 -Fofpinitmt.obj fpinitmt.c