comparison scripts/Makefile.am @ 9794:0d4613a736e9

convert build system to use automake and libtool
author John W. Eaton <jwe@octave.org>
date Tue, 10 Nov 2009 15:02:25 -0500
parents
children 1355a606667e
comparison
equal deleted inserted replaced
9793:7161e9b41cf6 9794:0d4613a736e9
1 # Makefile for octave's scripts directory
2 #
3 # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
4 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 John W. Eaton
5 #
6 # This file is part of Octave.
7 #
8 # Octave is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by the
10 # Free Software Foundation; either version 3 of the License, or (at
11 # your option) any later version.
12 #
13 # Octave is distributed in the hope that it will be useful, but WITHOUT
14 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 # for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with Octave; see the file COPYING. If not, see
20 # <http://www.gnu.org/licenses/>.
21
22 TOPDIR = ..
23
24 include ../common.mk
25
26 AUTOMAKE_OPTIONS = subdir-objects
27
28 FCN_FILE_DIRS =
29
30 EXTRA_DIST = \
31 gethelp.cc \
32 mkdoc \
33 mk-pkg-add
34
35 FCN_FILES =
36
37 GEN_FCN_FILES =
38
39 PKG_ADD_FILES =
40
41 IMAGES =
42
43 include audio/module.mk
44 include deprecated/module.mk
45 include elfun/module.mk
46 include general/module.mk
47 include geometry/module.mk
48 include help/module.mk
49 include image/module.mk
50 include io/module.mk
51 include linear-algebra/module.mk
52 include miscellaneous/module.mk
53 include optimization/module.mk
54 include path/module.mk
55 include pkg/module.mk
56 include plot/module.mk
57 include polynomial/module.mk
58 include set/module.mk
59 include signal/module.mk
60 include sparse/module.mk
61 include specfun/module.mk
62 include special-matrix/module.mk
63 include startup/module.mk
64 include statistics/base/module.mk
65 include statistics/distributions/module.mk
66 include statistics/models/module.mk
67 include statistics/tests/module.mk
68 include strings/module.mk
69 include testfun/module.mk
70 include time/module.mk
71
72 nobase_fcnfile_DATA = $(FCN_FILES) $(GEN_FCN_FILES)
73
74 octave_dirstamp = $(am__leading_dot)dirstamp
75
76 audio/PKG_ADD: $(audio_FCN_FILES) $(audio_GEN_FCN_FILES) audio/$(octave_dirstamp) mk-pkg-add
77 @echo "generating $@"
78 @$(srcdir)/mk-pkg-add $(srcdir) $(audio_FCN_FILES) -- $(audio_GEN_FCN_FILES) > $@-t
79 @mv $@-t $@
80
81 deprecated/PKG_ADD: $(deprecated_FCN_FILES) $(deprecated_GEN_FCN_FILES) deprecated/$(octave_dirstamp) mk-pkg-add
82 @echo "generating $@"
83 @$(srcdir)/mk-pkg-add $(srcdir) $(deprecated_FCN_FILES) -- $(deprecated_GEN_FCN_FILES) > $@-t
84 @mv $@-t $@
85
86 elfun/PKG_ADD: $(elfun_FCN_FILES) $(elfun_GEN_FCN_FILES) elfun/$(octave_dirstamp) mk-pkg-add
87 @echo "generating $@"
88 @$(srcdir)/mk-pkg-add $(srcdir) $(elfun_FCN_FILES) -- $(elfun_GEN_FCN_FILES) > $@-t
89 @mv $@-t $@
90
91 general/PKG_ADD: $(general_FCN_FILES) $(general_GEN_FCN_FILES) general/$(octave_dirstamp) mk-pkg-add
92 @echo "generating $@"
93 @$(srcdir)/mk-pkg-add $(srcdir) $(general_FCN_FILES) -- $(general_GEN_FCN_FILES) > $@-t
94 @mv $@-t $@
95
96 geometry/PKG_ADD: $(geometry_FCN_FILES) $(geometry_GEN_FCN_FILES) geometry/$(octave_dirstamp) mk-pkg-add
97 @echo "generating $@"
98 @$(srcdir)/mk-pkg-add $(srcdir) $(geometry_FCN_FILES) -- $(geometry_GEN_FCN_FILES) > $@-t
99 @mv $@-t $@
100
101 help/PKG_ADD: $(help_FCN_FILES) $(help_GEN_FCN_FILES) help/$(octave_dirstamp) mk-pkg-add
102 @echo "generating $@"
103 @$(srcdir)/mk-pkg-add $(srcdir) $(help_FCN_FILES) -- $(help_GEN_FCN_FILES) > $@-t
104 @mv $@-t $@
105
106 image/PKG_ADD: $(image_FCN_FILES) $(image_GEN_FCN_FILES) image/$(octave_dirstamp) mk-pkg-add
107 @echo "generating $@"
108 @$(srcdir)/mk-pkg-add $(srcdir) $(image_FCN_FILES) -- $(image_GEN_FCN_FILES) > $@-t
109 @mv $@-t $@
110
111 io/PKG_ADD: $(io_FCN_FILES) $(io_GEN_FCN_FILES) io/$(octave_dirstamp) mk-pkg-add
112 @echo "generating $@"
113 @$(srcdir)/mk-pkg-add $(srcdir) $(io_FCN_FILES) -- $(io_GEN_FCN_FILES) > $@-t
114 @mv $@-t $@
115
116 linear-algebra/PKG_ADD: $(linear_algebra_FCN_FILES) $(linear_algebra_GEN_FCN_FILES) linear-algebra/$(octave_dirstamp) mk-pkg-add
117 @echo "generating $@"
118 @$(srcdir)/mk-pkg-add $(srcdir) $(linear_algebra_FCN_FILES) -- $(linear_algebra_GEN_FCN_FILES) > $@-t
119 @mv $@-t $@
120
121 miscellaneous/PKG_ADD: $(miscellaneous_FCN_FILES) $(miscellaneous_GEN_FCN_FILES) miscellaneous/$(octave_dirstamp) mk-pkg-add
122 @echo "generating $@"
123 @$(srcdir)/mk-pkg-add $(srcdir) $(miscellaneous_FCN_FILES) -- $(miscellaneous_GEN_FCN_FILES) > $@-t
124 @mv $@-t $@
125
126 optimization/PKG_ADD: $(optimization_FCN_FILES) $(optimization_GEN_FCN_FILES) optimization/$(octave_dirstamp) mk-pkg-add
127 @echo "generating $@"
128 @$(srcdir)/mk-pkg-add "$(srcdir)" $(optimization_FCN_FILES) -- $(optimization_GEN_FCN_FILES) > $@-t
129 @mv $@-t $@
130
131 path/PKG_ADD: $(path_FCN_FILES) $(path_GEN_FCN_FILES) path/$(octave_dirstamp) mk-pkg-add
132 @echo "generating $@"
133 @$(srcdir)/mk-pkg-add $(srcdir) $(path_FCN_FILES) -- $(path_GEN_FCN_FILES) > $@-t
134 @mv $@-t $@
135
136 pkg/PKG_ADD: $(pkg_FCN_FILES) $(pkg_GEN_FCN_FILES) pkg/$(octave_dirstamp) mk-pkg-add
137 @echo "generating $@"
138 @$(srcdir)/mk-pkg-add $(srcdir) $(pkg_FCN_FILES) -- $(pkg_GEN_FCN_FILES) > $@-t
139 @mv $@-t $@
140
141 plot/PKG_ADD: $(plot_FCN_FILES) $(plot_GEN_FCN_FILES) plot/$(octave_dirstamp) mk-pkg-add
142 @echo "generating $@"
143 @$(srcdir)/mk-pkg-add $(srcdir) $(plot_FCN_FILES) -- $(plot_GEN_FCN_FILES) > $@-t
144 @mv $@-t $@
145
146 polynomial/PKG_ADD: $(polynomial_FCN_FILES) $(polynomial_GEN_FCN_FILES) polynomial/$(octave_dirstamp) mk-pkg-add
147 @echo "generating $@"
148 @$(srcdir)/mk-pkg-add $(srcdir) $(polynomial_FCN_FILES) -- $(polynomial_GEN_FCN_FILES) > $@-t
149 @mv $@-t $@
150
151 set/PKG_ADD: $(set_FCN_FILES) $(set_GEN_FCN_FILES) set/$(octave_dirstamp) mk-pkg-add
152 @echo "generating $@"
153 @$(srcdir)/mk-pkg-add $(srcdir) $(set_FCN_FILES) -- $(set_GEN_FCN_FILES) > $@-t
154 @mv $@-t $@
155
156 signal/PKG_ADD: $(signal_FCN_FILES) $(signal_GEN_FCN_FILES) signal/$(octave_dirstamp) mk-pkg-add
157 @echo "generating $@"
158 @$(srcdir)/mk-pkg-add $(srcdir) $(signal_FCN_FILES) -- $(signal_GEN_FCN_FILES) > $@-t
159 @mv $@-t $@
160
161 sparse/PKG_ADD: $(sparse_FCN_FILES) $(sparse_GEN_FCN_FILES) sparse/$(octave_dirstamp) mk-pkg-add
162 @echo "generating $@"
163 @$(srcdir)/mk-pkg-add $(srcdir) $(sparse_FCN_FILES) -- $(sparse_GEN_FCN_FILES) > $@-t
164 @mv $@-t $@
165
166 specfun/PKG_ADD: $(specfun_FCN_FILES) $(specfun_GEN_FCN_FILES) specfun/$(octave_dirstamp) mk-pkg-add
167 @echo "generating $@"
168 @$(srcdir)/mk-pkg-add $(srcdir) $(specfun_FCN_FILES) -- $(specfun_GEN_FCN_FILES) > $@-t
169 @mv $@-t $@
170
171 special-matrix/PKG_ADD: $(special_matrix_FCN_FILES) $(special_matrix_GEN_FCN_FILES) special-matrix/$(octave_dirstamp) mk-pkg-add
172 @echo "generating $@"
173 @$(srcdir)/mk-pkg-add $(srcdir) $(special_matrix_FCN_FILES) -- $(special_matrix_GEN_FCN_FILES) > $@-t
174 @mv $@-t $@
175
176 startup/PKG_ADD: $(startup_FCN_FILES) $(startup_GEN_FCN_FILES) startup/$(octave_dirstamp) mk-pkg-add
177 @echo "generating $@"
178 @$(srcdir)/mk-pkg-add $(srcdir) $(startup_FCN_FILES) -- $(startup_GEN_FCN_FILES) > $@-t
179 @mv $@-t $@
180
181 statistics/base/PKG_ADD: $(statistics_base_FCN_FILES) $(statistics_base_GEN_FCN_FILES) statistics/base/$(octave_dirstamp) mk-pkg-add
182 @echo "generating $@"
183 @$(srcdir)/mk-pkg-add $(srcdir) $(statistics_base_FCN_FILES) -- $(statistics_base_GEN_FCN_FILES) > $@-t
184 @mv $@-t $@
185
186 statistics/distributions/PKG_ADD: $(statistics_distributions_FCN_FILES) $(statistics_distributions_GEN_FCN_FILES) statistics/distributions/$(octave_dirstamp) mk-pkg-add
187 @echo "generating $@"
188 @$(srcdir)/mk-pkg-add $(srcdir) $(statistics_distributions_FCN_FILES) -- $(statistics_distributions_GEN_FCN_FILES) > $@-t
189 @mv $@-t $@
190
191 statistics/models/PKG_ADD: $(statistics_models_FCN_FILES) $(statistics_models_GEN_FCN_FILES) statistics/models/$(octave_dirstamp) mk-pkg-add
192 @echo "generating $@"
193 @$(srcdir)/mk-pkg-add $(srcdir) $(statistics_models_FCN_FILES) -- $(statistics_models_GEN_FCN_FILES) > $@-t
194 @mv $@-t $@
195
196 statistics/tests/PKG_ADD: $(statistics_tests_FCN_FILES) $(statistics_tests_GEN_FCN_FILES) statistics/tests/$(octave_dirstamp) mk-pkg-add
197 @echo "generating $@"
198 @$(srcdir)/mk-pkg-add $(srcdir) $(statistics_tests_FCN_FILES) -- $(statistics_tests_GEN_FCN_FILES) > $@-t
199 @mv $@-t $@
200
201 strings/PKG_ADD: $(strings_FCN_FILES) $(strings_GEN_FCN_FILES) strings/$(octave_dirstamp) mk-pkg-add
202 @echo "generating $@"
203 @$(srcdir)/mk-pkg-add $(srcdir) $(strings_FCN_FILES) -- $(strings_GEN_FCN_FILES) > $@-t
204 @mv $@-t $@
205
206 testfun/PKG_ADD: $(testfun_FCN_FILES) $(testfun_GEN_FCN_FILES) testfun/$(octave_dirstamp) mk-pkg-add
207 @echo "generating $@"
208 @$(srcdir)/mk-pkg-add $(srcdir) $(testfun_FCN_FILES) -- $(testfun_GEN_FCN_FILES) > $@-t
209 @mv $@-t $@
210
211 time/PKG_ADD: $(time_FCN_FILES) $(time_GEN_FCN_FILES) time/$(octave_dirstamp) mk-pkg-add
212 @echo "generating $@"
213 @$(srcdir)/mk-pkg-add $(srcdir) $(time_FCN_FILES) -- $(time_GEN_FCN_FILES) > $@-t
214 @mv $@-t $@
215
216 $(audio_GEN_FCN_FILES): audio/$(octave_dirstamp)
217 $(deprecated_GEN_FCN_FILES): deprecated/$(octave_dirstamp)
218 $(elfun_GEN_FCN_FILES): elfun/$(octave_dirstamp)
219 $(general_GEN_FCN_FILES): general/$(octave_dirstamp)
220 $(geometry_GEN_FCN_FILES): geometry/$(octave_dirstamp)
221 $(help_GEN_FCN_FILES): help/$(octave_dirstamp)
222 $(image_GEN_FCN_FILES): image/$(octave_dirstamp)
223 $(io_GEN_FCN_FILES): io/$(octave_dirstamp)
224 $(linear_algebra_GEN_FCN_FILES): linear-algebra/$(octave_dirstamp)
225 $(miscellaneous_GEN_FCN_FILES): miscellaneous/$(octave_dirstamp)
226 $(optimization_GEN_FCN_FILES): optimization/$(octave_dirstamp)
227 $(path_GEN_FCN_FILES): path/$(octave_dirstamp)
228 $(pkg_GEN_FCN_FILES): pkg/$(octave_dirstamp)
229 $(plot_GEN_FCN_FILES): plot/$(octave_dirstamp)
230 $(polynomial_GEN_FCN_FILES): polynomial/$(octave_dirstamp)
231 $(set_GEN_FCN_FILES): set/$(octave_dirstamp)
232 $(signal_GEN_FCN_FILES): signal/$(octave_dirstamp)
233 $(sparse_GEN_FCN_FILES): sparse/$(octave_dirstamp)
234 $(specfun_GEN_FCN_FILES): specfun/$(octave_dirstamp)
235 $(special_matrix_GEN_FCN_FILES): special-matrix/$(octave_dirstamp)
236 $(startup_GEN_FCN_FILES): startup/$(octave_dirstamp)
237 $(statistics_base_GEN_FCN_FILES): statistics/base/$(octave_dirstamp)
238 $(statistics_distributions_GEN_FCN_FILES): statistics/distributions/$(octave_dirstamp)
239 $(statistics_models_GEN_FCN_FILES): statistics/models/$(octave_dirstamp)
240 $(statistics_tests_GEN_FCN_FILES): statistics/tests/$(octave_dirstamp)
241 $(strings_GEN_FCN_FILES): strings/$(octave_dirstamp)
242 $(testfun_GEN_FCN_FILES): testfun/$(octave_dirstamp)
243 $(time_GEN_FCN_FILES): time/$(octave_dirstamp)
244
245 audio/$(octave_dirstamp):
246 @$(MKDIR_P) audio
247 @: > audio/$(octave_dirstamp)
248 deprecated/$(octave_dirstamp):
249 @$(MKDIR_P) deprecated
250 @: > deprecated/$(octave_dirstamp)
251 elfun/$(octave_dirstamp):
252 @$(MKDIR_P) elfun
253 @: > elfun/$(octave_dirstamp)
254 general/$(octave_dirstamp):
255 @$(MKDIR_P) general
256 @: > general/$(octave_dirstamp)
257 geometry/$(octave_dirstamp):
258 @$(MKDIR_P) geometry
259 @: > geometry/$(octave_dirstamp)
260 help/$(octave_dirstamp):
261 @$(MKDIR_P) help
262 @: > help/$(octave_dirstamp)
263 image/$(octave_dirstamp):
264 @$(MKDIR_P) image
265 @: > image/$(octave_dirstamp)
266 io/$(octave_dirstamp):
267 @$(MKDIR_P) io
268 @: > io/$(octave_dirstamp)
269 linear-algebra/$(octave_dirstamp):
270 @$(MKDIR_P) linear-algebra
271 @: > linear-algebra/$(octave_dirstamp)
272 miscellaneous/$(octave_dirstamp):
273 @$(MKDIR_P) miscellaneous
274 @: > miscellaneous/$(octave_dirstamp)
275 optimization/$(octave_dirstamp):
276 @$(MKDIR_P) optimization
277 @: > optimization/$(octave_dirstamp)
278 path/$(octave_dirstamp):
279 @$(MKDIR_P) path
280 @: > path/$(octave_dirstamp)
281 pkg/$(octave_dirstamp):
282 @$(MKDIR_P) pkg
283 @: > pkg/$(octave_dirstamp)
284 plot/$(octave_dirstamp):
285 @$(MKDIR_P) plot
286 @: > plot/$(octave_dirstamp)
287 polynomial/$(octave_dirstamp):
288 @$(MKDIR_P) polynomial
289 @: > polynomial/$(octave_dirstamp)
290 set/$(octave_dirstamp):
291 @$(MKDIR_P) set
292 @: > set/$(octave_dirstamp)
293 signal/$(octave_dirstamp):
294 @$(MKDIR_P) signal
295 @: > signal/$(octave_dirstamp)
296 sparse/$(octave_dirstamp):
297 @$(MKDIR_P) sparse
298 @: > sparse/$(octave_dirstamp)
299 specfun/$(octave_dirstamp):
300 @$(MKDIR_P) specfun
301 @: > specfun/$(octave_dirstamp)
302 special-matrix/$(octave_dirstamp):
303 @$(MKDIR_P) special-matrix
304 @: > special-matrix/$(octave_dirstamp)
305 startup/$(octave_dirstamp):
306 @$(MKDIR_P) startup
307 @: > startup/$(octave_dirstamp)
308 statistics/base/$(octave_dirstamp):
309 @$(MKDIR_P) statistics/base
310 @: > statistics/base/$(octave_dirstamp)
311 statistics/distributions/$(octave_dirstamp):
312 @$(MKDIR_P) statistics/distributions
313 @: > statistics/distributions/$(octave_dirstamp)
314 statistics/models/$(octave_dirstamp):
315 @$(MKDIR_P) statistics/models
316 @: > statistics/models/$(octave_dirstamp)
317 statistics/tests/$(octave_dirstamp):
318 @$(MKDIR_P) statistics/tests
319 @: > statistics/tests/$(octave_dirstamp)
320 strings/$(octave_dirstamp):
321 @$(MKDIR_P) strings
322 @: > strings/$(octave_dirstamp)
323 testfun/$(octave_dirstamp):
324 @$(MKDIR_P) testfun
325 @: > testfun/$(octave_dirstamp)
326 time/$(octave_dirstamp):
327 @$(MKDIR_P) time
328 @: > time/$(octave_dirstamp)
329
330 FCN_FILES_IN = $(GEN_FCN_FILES:.m=.in)
331
332 EXTRA_DIST += \
333 $(IMAGES) \
334 $(FCN_FILES) \
335 $(FCN_FILES_IN)
336
337 all-local: $(GEN_FCN_FILES) $(PKG_ADD_FILES) DOCSTRINGS
338
339 DOCSTRINGS: gethelp$(BUILD_EXEEXT) mkdoc $(FCN_FILES)
340 @echo "generating $@"
341 @$(srcdir)/mkdoc "$(srcdir)" $(FCN_FILES) -- $(GEN_FCN_FILES) > $@.t
342 @mv $@.t $@
343
344 gethelp$(BUILD_EXEEXT): gethelp.cc
345 $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS)
346
347 $(GEN_FCN_FILES) : %.m : %.in Makefile
348 @$(do_subst_config_vals)
349
350 check-m-sources:
351 @echo -n "checking whether files in source tree are listed in module.mk files..."; \
352 for f in $$(find $(srcdir) -name '*.m'); do \
353 found=false; \
354 for m in $(FCN_FILES); do \
355 if [ "$$f" = $(srcdir)/"$$m" ]; then \
356 found=true; \
357 break; \
358 fi; \
359 done; \
360 if $$found; then \
361 true; \
362 else \
363 missing=$$(echo $$f | $(SED) "s|^$(srcdir)||"); \
364 echo "$$missing: not listed in SOURCES"; \
365 fi; \
366 done; \
367 if test -z "$$missing"; then \
368 echo "yes"; \
369 fi
370 .PHONY: check-m-sources
371
372 install-data-local: install-images install-startup-files install-pkg-add
373 .PHONY: install-data-local
374
375 uninstall-local: uninstall-images uninstall-startup-files uninstall-pkg-add
376 .PHONY: uninstall-local
377
378 install-images:
379 $(MKDIR_P) $(DESTDIR)$(imagedir)
380 for im in $(IMAGES); do \
381 f=`echo $$im | $(SED) 's,image/,,'`; \
382 echo "$(INSTALL_DATA) $(srcdir)/$$im $(DESTDIR)$(imagedir)/$$f"; \
383 $(INSTALL_DATA) $(srcdir)/$$im $(DESTDIR)$(imagedir)/$$f; \
384 done
385 .PHONY: install-images
386
387 uninstall-images:
388 for im in $(IMAGES); do \
389 f=`echo $$im | $(SED) 's,.*/,,'`; \
390 echo "rm -f $(DESTDIR)$(imagedir)/$$f"; \
391 rm -f $(DESTDIR)$(imagedir)/$$f; \
392 done
393 .PHONY: uninstall-images
394
395 install-startup-files:
396 $(MKDIR_P) $(DESTDIR)$(fcnfiledir)/startup
397 if test -f $(DESTDIR)$(fcnfiledir)/startup/octaverc; then true; \
398 else \
399 $(INSTALL_DATA) $(srcdir)/$(SYSTEM_STARTUP_FILE_SRC) \
400 $(DESTDIR)$(fcnfiledir)/startup/octaverc; \
401 fi
402 if test -f $(DESTDIR)$(fcnfiledir)/startup/inputrc; then true; \
403 else \
404 $(INSTALL_DATA) $(srcdir)/$(SYSTEM_INPUTRC_FILE_SRC) \
405 $(DESTDIR)$(fcnfiledir)/startup/inputrc; \
406 fi
407 $(MKDIR_P) $(DESTDIR)$(localfcnfiledir)/startup
408 if test -f $(DESTDIR)$(localfcnfiledir)/startup/octaverc; \
409 then true; \
410 else \
411 $(INSTALL_DATA) $(srcdir)/$(LOCAL_STARTUP_FILE_SRC) \
412 $(DESTDIR)$(localfcnfiledir)/startup/octaverc; \
413 fi
414 .PHONY: install-startup-files
415
416 uninstall-startup-files:
417 rm -f $(DESTDIR)$(fcnfiledir)/startup/octaverc
418 rm -f $(DESTDIR)$(fcnfiledir)/startup/inputrc
419 rm -f $(DESTDIR)$(localfcnfiledir)/startup/octaverc
420 .PHONY: uninstall-startup-files
421
422 install-pkg-add:
423 for f in $(PKG_ADD_FILES); do \
424 if [ -n "`cat $$f`" ]; then \
425 $(MKDIR_P) $(DESTDIR)$(fcnfiledir)/`echo $$f | $(SED) 's,/[^/]*$$,,'`; \
426 $(INSTALL_DATA) $$f $(DESTDIR)$(fcnfiledir)/$$f; \
427 fi \
428 done
429 .PHONY: install-pkg-add
430
431 uninstall-pkg-add:
432 for f in $(PKG_ADD_FILES); do \
433 rm -f $(DESTDIR)$(fcnfiledir)/$$f; \
434 done
435 .PHONY: uninstall-pkg-add
436
437 # ## optimization:
438
439 # EXTRAS = glpktest1 glpktest2