1topsrc = @top_srcdir@
2datarootdir = @datarootdir@
3
4prefix = @prefix@
5exec_prefix = @exec_prefix@
6bindir = @bindir@
7libdir = @libdir@
8CC = @CC@
9CFLAGS = @CFLAGS@
10LDFLAGS = @LDFLAGS@
11MAKE = @MAKE@
12INSTALL = @INSTALL@
13LN = @LN_S@
14XML_CFLAGS = @XML_CFLAGS@
15XML_LIBS = @XML_LIBS@
16GLIB_CFLAGS = @GLIB_CFLAGS@
17GLIB_LIBS = @GLIB_LIBS@
18GMP_CFLAGS = @GMP_CFLAGS@
19GMP_LIBS = @GMP_LIBS@
20GSF_CFLAGS = @GSF_CFLAGS@
21GSF_LIBS = @GSF_LIBS@
22LAPACK_LIBS = @LAPACK_LIBS@
23FFTW_CFLAGS = @FFTW_CFLAGS@
24FFTW_LIBS = @FFTW_LIBS@
25RLIB_CFLAGS = @RLIB_CFLAGS@
26DARWIN_RPATH = @DARWIN_RPATH@
27SSE2_CFLAGS = @SSE2_CFLAGS@
28AVX_CFLAGS = @AVX_CFLAGS@
29RT_LIB = @RT_LIB@
30
31use_curl = @use_curl@
32ifeq ($(use_curl),yes)
33  CURL_CFLAGS = @CURL_CFLAGS@
34  CURL_LIBS = @CURL_LIBS@
35endif
36
37win32_build = @win32_build@
38win32pkg = @win32pkg@
39
40have_mpi = @have_mpi@
41MPI_CFLAGS = @MPI_CFLAGS@
42
43ifeq ($(AVX_CFLAGS),)
44  SIMD_OPT = $(SSE2_CFLAGS)
45else
46  SIMD_OPT = $(AVX_CFLAGS)
47endif
48OMP_OPT = @OPENMP_CFLAGS@
49
50CURRENT = @LIBGRETL_CURRENT@
51REVISION = @LIBGRETL_REVISION@
52AGE = @LIBGRETL_AGE@
53
54quiet_build = @quiet_build@
55
56ifeq ($(DARWIN_RPATH),)
57  RPATH = $(libdir)
58  LIBDEF = -DLIBDIR=\"$(libdir)\"
59else
60  RPATH = $(DARWIN_RPATH)
61endif
62
63LIBDL = -ldl
64
65ifeq ($(INSTALL_PROGRAM),)
66  INSTALL_PROGRAM = $(INSTALL) -m 755
67endif
68ifeq ($(INSTALL_DATA),)
69  INSTALL_DATA = $(INSTALL) -m 644
70endif
71ifeq ($(LN),)
72  LN = ln -sf
73endif
74
75ifeq ($(quiet_build),yes)
76  AMP = @
77  CCECHO = @echo "  CC    $@"
78  LDECHO = @echo "  LD    $@"
79  CCV = $(CC) $(SIMD_OPT) $(OMP_OPT) > /dev/null
80else
81  CCV = $(CC) $(SIMD_OPT) $(OMP_OPT)
82endif
83
84# Installation directories
85includedir = $(prefix)/include/gretl
86pkgconfigdir = $(prefix)/libdata/pkgconfig
87
88INSTALLDIRS = $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) $(DESTDIR)$(pkgconfigdir)
89
90LIBGRETL = libgretl-1.0.la
91
92ifeq ($(win32pkg),yes)
93  VERSION_INFO = -version-info 1
94  BINPATH = -bindir "$(prefix)"
95else
96  VERSION_INFO = -version-info $(CURRENT):$(REVISION):$(AGE)
97endif
98
99LIBS = $(LAPACK_LIBS) -lm $(LIBDL) -lz $(XML_LIBS) \
100	$(GLIB_LIBS) $(GMP_LIBS) $(FFTW_LIBS) $(CURL_LIBS) $(GSF_LIBS) $(RT_LIB)
101
102#### End of system configuration section. ####
103
104libsrc  = $(topsrc)/lib/src
105cephessrc = $(topsrc)/cephes
106minpacksrc = $(topsrc)/minpack
107dcmtsrc = $(topsrc)/dcmt
108
109VPATH = $(libsrc):$(cephessrc):$(minpacksrc):$(dcmtsrc)
110
111PUBLIC_HDRS = \
112	adf_kpss.h \
113	bhhh_max.h \
114	bootstrap.h \
115	boxplots.h \
116	calendar.h \
117	compare.h \
118	compat.h \
119	dataio.h \
120	dataset.h \
121	dbread.h \
122	describe.h \
123	discrete.h \
124	estimate.h \
125	forecast.h \
126	genmain.h \
127	genfuncs.h \
128	graphing.h \
129	gretl_array.h \
130	gretl_bfgs.h \
131	gretl_btree.h \
132	gretl_bundle.h \
133	gretl_commands.h \
134	gretl_data_io.h \
135	gretl_errors.h \
136	gretl_f2c.h \
137	gretl_foreign.h \
138	gretl_func.h \
139	gretl_intl.h \
140	gretl_list.h \
141	gretl_matrix.h \
142	gretl_midas.h \
143	gretl_model.h \
144	gretl_normal.h \
145	gretl_panel.h \
146	gretl_paths.h \
147	gretl_prn.h \
148	gretl_restrict.h \
149	gretl_string_table.h \
150	gretl_typemap.h \
151	gretl_untar.h \
152	gretl_utils.h \
153	gretl_win32.h \
154	gretl_xml.h \
155	gretl_zip.h \
156	interact.h \
157	johansen.h \
158	kalman.h \
159	libgretl.h \
160	libset.h \
161	matrix_extra.h \
162	missing.h \
163	modelprint.h \
164	monte_carlo.h \
165	nls.h \
166	nonparam.h \
167	objstack.h \
168	options.h \
169	plotspec.h \
170	plugins.h \
171	printout.h \
172	printscan.h \
173	pvalues.h \
174	qr_estimate.h \
175	random.h \
176	strutils.h \
177	subsample.h \
178	system.h \
179	texprint.h \
180	transforms.h \
181	tsls.h \
182	usermat.h \
183	uservar.h \
184	var.h \
185	varprint.h \
186	vartest.h
187
188SRCS = adf_kpss.c \
189	addons_utils.c \
190	bhhh_max.c \
191	bootstrap.c \
192	boxplots.c \
193	calendar.c \
194	compare.c \
195	compat.c \
196	csvdata.c \
197	dataio.c \
198	dataset.c \
199	dbread.c \
200	dbwrite.c \
201	describe.c \
202	discrete.c \
203	estimate.c \
204	flow_control.c \
205	forecast.c \
206	geneval.c \
207	genfuncs.c \
208	genlex.c \
209	genmain.c \
210	gensyntax.c \
211	gmm.c \
212	graphing.c \
213	gretl_array.c \
214	gretl_bfgs.c \
215	gretl_btree.c \
216	gretl_bundle.c \
217	gretl_commands.c \
218	gretl_data_io.c \
219	gretl_errors.c \
220	gretl_foreign.c \
221	gretl_func.c \
222	gretl_help.c \
223	gretl_intl.c \
224	gretl_join.c \
225	gretl_list.c \
226	gretl_matrix.c \
227	gretl_cmatrix.c \
228	gretl_midas.c \
229	gretl_model.c \
230	gretl_mt.c \
231	gretl_normal.c \
232	gretl_panel.c \
233	gretl_paths.c \
234	gretl_plot.c \
235	gretl_prn.c \
236	gretl_restrict.c \
237	gretl_string_table.c \
238	gretl_typemap.c \
239	gretl_untar.c \
240	gretl_utils.c \
241	gretl_xml.c \
242	gretl_zip.c \
243	interact.c \
244	kalman.c \
245	libglue.c \
246	libset.c \
247	matrix_extra.c \
248	missing.c \
249	modelprint.c \
250	monte_carlo.c \
251	nls.c \
252	nonparam.c \
253	objstack.c \
254	options.c \
255	plotspec.c \
256	plugins.c \
257	printout.c \
258	printscan.c \
259	pvalues.c \
260	qr_estimate.c \
261	random.c \
262	strutils.c \
263	subsample.c \
264	system.c \
265	texprint.c \
266	transforms.c \
267	tsls.c \
268	usermat.c \
269	uservar.c \
270	var.c \
271	varprint.c \
272	vartest.c \
273	irfboot.c
274
275ifeq ($(use_curl),yes)
276  PUBLIC_HDRS += gretl_www.h
277  SRCS += gretl_www.c
278endif
279
280ifeq ($(have_mpi),yes)
281  PUBLIC_HDRS += gretl_mpi.h
282  SRCS += gretl_mpi.c
283endif
284
285ifeq ($(win32_build),yes)
286  SRCS += gretl_win32.c
287  override LDFLAGS += -no-undefined
288endif
289
290CEPHES_SRC = bdtr.c btdtr.c chbevl.c chdtr.c const.c expx2.c \
291	   fdtr.c gamma.c gdtr.c igam.c igami.c incbet.c incbi.c \
292	   mtherr.c nbdtr.c ndtr.c ndtri.c pdtr.c polevl.c polrt.c \
293	   stdtr.c unity.c airy.c hyp2f1.c hyperg.c i0.c i1.c \
294	   iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c psi.c struve.c \
295	   yn.c kv.c
296
297MINPACK_SRC = enorm.c fdjac2.c lmder.c lmdif.c lmpar.c \
298	qrfac.c qrsolv.c lbfgsb.c
299
300DCMT_SRC = check32.c eqdeg.c genmtrand.c mt19937.c prescr.c seive.c
301
302LOBJS = $(SRCS:.c=.lo)
303AUX_LOBJ = $(CEPHES_SRC:.c=.lo) $(MINPACK_SRC:.c=.lo) $(DCMT_SRC:.c=.lo)
304
305LIBTOOL = ../libtool
306
307override CFLAGS += -I.. -I$(topsrc) -I$(libsrc) $(XML_CFLAGS) $(GLIB_CFLAGS) \
308	$(GMP_CFLAGS) $(FFTW_CFLAGS) $(CURL_CFLAGS) $(GSF_CFLAGS) $(RLIB_CFLAGS) \
309	$(MPI_CFLAGS) -DHAVE_CONFIG_H $(LIBDEF)
310
311COMPILE = $(LIBTOOL) --mode=compile $(CCV) -c $(CFLAGS)
312
313%.lo: %.c
314	$(CCECHO)
315	$(AMP)$(COMPILE) -o $@ $<
316	$(AMP)$(CCV) $(CFLAGS) -MM -MT $*.lo $< > .deps/$*.d
317
318$(LIBGRETL): .deps $(LOBJS) $(AUX_LOBJ) Makefile
319	$(LDECHO)
320	$(AMP)$(LIBTOOL) --mode=link $(CCV) $(LDFLAGS) -o $@ $(LOBJS) $(AUX_LOBJ) \
321	-rpath $(RPATH) $(LIBS) $(VERSION_INFO) $(BINPATH)
322
323.deps:
324	$(AMP)mkdir $@
325
326-include .deps/*.d
327
328.PHONY:
329
330install: $(LIBGRETL) install-data
331	$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $< $(DESTDIR)$(libdir)/$<
332
333install-strip: $(LIBGRETL) install-data
334	$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) -s $< $(DESTDIR)$(libdir)/$<
335
336install-data: installdirs install-cfg
337	for f in $(PUBLIC_HDRS) ; do \
338	$(INSTALL_DATA) $(libsrc)/$$f $(DESTDIR)$(includedir) ; done
339
340install-cfg: ../gretl.pc
341	$(INSTALL_DATA) $< $(DESTDIR)$(pkgconfigdir)
342
343install-lib: $(LIBGRETL)
344	$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $< $(DESTDIR)$(libdir)/$<
345
346installdirs:
347	$(topsrc)/tools/mkinstalldirs $(INSTALLDIRS)
348
349clean:
350	rm -f *.lo *.o $(LIBGRETL)
351	rm -rf .libs .deps
352
353distclean: clean
354	rm -f Makefile
355
356tags:
357	$(MAKE) -C $(topsrc) tags
358