xref: /PHP-8.4/ext/dom/config.m4 (revision fbacc0f9)
1PHP_ARG_ENABLE([dom],
2  [whether to enable DOM support],
3  [AS_HELP_STRING([--disable-dom],
4    [Disable DOM support])],
5  [yes])
6
7if test "$PHP_DOM" != "no"; then
8  PHP_SETUP_LIBXML([DOM_SHARED_LIBADD], [
9    AC_DEFINE([HAVE_DOM], [1],
10      [Define to 1 if the PHP extension 'dom' is available.])
11    PHP_LEXBOR_CFLAGS="-I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
12    LEXBOR_DIR="lexbor/lexbor"
13    LEXBOR_SOURCES=m4_normalize(["
14      $LEXBOR_DIR/core/array_obj.c
15      $LEXBOR_DIR/core/array.c
16      $LEXBOR_DIR/core/avl.c
17      $LEXBOR_DIR/core/bst.c
18      $LEXBOR_DIR/core/conv.c
19      $LEXBOR_DIR/core/diyfp.c
20      $LEXBOR_DIR/core/dobject.c
21      $LEXBOR_DIR/core/dtoa.c
22      $LEXBOR_DIR/core/hash.c
23      $LEXBOR_DIR/core/mem.c
24      $LEXBOR_DIR/core/mraw.c
25      $LEXBOR_DIR/core/print.c
26      $LEXBOR_DIR/core/serialize.c
27      $LEXBOR_DIR/core/shs.c
28      $LEXBOR_DIR/core/str.c
29      $LEXBOR_DIR/core/strtod.c
30      $LEXBOR_DIR/css/css.c
31      $LEXBOR_DIR/css/log.c
32      $LEXBOR_DIR/css/parser.c
33      $LEXBOR_DIR/css/selectors/pseudo_state.c
34      $LEXBOR_DIR/css/selectors/pseudo.c
35      $LEXBOR_DIR/css/selectors/selector.c
36      $LEXBOR_DIR/css/selectors/selectors.c
37      $LEXBOR_DIR/css/selectors/state.c
38      $LEXBOR_DIR/css/state.c
39      $LEXBOR_DIR/css/syntax/anb.c
40      $LEXBOR_DIR/css/syntax/parser.c
41      $LEXBOR_DIR/css/syntax/state.c
42      $LEXBOR_DIR/css/syntax/syntax.c
43      $LEXBOR_DIR/css/syntax/token.c
44      $LEXBOR_DIR/css/syntax/tokenizer.c
45      $LEXBOR_DIR/css/syntax/tokenizer/error.c
46      $LEXBOR_DIR/dom/interface.c
47      $LEXBOR_DIR/dom/interfaces/attr.c
48      $LEXBOR_DIR/dom/interfaces/cdata_section.c
49      $LEXBOR_DIR/dom/interfaces/character_data.c
50      $LEXBOR_DIR/dom/interfaces/comment.c
51      $LEXBOR_DIR/dom/interfaces/document_fragment.c
52      $LEXBOR_DIR/dom/interfaces/document_type.c
53      $LEXBOR_DIR/dom/interfaces/document.c
54      $LEXBOR_DIR/dom/interfaces/element.c
55      $LEXBOR_DIR/dom/interfaces/node.c
56      $LEXBOR_DIR/dom/interfaces/processing_instruction.c
57      $LEXBOR_DIR/dom/interfaces/shadow_root.c
58      $LEXBOR_DIR/dom/interfaces/text.c
59      $LEXBOR_DIR/encoding/big5.c
60      $LEXBOR_DIR/encoding/decode.c
61      $LEXBOR_DIR/encoding/encode.c
62      $LEXBOR_DIR/encoding/encoding.c
63      $LEXBOR_DIR/encoding/euc_kr.c
64      $LEXBOR_DIR/encoding/gb18030.c
65      $LEXBOR_DIR/encoding/iso_2022_jp_katakana.c
66      $LEXBOR_DIR/encoding/jis0208.c
67      $LEXBOR_DIR/encoding/jis0212.c
68      $LEXBOR_DIR/encoding/range.c
69      $LEXBOR_DIR/encoding/res.c
70      $LEXBOR_DIR/encoding/single.c
71      $LEXBOR_DIR/html/encoding.c
72      $LEXBOR_DIR/html/interface.c
73      $LEXBOR_DIR/html/interfaces/anchor_element.c
74      $LEXBOR_DIR/html/interfaces/area_element.c
75      $LEXBOR_DIR/html/interfaces/audio_element.c
76      $LEXBOR_DIR/html/interfaces/base_element.c
77      $LEXBOR_DIR/html/interfaces/body_element.c
78      $LEXBOR_DIR/html/interfaces/br_element.c
79      $LEXBOR_DIR/html/interfaces/button_element.c
80      $LEXBOR_DIR/html/interfaces/canvas_element.c
81      $LEXBOR_DIR/html/interfaces/d_list_element.c
82      $LEXBOR_DIR/html/interfaces/data_element.c
83      $LEXBOR_DIR/html/interfaces/data_list_element.c
84      $LEXBOR_DIR/html/interfaces/details_element.c
85      $LEXBOR_DIR/html/interfaces/dialog_element.c
86      $LEXBOR_DIR/html/interfaces/directory_element.c
87      $LEXBOR_DIR/html/interfaces/div_element.c
88      $LEXBOR_DIR/html/interfaces/document.c
89      $LEXBOR_DIR/html/interfaces/element.c
90      $LEXBOR_DIR/html/interfaces/embed_element.c
91      $LEXBOR_DIR/html/interfaces/field_set_element.c
92      $LEXBOR_DIR/html/interfaces/font_element.c
93      $LEXBOR_DIR/html/interfaces/form_element.c
94      $LEXBOR_DIR/html/interfaces/frame_element.c
95      $LEXBOR_DIR/html/interfaces/frame_set_element.c
96      $LEXBOR_DIR/html/interfaces/head_element.c
97      $LEXBOR_DIR/html/interfaces/heading_element.c
98      $LEXBOR_DIR/html/interfaces/hr_element.c
99      $LEXBOR_DIR/html/interfaces/html_element.c
100      $LEXBOR_DIR/html/interfaces/iframe_element.c
101      $LEXBOR_DIR/html/interfaces/image_element.c
102      $LEXBOR_DIR/html/interfaces/input_element.c
103      $LEXBOR_DIR/html/interfaces/label_element.c
104      $LEXBOR_DIR/html/interfaces/legend_element.c
105      $LEXBOR_DIR/html/interfaces/li_element.c
106      $LEXBOR_DIR/html/interfaces/link_element.c
107      $LEXBOR_DIR/html/interfaces/map_element.c
108      $LEXBOR_DIR/html/interfaces/marquee_element.c
109      $LEXBOR_DIR/html/interfaces/media_element.c
110      $LEXBOR_DIR/html/interfaces/menu_element.c
111      $LEXBOR_DIR/html/interfaces/meta_element.c
112      $LEXBOR_DIR/html/interfaces/meter_element.c
113      $LEXBOR_DIR/html/interfaces/mod_element.c
114      $LEXBOR_DIR/html/interfaces/o_list_element.c
115      $LEXBOR_DIR/html/interfaces/object_element.c
116      $LEXBOR_DIR/html/interfaces/opt_group_element.c
117      $LEXBOR_DIR/html/interfaces/option_element.c
118      $LEXBOR_DIR/html/interfaces/output_element.c
119      $LEXBOR_DIR/html/interfaces/paragraph_element.c
120      $LEXBOR_DIR/html/interfaces/param_element.c
121      $LEXBOR_DIR/html/interfaces/picture_element.c
122      $LEXBOR_DIR/html/interfaces/pre_element.c
123      $LEXBOR_DIR/html/interfaces/progress_element.c
124      $LEXBOR_DIR/html/interfaces/quote_element.c
125      $LEXBOR_DIR/html/interfaces/script_element.c
126      $LEXBOR_DIR/html/interfaces/select_element.c
127      $LEXBOR_DIR/html/interfaces/slot_element.c
128      $LEXBOR_DIR/html/interfaces/source_element.c
129      $LEXBOR_DIR/html/interfaces/span_element.c
130      $LEXBOR_DIR/html/interfaces/style_element.c
131      $LEXBOR_DIR/html/interfaces/table_caption_element.c
132      $LEXBOR_DIR/html/interfaces/table_cell_element.c
133      $LEXBOR_DIR/html/interfaces/table_col_element.c
134      $LEXBOR_DIR/html/interfaces/table_element.c
135      $LEXBOR_DIR/html/interfaces/table_row_element.c
136      $LEXBOR_DIR/html/interfaces/table_section_element.c
137      $LEXBOR_DIR/html/interfaces/template_element.c
138      $LEXBOR_DIR/html/interfaces/text_area_element.c
139      $LEXBOR_DIR/html/interfaces/time_element.c
140      $LEXBOR_DIR/html/interfaces/title_element.c
141      $LEXBOR_DIR/html/interfaces/track_element.c
142      $LEXBOR_DIR/html/interfaces/u_list_element.c
143      $LEXBOR_DIR/html/interfaces/unknown_element.c
144      $LEXBOR_DIR/html/interfaces/video_element.c
145      $LEXBOR_DIR/html/interfaces/window.c
146      $LEXBOR_DIR/html/parser.c
147      $LEXBOR_DIR/html/token_attr.c
148      $LEXBOR_DIR/html/token.c
149      $LEXBOR_DIR/html/tokenizer.c
150      $LEXBOR_DIR/html/tokenizer/error.c
151      $LEXBOR_DIR/html/tokenizer/state_comment.c
152      $LEXBOR_DIR/html/tokenizer/state_doctype.c
153      $LEXBOR_DIR/html/tokenizer/state_rawtext.c
154      $LEXBOR_DIR/html/tokenizer/state_rcdata.c
155      $LEXBOR_DIR/html/tokenizer/state_script.c
156      $LEXBOR_DIR/html/tokenizer/state.c
157      $LEXBOR_DIR/html/tree.c
158      $LEXBOR_DIR/html/tree/active_formatting.c
159      $LEXBOR_DIR/html/tree/error.c
160      $LEXBOR_DIR/html/tree/insertion_mode/after_after_body.c
161      $LEXBOR_DIR/html/tree/insertion_mode/after_after_frameset.c
162      $LEXBOR_DIR/html/tree/insertion_mode/after_body.c
163      $LEXBOR_DIR/html/tree/insertion_mode/after_frameset.c
164      $LEXBOR_DIR/html/tree/insertion_mode/after_head.c
165      $LEXBOR_DIR/html/tree/insertion_mode/before_head.c
166      $LEXBOR_DIR/html/tree/insertion_mode/before_html.c
167      $LEXBOR_DIR/html/tree/insertion_mode/foreign_content.c
168      $LEXBOR_DIR/html/tree/insertion_mode/in_body.c
169      $LEXBOR_DIR/html/tree/insertion_mode/in_caption.c
170      $LEXBOR_DIR/html/tree/insertion_mode/in_cell.c
171      $LEXBOR_DIR/html/tree/insertion_mode/in_column_group.c
172      $LEXBOR_DIR/html/tree/insertion_mode/in_frameset.c
173      $LEXBOR_DIR/html/tree/insertion_mode/in_head_noscript.c
174      $LEXBOR_DIR/html/tree/insertion_mode/in_head.c
175      $LEXBOR_DIR/html/tree/insertion_mode/in_row.c
176      $LEXBOR_DIR/html/tree/insertion_mode/in_select_in_table.c
177      $LEXBOR_DIR/html/tree/insertion_mode/in_select.c
178      $LEXBOR_DIR/html/tree/insertion_mode/in_table_body.c
179      $LEXBOR_DIR/html/tree/insertion_mode/in_table_text.c
180      $LEXBOR_DIR/html/tree/insertion_mode/in_table.c
181      $LEXBOR_DIR/html/tree/insertion_mode/in_template.c
182      $LEXBOR_DIR/html/tree/insertion_mode/initial.c
183      $LEXBOR_DIR/html/tree/insertion_mode/text.c
184      $LEXBOR_DIR/html/tree/open_elements.c
185      $LEXBOR_DIR/ns/ns.c
186      $LEXBOR_DIR/ports/posix/lexbor/core/memory.c
187      $LEXBOR_DIR/selectors-adapted/selectors.c
188      $LEXBOR_DIR/tag/tag.c
189    "])
190    PHP_NEW_EXTENSION([dom], m4_normalize([
191        attr.c
192        cdatasection.c
193        characterdata.c
194        comment.c
195        document.c
196        documentfragment.c
197        documenttype.c
198        dom_iterators.c
199        domexception.c
200        domimplementation.c
201        element.c
202        entity.c
203        entityreference.c
204        html_collection.c
205        html_document.c
206        html5_parser.c
207        html5_serializer.c
208        infra.c
209        inner_html_mixin.c
210        namednodemap.c
211        namespace_compat.c
212        node.c
213        nodelist.c
214        notation.c
215        parentnode/css_selectors.c
216        parentnode/tree.c
217        php_dom.c
218        private_data.c
219        processinginstruction.c
220        text.c
221        token_list.c
222        xml_document.c
223        xml_serializer.c
224        xpath_callbacks.c
225        xpath.c
226        $LEXBOR_SOURCES
227      ]),
228      [$ext_shared],,
229      [$PHP_LEXBOR_CFLAGS])
230    PHP_ADD_BUILD_DIR([
231      $ext_builddir/parentnode
232      $ext_builddir/$LEXBOR_DIR/core
233      $ext_builddir/$LEXBOR_DIR/css/selectors
234      $ext_builddir/$LEXBOR_DIR/css/syntax/tokenizer
235      $ext_builddir/$LEXBOR_DIR/css/tokenizer
236      $ext_builddir/$LEXBOR_DIR/dom/interfaces
237      $ext_builddir/$LEXBOR_DIR/encoding
238      $ext_builddir/$LEXBOR_DIR/html/interfaces
239      $ext_builddir/$LEXBOR_DIR/html/tokenizer
240      $ext_builddir/$LEXBOR_DIR/html/tree/insertion_mode
241      $ext_builddir/$LEXBOR_DIR/ns
242      $ext_builddir/$LEXBOR_DIR/ports/posix/lexbor/core
243      $ext_builddir/$LEXBOR_DIR/selectors-adapted
244      $ext_builddir/$LEXBOR_DIR/tag
245    ])
246    PHP_SUBST([DOM_SHARED_LIBADD])
247    PHP_INSTALL_HEADERS([ext/dom], m4_normalize([
248      dom_ce.h
249      namespace_compat.h
250      xml_common.h
251      xpath_callbacks.h
252    ]))
253    PHP_ADD_EXTENSION_DEP(dom, libxml)
254  ])
255fi
256