1 |
|
|
2 |
#----------------------------------------------------------------- |
#*********************************************************************** |
3 |
# L A R G E S C A L E O P T I M I Z A T I O N |
# Makefile for the ECCO off-line large scale optimization. |
|
#----------------------------------------------------------------- |
|
4 |
# |
# |
5 |
# Version : lsoptv1 2.1.0 |
# started: Patrick Heimbach heimbach@mit.edu 19-Jun-2000 |
6 |
# |
# |
7 |
# Author : Ralf Giering 22-Mar-1995 |
# prebuilt Fortran77 reference implementation BLAS libraries at |
8 |
# Modified : Michael Peters 28-Aug-1995 |
# http://www.netlib.org/blas/archives/ |
|
# Rewritten : Patrick Heimbach (MIT/EAPS) 25-Feb-2000 |
|
|
# ECCO : Christian Eckert (MIT/EAPS) 10-Mar-2000 |
|
9 |
# |
# |
10 |
#----------------------------------------------------------------- |
#*********************************************************************** |
11 |
|
|
12 |
SRC = lsopt_top.F lsupdxx.F lsline.F \ |
# The optimization routines. |
13 |
hessupd.F cubic.F dgscale.F \ |
SRC = lsopt_top.F \ |
14 |
instore.F dostore.F outstore.F \ |
lsupdxx.F \ |
15 |
lswri.F |
lsline.F \ |
16 |
|
hessupd.F \ |
17 |
ECCOSRC = lsopt_top.F lsupdxx.F lsline.F \ |
cubic.F \ |
18 |
hessupd.F cubic.F dgscale.F \ |
dgscale.F \ |
19 |
instore.F dostore.F outstore.F \ |
instore.F \ |
20 |
lswri.F |
dostore.F \ |
21 |
|
outstore.F \ |
22 |
|
lswri.F |
23 |
|
|
24 |
|
# Location of cpp preprocessor |
25 |
|
# default is (Linux) |
26 |
|
CPP = cat $< | /lib/cpp -P -traditional |
27 |
|
# on SUNOS |
28 |
|
# CPP = cat $< | /usr/ccs/lib/cpp |
29 |
|
|
30 |
# SUN double precision. |
ARFLAGS = rv |
31 |
FFLAGS = -u -r8 -e -g |
ECCOOPTLIB = liblsopt_ecco.a |
32 |
CPPFLAGS = -I. -DIS_DOUBLE -DINTEGER_BYTE=4 -DONLINE |
|
33 |
|
# O3K |
34 |
|
#--------- |
35 |
|
#CPPFLAGS = -DIS_DOUBLE |
36 |
|
#FC = f77 |
37 |
|
#FFLAGS = -extend_source -bytereclen -mips4 -r8 -static |
38 |
|
|
39 |
|
# Linux |
40 |
|
#--------- |
41 |
|
CPPFLAGS = -DIS_DOUBLE |
42 |
|
FC = f77 |
43 |
|
FFLAGS = |
44 |
|
|
45 |
# Note for MIT users: |
# SUN double precision. |
46 |
# ------------------- |
#--------- |
47 |
# LAPACK/BLAS routines can be obtained directly from e.g. |
#FFLAGS = -u -r8 -e -g |
48 |
# /opt/SUNWspro/SC4.2/lib/v7. |
#CPPFLAGS = -I. -DIS_DOUBLE -DINTEGER_BYTE=4 -DONLINE |
|
# --> man lapack |
|
|
|
|
|
# SUN single precision. |
|
|
#FFLAGS = -u |
|
|
#CPPFLAGS = -I. -DREAL_BYTE=4 -DINTEGER_BYTE=4 |
|
49 |
|
|
50 |
# Cray. |
# Cray. |
51 |
|
#--------- |
52 |
#FC = f90 |
#FC = f90 |
53 |
#FFLAGS = -I. -e0 -N132 -O scalar3,vector3,task3 |
#FFLAGS = -I. -e0 -N132 -O scalar3,vector3,task3 |
54 |
#CPPFLAGS = -Wp"-DREAL_BYTE=8 -DINTEGER_BYTE=8" |
#CPPFLAGS = -Wp"-DREAL_BYTE=8 -DINTEGER_BYTE=8" |
55 |
|
|
56 |
|
# File removal. |
57 |
|
RM = rm -f |
58 |
|
|
59 |
OBJECTS = $(SRC:.F=.o) |
F77FILES = $(SRC:.F=.f) |
60 |
ECCOOBJECTS = $(ECCOSRC:.F=.o) |
OBJ = $(SRC:.F=.o) |
|
|
|
|
OPTLIB = liblsopt.a |
|
|
ECCOOPTLIB = liblsopt_ecco.a |
|
|
LIB = . |
|
|
|
|
|
ARFLAGS = rv |
|
|
RM = rm -f |
|
|
CPP = /lib/cpp |
|
|
# RANLIB on SUN: |
|
|
#RANLIB = /usr/ccs/bin/ranlib |
|
|
# RANLIB on linux: |
|
|
RANLIB = /usr/bin/ranlib |
|
|
|
|
|
#----------------------------------------------------------------- |
|
|
# Rules |
|
|
#----------------------------------------------------------------- |
|
|
|
|
|
# Generate the lsopt library. |
|
|
all: $(OPTLIB) |
|
|
|
|
|
$(OPTLIB): $(OBJECTS) |
|
|
$(AR) $(ARFLAGS) $@ $? |
|
|
$(RANLIB) $@ |
|
|
chmod a+r $@ |
|
61 |
|
|
62 |
install: $(OPTLIB) |
.SUFFIXES: .o .f .F |
|
cp $(OPTLIB) $(LIB)/$(OPTLIB) |
|
63 |
|
|
64 |
# Generate the ECCO lsopt library. |
all: $(ECCOOPTLIB) |
|
ecco: $(ECCOOPTLIB) |
|
65 |
|
|
66 |
$(ECCOOPTLIB): $(ECCOOBJECTS) |
$(ECCOOPTLIB): $(OBJ) $(F77FILES) |
67 |
|
$(FC) -c $(FFLAGS) $(F77FILES) |
68 |
$(AR) $(ARFLAGS) $@ $? |
$(AR) $(ARFLAGS) $@ $? |
|
$(RANLIB) $@ |
|
|
chmod a+r $@ |
|
69 |
|
|
70 |
ecco_install: $(ECCOOPTLIB) |
depend: |
71 |
cp $(OPTLIB) $(LIB)/$(OPTLIB) |
makedepend -o .f $(SRC) |
72 |
|
|
73 |
# Generating object files. |
# The normal chain of rules is ( .F - .f - .o ) |
74 |
.o: |
.F.f: |
75 |
$(FC) -o $@ $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) $< $(OBJECT) $(LDLIBS) |
$(CPP) $(CPPFLAGS) > $@ |
76 |
|
.f.o: |
77 |
|
$(FC) $(FFLAGS) -c $< |
78 |
|
|
79 |
# File removal. |
# Cleaning options. |
80 |
clean: |
clean: |
81 |
$(RM) $(OBJECTS) $(ECCOOBJECTS) |
$(RM) *.o *.f |
82 |
$(RM) *~ |
# DO NOT DELETE |
|
|
|
|
scratch: clean |
|
|
$(RM) $(OPTLIB) |
|
|
|
|
83 |
|
|
84 |
|
lsupdxx.f: blas1.h |
85 |
|
lsline.f: blas1.h |
86 |
|
hessupd.f: blas1.h |
87 |
|
dgscale.f: blas1.h |