15
15
# Compatibility defines (usually in conf/*.def):
16
16
# FDSETPATCH if system includes don't have fd_set stuff
17
# USESTRERROR if sys_errlist, sys_nerr not public, use strerror()
17
18
# HASERRORVARS if errno, sys_nerr, sys_errlist already declared
18
19
# HASSTDLIB if system has stdlib.h
19
20
# NEEDENDIAN to include <endian.h>
27
28
# NOWAIT3 if system doesn't have wait3()
28
29
# NOWAITPID if system doesn't have waitpid() either
29
30
# RSHCOMMAND= for rsh command other than "/usr/ucb/rsh"
31
# (can override using PVM_RSH environment variable)
30
32
# SHAREDTMP if /tmp is shared between machines (yecch)
31
33
# SOCKADHASLEN if struct sockaddr has an sa_len field
32
34
# SYSVBFUNC if system uses memcpy() instead of bcopy(), etc.
49
51
# STATISTICS to enable collection of statistics in pvmd
50
52
# TIMESTAMPLOG to enable timestamps in pvmd log file
51
53
# USE_PVM_ALLOC to enable instrumented malloc functs (for pvm debug)
54
# USE_GNU_REGEX to enable use of GNU Regex for Mbox Lookup
55
# -> requires installation of GNU regex, as well as
56
# modifying the following defines (see below):
57
# REGEXCONF, REGEXCONFOS2, REGEXOBJS
56
62
SDIR = $(PVMDIR)/src
57
63
LIBDIR = $(PVMDIR)/lib/$(PVM_ARCH)
60
66
#OPTIONS = -DCLUMP_ALLOC
61
67
#OPTIONS = -DSTATISTICS
63
69
OPTIONS = -DCLUMP_ALLOC -DSTATISTICS \
64
70
-DTIMESTAMPLOG -DSANITY
65
CFLAGS = $(ARCHCFLAGS) $(CFLOPTS) $(OPTIONS) \
67
-DARCHCLASS=\"$(PVM_ARCH)\" -DIMA_$(PVM_ARCH)
71
CFLAGS = $(ARCHCFLAGS) $(CFLOPTS) $(OPTIONS) -I$(PVMDIR)/include \
72
-DARCHCLASS=\"$(PVM_ARCH)\" -DIMA_$(PVM_ARCH)
69
75
LIBPVM = $(LIBPREFIX)pvm3
78
# GNU Regular Expression Defines - set if needed
82
#REGEXCONF = regexconfig
85
#REGEXCONFOS2 = regexconfig-os2
88
#REGEXOBJS = pvmregex.o regex.o
91
# PVM Daemon & Library Objects
173
199
MPPTARGETS = $(LIBDIR)/pvmd3-mpp \
174
200
$(LIBDIR)/$(LIBPVM).a $(LIBDIR)/$(LIBPVM)pe.a
202
BEOTARGETS = $(LIBDIR)/pvmd3-beo $(LIBDIR)/$(LIBPVM).a
176
204
OS2TARGETS = $(LIBDIR)/pvmd3-os2 $(LIBDIR)/lib-os2
178
206
all: pvmd3$(EXESFX) $(LIBPVM).a $(LIBPVM).so
202
234
$(LIBDIR)/$(LIBPVM).a: $(LIBPVM).a
203
235
cp $(LIBPVM).a $(LIBDIR)
205
$(LIBDIR)/$(LIBPVM).so: $(LIBPVM).so
237
$(LIBDIR)/$(LIBPVM).so: $(LIBPVM).so
206
238
cp $(LIBPVM).so $(LIBDIR)
209
240
# libdir shm pvmd3 & libpvm3*.a
211
242
$(LIBDIR)/pvmd3-shm: pvmd3-shm
228
259
$(LIBDIR)/$(LIBPVM)pe.a: $(LIBPVM)pe.a
229
260
cp $(LIBPVM)pe.a $(LIBDIR)
262
# libdir Beowulf pvmd3
264
$(LIBDIR)/pvmd3-beo: pvmd3-beo
265
cp pvmd3$(EXESFX) $(LIBDIR)
266
touch $(LIBDIR)/pvmd3-beo
231
268
# libdir os2 pvmd3 & libpvm3*.a
233
270
$(LIBDIR)/pvmd3-os2: pvmd3-os2
241
278
# sock pvmd3 & libpvm3.a
243
pvmd3$(EXESFX): regexconfig $(LIBPVM).so $(DOBJ) $(SOCKDOBJ)
280
pvmd3$(EXESFX): $(REGEXCONF) $(LIBPVM).so $(DOBJ) $(SOCKDOBJ)
244
281
$(CC) $(CFLAGS) -o pvmd3$(EXESFX) $(DOBJ) $(SOCKDOBJ) $(LIBPVM).so \
245
282
$(LOPT) $(ARCHDLIB)
247
$(LIBPVM).a: regexconfig
284
$(LIBPVM).a: regexconfig
248
285
echo -------------------------------
249
286
echo --- Building static Library ---
250
287
echo -------------------------------
251
288
rm -f $(LIBPVM).a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) \
252
$(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
289
$(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
254
291
cd .. && ../lib/aimk CFLOPTS='$(CFLOPTS)' $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
255
292
$(AR) cr $(LIBPVM).a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
260
297
echo --- Building shared Library ---
261
298
echo -------------------------------
262
299
rm -f $(LIBPVM).so $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) \
263
$(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
300
$(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
264
301
cd .. && ../lib/aimk CFLOPTS='-fPIC $(CFLOPTS)' $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
265
302
$(CC) -shared -Wl,-soname,libpvm3.so.3 -o $(LIBPVM).so $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) -lc
268
305
# shm pvmd3 & libpvm3*.a
270
pvmd3-shm: regexconfig $(DOBJ) $(SHMEMDOBJ)
307
pvmd3-shm: $(REGEXCONF) $(DOBJ) $(SHMEMDOBJ)
271
308
$(CC) $(CFLAGS) -o pvmd3$(EXESFX) $(DOBJ) $(SHMEMDOBJ) $(ARCHDLIB)
274
lib-shm: regexconfig $(LOBJ) $(LPVMSHMEM) $(SHMEMLOBJ)
311
lib-shm: $(REGEXCONF) $(LOBJ) $(LPVMSHMEM) $(SHMEMLOBJ)
275
312
rm -f $(LIBPVM).a
276
313
$(AR) cr $(LIBPVM).a $(LOBJ) $(LPVMSHMEM) $(SHMEMLOBJ)
277
314
case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBPVM).a ;; esac
280
$(LIBPVM)s.a: regexconfig $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
317
$(LIBPVM)s.a: $(REGEXCONF) $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
281
318
rm -f $(LIBPVM)s.a
282
319
$(AR) cr $(LIBPVM)s.a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
283
320
case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBPVM)s.a ;; esac
285
322
# mpp pvmd3 & libpvm3*.a
287
pvmd3-mpp: regexconfig $(DOBJ) $(MPPDOBJ)
324
pvmd3-mpp: $(REGEXCONF) $(DOBJ) $(MPPDOBJ)
288
325
$(CC) $(CFLAGS) -o pvmd3$(EXESFX) $(DOBJ) $(MPPDOBJ) \
289
326
$(LOPT) $(ARCHDLIB)
292
$(LIBPVM)pe.a: regexconfig $(LOBJ) $(LPVMMIMD) $(MPPLOBJ)
329
$(LIBPVM)pe.a: $(REGEXCONF) $(LOBJ) $(LPVMMIMD) $(MPPLOBJ)
293
330
rm -f $(LIBPVM)pe.a
294
331
$(AR) cr $(LIBPVM)pe.a $(LOBJ) $(LPVMMIMD) $(MPPLOBJ)
333
# Beowulf(LINUX) pvmd3 & libpvm3.a
335
pvmd3-beo: $(REGEXCONF) $(DOBJ) $(BEODOBJ) $(SOCKDOBJ)
336
$(CC) $(CFLAGS) -o pvmd3$(EXESFX) $(DOBJ) $(BEODOBJ) $(SOCKDOBJ) \
296
339
# os2 pvmd3 & libpvm3.a
298
pvmd3-os2: regexconfig-os2 $(OS2DOBJ) $(DOBJ) $(SOCKDOBJ)
341
pvmd3-os2: $(REGEXCONFOS2) $(OS2DOBJ) $(DOBJ) $(SOCKDOBJ)
299
342
$(CC) $(CFLAGS) -o pvmd3$(EXESFX) $(OS2DOBJ) $(DOBJ) $(SOCKDOBJ) \
300
343
$(LOPT) $(ARCHDLIB)
303
lib-os2: regexconfig-os2 $(LOBJ) $(OS2LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
346
lib-os2: $(REGEXCONFOS2) $(LOBJ) $(OS2LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
304
347
rm -f $(LIBPVM).a
305
348
$(AR) cr $(LIBPVM).a $(LOBJ) $(OS2LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
306
349
case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBPVM).a ;; esac
366
409
mppchunkhost.o: $(SDIR)/mppchunk.c
367
410
$(CC) $(CFLAGS) -c -o mppchunkhost.o $(SDIR)/mppchunk.c
368
411
mppchunknode.o: $(SDIR)/mppchunk.c
369
$(NODECC) $(CFLAGS) -DIMA_NODE -c -o mppchunknode.o $(SDIR)/mppchunk.c
412
$(NODECC) $(CFLAGS) -DIMA_NODE -c -o mppchunknode.o \
370
414
mppmsghost.o: $(SDIR)/mppmsg.c
371
415
$(CC) $(CFLAGS) -c -o mppmsghost.o $(SDIR)/mppmsg.c
372
416
mppmsgnode.o: $(SDIR)/mppmsg.c