1# Automake source file for the Parma Polyhedra Library.
2# Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
3# Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
4#
5# This file is part of the Parma Polyhedra Library (PPL).
6#
7# The PPL is free software; you can redistribute it and/or modify it
8# under the terms of the GNU General Public License as published by the
9# Free Software Foundation; either version 3 of the License, or (at your
10# option) any later version.
11#
12# The PPL is distributed in the hope that it will be useful, but WITHOUT
13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15# for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
20#
21# For the most up-to-date information see the Parma Polyhedra Library
22# site: http://bugseng.com/products/ppl/ .
23
24# Libtool -version-info for libppl.la.
25#
26#  1. Start with version information of `0:0:0' for each Libtool library.
27#
28#  2. Update the version information only immediately before a public
29#     release of your software.  More frequent updates are unnecessary,
30#     and only guarantee that the current interface number gets larger
31#     faster.
32#
33#  3. If the library source code has changed at all since the last
34#     update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
35#
36#  4. If any interfaces have been added, removed, or changed since the
37#     last update, increment CURRENT, and set REVISION to 0.
38#
39#  5. If any interfaces have been added since the last public release,
40#     then increment AGE.
41#
42#  6. If any interfaces have been removed since the last public release,
43#     then set AGE to 0.
44#
45#	PPL release		-version-info
46#	    0.1			    -----
47#	    0.2			    -----
48#	    0.3			    0:0:0
49#	    0.4			    1:0:1
50#	    0.5			    2:0:0
51#	    0.6			    3:0:0
52#	    0.7			    4:0:0
53#	    0.8			    5:0:0
54#	    0.9			    6:0:0
55#	    0.10		    7:0:0
56#	    0.10.1		    8:0:1
57#	    0.10.2		    8:0:1
58#	    0.11		    9:0:0
59#	    0.12		   10:0:0
60#	    0.12.1		   11:0:0
61#	    1.0			   12:0:0
62#	    1.1			   13:0:0
63#	    1.2			   14:0:0
64
65LIBPPL_LT_CURRENT =  14
66LIBPPL_LT_REVISION =  0
67LIBPPL_LT_AGE =       0
68
69AM_CPPFLAGS = \
70-I$(top_builddir) \
71-I$(top_srcdir)/src \
72@extra_includes@
73
74lib_LTLIBRARIES = libppl.la
75
76bin_PROGRAMS = ppl-config
77
78ppl_config_SOURCES = \
79BUGS.hh \
80BUGS.cc \
81COPYING.hh \
82COPYING.cc \
83CREDITS.hh \
84CREDITS.cc
85
86nodist_ppl_config_SOURCES = \
87ppl-config.cc \
88ppl.hh
89
90ppl_config_LDADD = \
91@extra_libraries@ \
92libppl.la
93
94if USE_NATIVE_INTEGERS
95
96COEFFICIENT_TYPES_INCLUDE_FILES =
97
98COEFFICIENT_DEFS_INCLUDE_FILES =
99
100endif USE_NATIVE_INTEGERS
101
102if USE_CHECKED_INTEGERS
103
104COEFFICIENT_TYPES_INCLUDE_FILES =
105
106COEFFICIENT_DEFS_INCLUDE_FILES =
107
108endif USE_CHECKED_INTEGERS
109
110if USE_GMP_INTEGERS
111
112COEFFICIENT_TYPES_INCLUDE_FILES = \
113  GMP_Integer_types.hh
114
115COEFFICIENT_DEFS_INCLUDE_FILES = \
116  GMP_Integer_defs.hh \
117  GMP_Integer_inlines.hh
118
119endif USE_GMP_INTEGERS
120
121# The ordering of the following list *matters*!
122INCLUDE_FILES = \
123namespaces.hh \
124compiler.hh \
125assertions.hh \
126meta_programming.hh \
127Slow_Copy.hh \
128Has_Assign_Or_Swap.hh \
129assign_or_swap.hh \
130mp_std_bits_defs.hh \
131mp_std_bits_inlines.hh \
132Concrete_Expression_types.hh \
133Concrete_Expression_defs.hh \
134Concrete_Expression_inlines.hh \
135Temp_defs.hh \
136Temp_inlines.hh \
137Temp_templates.hh \
138Coefficient_traits_template.hh \
139Checked_Number_types.hh \
140termination_types.hh \
141$(COEFFICIENT_TYPES_INCLUDE_FILES) \
142Coefficient_types.hh \
143stdiobuf_types.hh \
144c_streambuf_types.hh \
145globals_types.hh \
146iterator_to_const_types.hh \
147distances_types.hh \
148Interval_Info_types.hh \
149Interval_types.hh \
150Box_types.hh \
151Constraint_types.hh \
152Generator_types.hh \
153Grid_Generator_types.hh \
154Congruence_types.hh \
155Init_types.hh \
156Dense_Row_types.hh \
157CO_Tree_types.hh \
158Sparse_Row_types.hh \
159Matrix_types.hh \
160Swapping_Vector_types.hh \
161Variable_types.hh \
162Variables_Set_types.hh \
163Linear_Expression_types.hh \
164Expression_Adapter_types.hh \
165Expression_Hide_Last_types.hh \
166Expression_Hide_Inhomo_types.hh \
167Linear_Expression_Impl_types.hh \
168Linear_Expression_Interface_types.hh \
169Linear_System_types.hh \
170Linear_Form_types.hh \
171Bit_Row_types.hh \
172Bit_Matrix_types.hh \
173Constraint_System_types.hh \
174Generator_System_types.hh \
175Grid_Generator_System_types.hh \
176Congruence_System_types.hh \
177Scalar_Products_types.hh \
178PIP_Tree_types.hh \
179PIP_Problem_types.hh \
180Poly_Con_Relation_types.hh \
181Poly_Gen_Relation_types.hh \
182BHRZ03_Certificate_types.hh \
183H79_Certificate_types.hh \
184Grid_Certificate_types.hh \
185Partial_Function_types.hh \
186Polyhedron_types.hh \
187C_Polyhedron_types.hh \
188NNC_Polyhedron_types.hh \
189Grid_types.hh \
190Ptr_Iterator_types.hh \
191DB_Row_types.hh \
192DB_Matrix_types.hh \
193BD_Shape_types.hh \
194OR_Matrix_types.hh \
195Octagonal_Shape_types.hh \
196fpu_types.hh \
197Float_defs.hh \
198Float_inlines.hh \
199Float_templates.hh \
200C_Integer.hh \
201fpu_defs.hh \
202fpu-c99_inlines.hh \
203fpu-ia32_inlines.hh \
204fpu-none_inlines.hh \
205fpu-sparc_inlines.hh \
206Rounding_Dir_defs.hh \
207Rounding_Dir_inlines.hh \
208Result_defs.hh \
209Result_inlines.hh \
210Numeric_Format_defs.hh \
211checked_defs.hh \
212checked_inlines.hh \
213checked_int_inlines.hh \
214checked_float_inlines.hh \
215checked_mpz_inlines.hh \
216checked_mpq_inlines.hh \
217checked_ext_inlines.hh \
218Checked_Number_defs.hh \
219Checked_Number_inlines.hh \
220Checked_Number_templates.hh \
221WRD_coefficient_types_defs.hh \
222WRD_coefficient_types_inlines.hh \
223checked_numeric_limits.hh \
224$(COEFFICIENT_DEFS_INCLUDE_FILES) \
225Coefficient_defs.hh \
226Coefficient_inlines.hh \
227stdiobuf_defs.hh \
228stdiobuf_inlines.hh \
229c_streambuf_defs.hh \
230c_streambuf_inlines.hh \
231globals_defs.hh \
232globals_inlines.hh \
233math_utilities_defs.hh \
234math_utilities_inlines.hh \
235iterator_to_const_defs.hh \
236iterator_to_const_inlines.hh \
237distances_defs.hh \
238distances_inlines.hh \
239Boundary_defs.hh \
240intervals_defs.hh \
241Interval_Info_defs.hh \
242Interval_Info_inlines.hh \
243Interval_defs.hh \
244Interval_inlines.hh \
245Interval_templates.hh \
246Box_defs.hh \
247Box_Status_inlines.hh \
248Box_inlines.hh \
249Box_templates.hh \
250Integer_Interval.hh \
251Rational_Interval.hh \
252Rational_Box.hh \
253Variable_defs.hh \
254Variable_inlines.hh \
255Variables_Set_defs.hh \
256Variables_Set_inlines.hh \
257Init_defs.hh \
258Init_inlines.hh \
259initializer.hh \
260Topology_types.hh \
261Dense_Row_defs.hh \
262Dense_Row_inlines.hh \
263Dense_Row_templates.hh \
264CO_Tree_defs.hh \
265CO_Tree_inlines.hh \
266CO_Tree_templates.hh \
267Sparse_Row_defs.hh \
268Sparse_Row_inlines.hh \
269Sparse_Row_templates.hh \
270Bit_Row_defs.hh \
271Bit_Row_inlines.hh \
272Linear_System_defs.hh \
273Linear_System_inlines.hh \
274Linear_System_templates.hh \
275Bit_Matrix_defs.hh \
276Bit_Matrix_inlines.hh \
277Constraint_System_defs.hh \
278Generator_System_defs.hh \
279Grid_Generator_System_defs.hh \
280Congruence_System_defs.hh \
281Linear_Expression_defs.hh \
282Linear_Expression_inlines.hh \
283Expression_Adapter_defs.hh \
284Expression_Adapter_inlines.hh \
285Expression_Hide_Last_defs.hh \
286Expression_Hide_Last_inlines.hh \
287Expression_Hide_Inhomo_defs.hh \
288Expression_Hide_Inhomo_inlines.hh \
289Linear_Expression_Impl_defs.hh \
290Linear_Expression_Impl_inlines.hh \
291Linear_Expression_Impl_templates.hh \
292Linear_Expression_Interface_defs.hh \
293Linear_Form_defs.hh \
294Linear_Form_inlines.hh \
295Linear_Form_templates.hh \
296linearize.hh \
297Constraint_defs.hh \
298Constraint_inlines.hh \
299Constraint_System_inlines.hh \
300Generator_defs.hh \
301Generator_inlines.hh \
302Grid_Generator_defs.hh \
303Grid_Generator_inlines.hh \
304Congruence_defs.hh \
305Congruence_inlines.hh \
306Generator_System_inlines.hh \
307Grid_Generator_System_inlines.hh \
308Congruence_System_inlines.hh \
309Scalar_Products_defs.hh \
310Scalar_Products_inlines.hh \
311Matrix_defs.hh \
312Matrix_inlines.hh \
313Matrix_templates.hh \
314Swapping_Vector_defs.hh \
315Swapping_Vector_inlines.hh \
316MIP_Problem_types.hh \
317MIP_Problem_defs.hh \
318MIP_Problem_inlines.hh \
319MIP_Problem_templates.hh \
320PIP_Tree_types.hh \
321PIP_Tree_defs.hh \
322PIP_Tree_inlines.hh \
323PIP_Problem_types.hh \
324PIP_Problem_defs.hh \
325PIP_Problem_inlines.hh \
326PIP_Problem_templates.hh \
327Poly_Con_Relation_defs.hh \
328Poly_Con_Relation_inlines.hh \
329Poly_Gen_Relation_defs.hh \
330Poly_Gen_Relation_inlines.hh \
331BHRZ03_Certificate_defs.hh \
332BHRZ03_Certificate_inlines.hh \
333H79_Certificate_defs.hh \
334H79_Certificate_inlines.hh \
335Grid_Certificate_defs.hh \
336Grid_Certificate_inlines.hh \
337Partial_Function_defs.hh \
338Partial_Function_inlines.hh \
339Polyhedron_defs.hh \
340Ph_Status_inlines.hh \
341Polyhedron_inlines.hh \
342Polyhedron_chdims_templates.hh \
343Polyhedron_conversion_templates.hh \
344Polyhedron_minimize_templates.hh \
345Polyhedron_simplify_templates.hh \
346Polyhedron_templates.hh \
347Grid_defs.hh \
348Grid_Status_inlines.hh \
349Grid_inlines.hh \
350Grid_templates.hh \
351C_Polyhedron_defs.hh \
352C_Polyhedron_inlines.hh \
353NNC_Polyhedron_defs.hh \
354NNC_Polyhedron_inlines.hh \
355Widening_Function_types.hh \
356Widening_Function_defs.hh \
357Widening_Function_inlines.hh \
358Ptr_Iterator_defs.hh \
359Ptr_Iterator_inlines.hh \
360DB_Row_defs.hh \
361DB_Row_inlines.hh \
362DB_Row_templates.hh \
363DB_Matrix_defs.hh \
364DB_Matrix_inlines.hh \
365DB_Matrix_templates.hh \
366BD_Shape_defs.hh \
367BDS_Status_inlines.hh \
368BD_Shape_inlines.hh \
369BD_Shape_templates.hh \
370OR_Matrix_defs.hh \
371OR_Matrix_inlines.hh \
372OR_Matrix_templates.hh \
373Octagonal_Shape_defs.hh \
374Og_Status_inlines.hh \
375Octagonal_Shape_inlines.hh \
376Octagonal_Shape_templates.hh \
377Determinate_types.hh \
378Determinate_defs.hh \
379Determinate_inlines.hh \
380Powerset_types.hh \
381Powerset_defs.hh \
382Powerset_inlines.hh \
383Powerset_templates.hh \
384Pointset_Powerset_types.hh \
385Pointset_Powerset_defs.hh \
386Pointset_Powerset_inlines.hh \
387Pointset_Powerset_templates.hh \
388Partially_Reduced_Product_types.hh \
389Partially_Reduced_Product_defs.hh \
390Partially_Reduced_Product_inlines.hh \
391Partially_Reduced_Product_templates.hh \
392Weight_Profiler_defs.hh \
393max_space_dimension.hh \
394algorithms.hh \
395termination_defs.hh \
396termination_templates.hh \
397wrap_assign.hh \
398wrap_string.hh \
399Floating_Point_Expression_types.hh \
400Floating_Point_Expression_defs.hh \
401Floating_Point_Expression_inlines.hh \
402Floating_Point_Expression_templates.hh \
403Cast_Floating_Point_Expression_types.hh \
404Cast_Floating_Point_Expression_defs.hh \
405Cast_Floating_Point_Expression_inlines.hh \
406Cast_Floating_Point_Expression_templates.hh \
407Constant_Floating_Point_Expression_types.hh \
408Constant_Floating_Point_Expression_defs.hh \
409Constant_Floating_Point_Expression_inlines.hh \
410Variable_Floating_Point_Expression_types.hh \
411Variable_Floating_Point_Expression_defs.hh \
412Variable_Floating_Point_Expression_inlines.hh \
413Sum_Floating_Point_Expression_types.hh \
414Sum_Floating_Point_Expression_defs.hh \
415Sum_Floating_Point_Expression_inlines.hh \
416Sum_Floating_Point_Expression_templates.hh \
417Difference_Floating_Point_Expression_types.hh \
418Difference_Floating_Point_Expression_defs.hh \
419Difference_Floating_Point_Expression_inlines.hh \
420Difference_Floating_Point_Expression_templates.hh \
421Multiplication_Floating_Point_Expression_types.hh \
422Multiplication_Floating_Point_Expression_defs.hh \
423Multiplication_Floating_Point_Expression_inlines.hh \
424Multiplication_Floating_Point_Expression_templates.hh \
425Division_Floating_Point_Expression_types.hh \
426Division_Floating_Point_Expression_defs.hh \
427Division_Floating_Point_Expression_inlines.hh \
428Division_Floating_Point_Expression_templates.hh \
429Opposite_Floating_Point_Expression_types.hh \
430Opposite_Floating_Point_Expression_defs.hh \
431Opposite_Floating_Point_Expression_inlines.hh \
432Doubly_Linked_Object_types.hh \
433EList_types.hh \
434EList_Iterator_types.hh \
435Handler_types.hh \
436Pending_Element_types.hh \
437Pending_List_types.hh \
438Time_types.hh \
439Watchdog_types.hh \
440Threshold_Watcher_types.hh \
441Handler_defs.hh \
442Handler_inlines.hh \
443Time_defs.hh \
444Time_inlines.hh \
445Doubly_Linked_Object_defs.hh \
446Doubly_Linked_Object_inlines.hh \
447EList_Iterator_defs.hh \
448EList_Iterator_inlines.hh \
449EList_defs.hh \
450EList_inlines.hh \
451Pending_Element_defs.hh \
452Pending_Element_inlines.hh \
453Pending_List_defs.hh \
454Pending_List_inlines.hh \
455Pending_List_templates.hh \
456Watchdog_defs.hh \
457Watchdog_inlines.hh \
458Threshold_Watcher_defs.hh \
459Threshold_Watcher_inlines.hh \
460Threshold_Watcher_templates.hh
461#Any_Pointset_types.hh \
462#Any_Pointset_defs.hh \
463#Any_Pointset_inlines.hh \
464#Ask_Tell_types.hh \
465#Ask_Tell_defs.hh \
466#Ask_Tell_inlines.hh \
467#Ask_Tell_templates.hh \
468#Pointset_Ask_Tell_types.hh \
469#Pointset_Ask_Tell_defs.hh \
470#Pointset_Ask_Tell_inlines.hh \
471#Pointset_Ask_Tell_templates.hh
472
473NESTED_INCLUDE_FILES = \
474Ph_Status_idefs.hh \
475Grid_Status_idefs.hh \
476Box_Status_idefs.hh \
477BDS_Status_idefs.hh \
478Og_Status_idefs.hh
479
480libppl_la_SOURCES = \
481assertions.cc \
482Box.cc \
483checked.cc \
484Checked_Number.cc \
485Float.cc \
486fpu-ia32.cc \
487BDS_Status.cc \
488Box_Status.cc \
489Og_Status.cc \
490Concrete_Expression.cc \
491Constraint.cc \
492Constraint_System.cc \
493Congruence.cc \
494Congruence_System.cc \
495Generator_System.cc \
496Grid_Generator_System.cc \
497Generator.cc \
498Grid_Generator.cc \
499Handler.cc \
500Init.cc \
501Coefficient.cc \
502Linear_Expression.cc \
503Linear_Expression_Impl.cc \
504Linear_Expression_Interface.cc \
505Linear_Form.cc \
506Scalar_Products.cc \
507MIP_Problem.cc \
508PIP_Tree.cc \
509PIP_Problem.cc \
510Poly_Con_Relation.cc \
511Poly_Gen_Relation.cc \
512BHRZ03_Certificate.cc \
513H79_Certificate.cc \
514Grid_Certificate.cc \
515Partial_Function.cc \
516Polyhedron_nonpublic.cc \
517Polyhedron_public.cc \
518Polyhedron_chdims.cc \
519Polyhedron_widenings.cc \
520C_Polyhedron.cc \
521NNC_Polyhedron.cc \
522Grid_nonpublic.cc \
523Grid_public.cc \
524Grid_chdims.cc \
525Grid_widenings.cc \
526BD_Shape.cc \
527Octagonal_Shape.cc \
528Pointset_Powerset.cc \
529CO_Tree.cc \
530Sparse_Row.cc \
531Dense_Row.cc \
532Bit_Matrix.cc \
533Bit_Row.cc \
534Ph_Status.cc \
535Grid_Status.cc \
536Variable.cc \
537Variables_Set.cc \
538Grid_conversion.cc \
539Grid_simplify.cc \
540set_GMP_memory_alloc_funcs.cc \
541stdiobuf.cc \
542c_streambuf.cc \
543globals.cc \
544mp_std_bits.cc \
545Weight_Profiler.cc \
546version.cc \
547$(INCLUDE_FILES) \
548$(NESTED_INCLUDE_FILES) \
549swapping_sort_templates.hh \
550termination.cc \
551wrap_string.cc \
552Time.cc \
553Watchdog.cc \
554Threshold_Watcher.cc
555#Pointset_Ask_Tell.cc
556
557if NO_UNDEFINED
558
559NO_UNDEFINED_FLAG = -no-undefined
560
561endif NO_UNDEFINED
562
563libppl_la_LIBADD = @extra_libraries@
564
565libppl_la_LDFLAGS = \
566$(NO_UNDEFINED_FLAG) \
567-version-info $(LIBPPL_LT_CURRENT):$(LIBPPL_LT_REVISION):$(LIBPPL_LT_AGE)
568
569if BUILD_CXX_INTERFACE
570
571include_HEADERS = ppl.hh
572
573else !BUILD_CXX_INTERFACE
574
575noinst_HEADERS = ppl.hh
576
577endif !BUILD_CXX_INTERFACE
578
579nodist_noinst_HEADERS = ppl_include_files.hh
580
581ppl_include_files.hh: $(INCLUDE_FILES) Makefile
582	for file in $(INCLUDE_FILES) ; \
583	do \
584	  i="#include \"$$file\"" ; \
585	  ( cd $(top_srcdir)/src ; $(FGREP) -q "$$i" $(INCLUDE_FILES) ) || echo "$$i" ; \
586	done > $@
587
588EXTRA_DIST = ppl_header.hh ppl-config.cc.in version.hh.in
589
590if HAVE_PERL
591
592ppl.hh:	$(top_builddir)/ppl-config.h $(top_builddir)/src/version.hh ppl_header.hh ppl_include_files.hh $(INCLUDE_FILES) $(NESTED_INCLUDE_FILES) Makefile $(top_builddir)/utils/build_header
593	$(top_builddir)/utils/build_header \
594		-I $(top_builddir) -I $(top_builddir)/src \
595		$(top_srcdir)/src/ppl_header.hh >$@
596
597BUGS.hh: $(top_builddir)/utils/text2cxxarray $(top_srcdir)/BUGS
598	@echo "#ifndef PPL_BUGS_hh" >$@
599	@echo "#define PPL_BUGS_hh 1" >>$@
600	$(top_builddir)/utils/text2cxxarray --name=BUGS_array --decl-only \
601		$(top_srcdir)/BUGS >>$@
602	@echo "#endif // !defined(PPL_BUGS_hh)" >>$@
603BUGS.cc: $(top_builddir)/utils/text2cxxarray $(top_srcdir)/BUGS BUGS.hh
604	@echo "#include \"BUGS.hh\"" >$@
605	$(top_builddir)/utils/text2cxxarray --name=BUGS_array \
606		$(top_srcdir)/BUGS >>$@
607
608COPYING.hh: $(top_builddir)/utils/text2cxxarray $(top_srcdir)/COPYING
609	@echo "#ifndef PPL_COPYING_hh" >$@
610	@echo "#define PPL_COPYING_hh 1" >>$@
611	$(top_builddir)/utils/text2cxxarray --name=COPYING_array --decl-only \
612		$(top_srcdir)/COPYING >>$@
613	@echo "#endif // !defined(PPL_COPYING_hh)" >>$@
614COPYING.cc: $(top_builddir)/utils/text2cxxarray $(top_srcdir)/COPYING COPYING.hh
615	@echo "#include \"COPYING.hh\"" >$@
616	$(top_builddir)/utils/text2cxxarray --name=COPYING_array \
617		$(top_srcdir)/COPYING >>$@
618
619CREDITS.hh: $(top_builddir)/utils/text2cxxarray $(top_srcdir)/CREDITS
620	@echo "#ifndef PPL_CREDITS_hh" >$@
621	@echo "#define PPL_CREDITS_hh 1" >>$@
622	$(top_builddir)/utils/text2cxxarray --name=CREDITS_array --decl-only \
623		$(top_srcdir)/CREDITS >>$@
624	@echo "#endif // !defined(PPL_CREDITS_hh)" >>$@
625CREDITS.cc: $(top_builddir)/utils/text2cxxarray $(top_srcdir)/CREDITS CREDITS.hh
626	@echo "#include \"CREDITS.hh\"" >$@
627	$(top_builddir)/utils/text2cxxarray --name=CREDITS_array \
628		$(top_srcdir)/CREDITS >>$@
629
630else !HAVE_PERL
631
632ppl.hh.sed: Makefile
633	@echo "/^\/\* BEGIN ppl-config.h \*\/$$/ {"    >$@
634	@echo "  r $(top_builddir)/ppl-config.h"      >>$@
635	@echo "  : loop"                              >>$@
636	@echo "  /\n\/\* END ppl-config.h \*\/$$/ !{" >>$@
637	@echo "    N"                                 >>$@
638	@echo "    b loop"                            >>$@
639	@echo "  }"                                   >>$@
640	@echo "  d"                                   >>$@
641	@echo "}"                                     >>$@
642
643ppl.hh:	ppl.hh.dist ppl.hh.sed
644	$(SED) -f ppl.hh.sed ppl.hh.dist >$@
645	rm -f ppl.hh.sed
646
647BUGS.hh:	BUGS.hh.dist
648	cp -f BUGS.hh.dist $@
649BUGS.cc:	BUGS.cc.dist
650	cp -f BUGS.cc.dist $@
651COPYING.hh:	COPYING.hh.dist
652	cp -f COPYING.hh.dist $@
653COPYING.cc:	COPYING.cc.dist
654	cp -f COPYING.cc.dist $@
655CREDITS.hh:	CREDITS.hh.dist
656	cp -f CREDITS.hh.dist $@
657CREDITS.cc:	CREDITS.cc.dist
658	cp -f CREDITS.cc.dist $@
659
660endif !HAVE_PERL
661
662if USE_PRECOMPILED_HEADERS
663
664ppl.hh.gch: ppl.hh
665	$(CXXCOMPILE) -xc++-header -o $@ ppl.hh
666
667PRECOMPILED = ppl.hh.gch
668
669else !USE_PRECOMPILED_HEADERS
670
671PRECOMPILED =
672
673endif !USE_PRECOMPILED_HEADERS
674
675BUILT_SOURCES = \
676$(include_HEADERS) \
677$(nodist_noinst_HEADERS) \
678$(noinst_HEADERS) \
679$(PRECOMPILED) \
680BUGS.hh \
681BUGS.cc \
682COPYING.hh \
683COPYING.cc \
684CREDITS.hh \
685CREDITS.cc
686
687# ppl.hh is not distributed.
688# ppl.hh.dist, which is distributed, is a copy of ppl.hh;
689# likewise for BUGS.cc.dist, COPYING.cc.dist and CREDITS.cc.dist.
690dist-hook:
691	mv -f $(distdir)/ppl.hh $(distdir)/ppl.hh.dist
692	mv -f $(distdir)/BUGS.hh $(distdir)/BUGS.hh.dist
693	mv -f $(distdir)/BUGS.cc $(distdir)/BUGS.cc.dist
694	mv -f $(distdir)/COPYING.hh $(distdir)/COPYING.hh.dist
695	mv -f $(distdir)/COPYING.cc $(distdir)/COPYING.cc.dist
696	mv -f $(distdir)/CREDITS.hh $(distdir)/CREDITS.hh.dist
697	mv -f $(distdir)/CREDITS.cc $(distdir)/CREDITS.cc.dist
698
699CLEANFILES = $(BUILT_SOURCES)
700
701$(top_builddir)/utils/build_header:
702	$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/utils build_header
703
704$(top_builddir)/utils/text2cxxarray:
705	$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/utils text2cxxarray
706
707$(top_builddir)/ppl-config.h:
708	$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir) ppl-config.h
709