1# Example for Linux with -rdyamic linking of Dakota, which does not require
2# dakota to be compiled with -fPIC.  For testing I (dmg)configured with
3# ./configure F77=g95 FC=g95 FCLIBS=' ' CPPFLAGS=-DMPICH_IGNORE_CXX_SEEK FLIBS='/home/dmgay/h/bin/g95-install/lib/gcc-lib/x86_64-unknown-linux-gnu/4.1.2/libf95.a /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libg2c.a -lm' --prefix=`pwd`/local --with-dl_solver --with-plugin --enable-docs --with-blas=`pwd`/blas.a
4
5
6PATH=:/usr/kerberos/bin:/home/dmgay/h/bin:/usr/local/gcc-4.4.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
7
8CC = g++
9FC = g95
10CFLAGS = -O2 -fPIC
11D = ..
12# D = Dakota directory
13
14Inc = \
15	-DHAVE_CONFIG_H \
16	-I$D/src \
17	-I$D \
18	-I$D/packages/teuchos/src \
19	-I$D/packages/Pecos \
20	-I$D/packages/Pecos/src \
21	-I$D/packages \
22	-I$D/packages/plplot/include \
23	-I$D/packages/motif/include \
24	-I$D/packages/motif/src/Widgets \
25	-I$D/packages/boost \
26	-I$D/packages/Pecos/packages/VPISparseGrid/src \
27	-I$D/packages/Surfpack \
28	-I$D/packages/Surfpack/src \
29	-I$D/packages/Surfpack/src/interpreter \
30	-I$D/packages/Surfpack/src/surfaces \
31	-I$D/methods/acro/include \
32	-I$D/methods/acro/include/tinyxml \
33	-I$D/methods/DDACE \
34	-I$D/methods/DDACE/include \
35	-I$D/methods/FSUDace \
36	-I$D/methods/hopspack/src-appspack \
37	-I$D/methods/hopspack/src-cddlib \
38	-I$D/methods/hopspack/src-conveyor \
39	-I$D/methods/hopspack/src-nappspack \
40	-I$D/methods/hopspack/src-shared \
41	-I$D/methods/JEGA \
42	-I$D/methods/JEGA/eddy \
43	-I$D/methods/JEGA/include \
44	-I$D/methods/OPTPP/include \
45	-I$D/methods/OPTPP/newmat11 \
46	-I$D/methods/PSUADE \
47	-DMPICH_IGNORE_CXX_SEEK
48
49#Rpath = -Wl,-rpath,.,-rpath,/usr/local/gcc-4.4.2/lib64
50Rpath = -Wl,-rpath,/usr/local/gcc-4.4.2/lib64
51
52L1 = $(Rpath) $D/src/.libs/libdakota.a $D/packages/teuchos/src/.libs/libteuchos.a $D/packages/Pecos/.libs/libpecos.a $D/packages/teuchos/src/.libs/libteuchos.a $D/packages/plplot/src/.libs/libplplotd.a $D/packages/motif/src/.libs/libDGraphics.a $D/packages/Surfpack/src/.libs/libsurfpack.a $D/methods/CONMIN/src/.libs/libconmin.a $D/methods/DDACE/src/.libs/libddace.a $D/methods/FSUDace/.libs/libfsudace.a $D/methods/NL2SOL/.libs/libcport.a $D/methods/NPSOL/.libs/libnpsol.a $D/methods/OPTPP/lib/.libs/libopt.a $D/methods/PSUADE/.libs/libpsuade.a $D/methods/OPTPP/lib/.libs/libnewmat.a $D/packages/Pecos/packages/LHS/.libs/liblhs.a $D/packages/Pecos/packages/VPISparseGrid/src/.libs/libsparsegrid.a $D/methods/NCSUOpt/libncsuopt.a $D/methods/acro/packages/coliny/src/libcoliny.a $D/methods/acro/packages/utilib/src/.libs/libutilib.a $D/methods/acro/packages/colin/src/libcolin.a $D/methods/acro/packages/pebbl/src/libpebbl.a $D/methods/acro/packages/utilib/src/.libs/libutilib.a $D/methods/acro/packages/tpl/3po/lib3po.a $D/methods/hopspack/src-nappspack/libnappspack.a $D/methods/hopspack/src-appspack/libappspack.a $D/methods/hopspack/src-conveyor/libconveyor.a $D/methods/hopspack/src-shared/libshared.a $D/methods/hopspack/src-cddlib/libcdd.a -lgd -lfreetype -lXpm -lXm -ljpeg -lpng -lXmu -lXt -lXp -lXext -lX11 -lSM -lICE $D/packages/ampl/funcadd0.o $D/packages/ampl/amplsolver.a $D/lapack.a $D/blas.a /home/dmgay/h/bin/g95-install/lib/gcc-lib/x86_64-unknown-linux-gnu/4.1.2/libf95.a /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libg2c.a -lm -ldl
53
54.C.o:
55	$(CC) -c $(CFLAGS) $(Inc) $*.C
56
57# for testing "nidrgen -lp noj.nspec"
58
59L = $D/lapack.a $D/blas.a
60
61all: NIDR_keywds.H dakdll dot.dll jega.dll nlpql.dll npsol.dll
62
63dakdll = $D/src/main.o DakotaIterator1.o NIDRProblemDescDB1.o $D/src/.libs/libdakota.a
64dakdll: $(dakdll)
65	mpic++ -pthread -rdynamic -o dakdll $(Rpath) $(dakdll) $(L1)
66
67#main1.o: $D/src/main.C
68#	$(CC) -c -o main1.o -Dmain=main1 $(CFLAGS) $(Inc) $D/src/main.C
69
70DakotaIterator1.o: $D/src/DakotaIterator.C
71	$(CC) -c -o DakotaIterator1.o -DDAKOTA_DYNLIB $(CFLAGS) $(Inc) $D/src/DakotaIterator.C
72
73# Must have NIDRProblemDescDB1.C here so it includes the
74# right NIDR_keywds.H
75
76NIDRProblemDescDB1.C: $D/src/NIDRProblemDescDB.C
77	ln $D/src/NIDRProblemDescDB.C NIDRProblemDescDB1.C || \
78	cp $D/src/NIDRProblemDescDB.C NIDRProblemDescDB1.C
79
80DOTOptimizer.o: $D/src/DOTOptimizer.C
81	$(CC) -c -o DOTOptimizer.o $(CFLAGS) $(Inc) $D/src/DOTOptimizer.C
82
83JEGAOptimizer.o: $D/src/JEGAOptimizer.C
84	$(CC) -c -o JEGAOptimizer.o $(CFLAGS) $(Inc) $D/src/JEGAOptimizer.C
85
86NLPQLPOptimizer.o: $D/src/NLPQLPOptimizer.C
87	$(CC) -c -o NLPQLPOptimizer.o $(CFLAGS) $(Inc) $D/src/NLPQLPOptimizer.C
88
89NPSOLOptimizer.o: $D/src/NPSOLOptimizer.C
90	$(CC) -c -o NPSOLOptimizer.o $(CFLAGS) $(Inc) $D/src/NPSOLOptimizer.C
91
92NLSSOLLeastSq.o: $D/src/NLSSOLLeastSq.C
93	$(CC) -c -o NLSSOLLeastSq.o $(CFLAGS) $(Inc) $D/src/NLSSOLLeastSq.C
94
95SOLBase.o: $D/src/SOLBase.C
96	$(CC) -c -o SOLBase.o $(CFLAGS) $(Inc) $D/src/SOLBase.C
97
98npoptn_wrapper.o: $D/src/npoptn_wrapper.f
99	$(FC) -c $(CFLAGS) -o npoptn_wrapper.o $D/src/npoptn_wrapper.f
100
101dot_dll = dot.o DOTOptimizer.o $D/methods/DOT/libdot.a
102dot.dll: $(dot_dll)
103	$(FC) $(CFLAGS) -shared $(Rpath) -o dot.dll $(dot_dll) $L
104
105jega_dll = jega.o JEGAOptimizer.o $D/methods/JEGA/src/.libs/libjega.a
106jega.dll: $(jega_dll)
107	$(FC) $(CFLAGS) -shared $(Rpath) -o jega.dll $(jega_dll) $L
108
109nlpql_dll = nlpql.o NLPQLPOptimizer.o $D/methods/NLPQL/libnlpql.a
110nlpql.dll: $(nlpql_dll)
111	$(FC) $(CFLAGS) -shared $(Rpath) -o nlpql.dll $(nlpql_dll) $L
112
113npsol_dll = npsol.o NPSOLOptimizer.o NLSSOLLeastSq.o SOLBase.o npoptn_wrapper.o \
114	$D/methods/NPSOL/libnpsol.a
115npsol.dll: $(npsol_dll)
116	$(FC) $(CFLAGS) -shared $(Rpath) -o npsol.dll $(npsol_dll) $L
117
118NIDR_keywds.H: noj.nspec noj.desc
119	nidrgen noj.nspec noj.desc >NIDR_keywds.H
120
121clean:
122	rm -f dakdll *.dll *.o *.so NIDRProblemDescDB1.C
123