lua-utils: added mrp_lua_include_file.
[profile/ivi/murphy.git] / src / Makefile.am
1 SUBDIRS         = murphy-db . \
2                   common/tests breedline/tests core/tests \
3                   core/lua-decision/tests resolver/tests \
4                   daemon/tests  plugins/tests
5
6 BUILT_SOURCES   =
7
8 AM_CFLAGS       = $(WARNING_CFLAGS) $(INCLUDES) -DLIBDIR=\"@LIBDIR@\"
9 MURPHY_CFLAGS   =
10 pkgconfigdir    = ${libdir}/pkgconfig
11
12 bin_PROGRAMS    =
13 lib_LTLIBRARIES =
14 pkgconfig_DATA  =
15 EXTRA_DIST      =
16
17 QUIET_GEN      = $(Q:@=@echo '  GEN   '$@;)
18
19 LEXCOMPILE      = $(LEX) $(LFLAGS) $(AM_LFLAGS)
20 YACCCOMPILE     = $(YACC) $(YFLAGS) $(AM_YFLAGS)
21
22 INCLUDES        = -I$(top_builddir) -I$(top_builddir)/src \
23                   -I$(top_builddir)/src/murphy-db/include
24 BUILT_SOURCES   =
25
26 ###################################
27 # murphy common library
28 #
29
30 lib_LTLIBRARIES += libmurphy-common.la
31 EXTRA_DIST      += common/murphy-common.pc
32 pkgconfig_DATA  += common/murphy-common.pc
33
34
35 libmurphy_commonh_ladir      =          \
36                 $(includedir)/murphy
37
38 libmurphy_commonh_la_HEADERS =          \
39                 common.h                \
40                 config.h
41
42 libmurphy_common_ladir      =           \
43                 $(includedir)/murphy/common
44
45 libmurphy_common_la_HEADERS =           \
46                 common/macros.h         \
47                 common/list.h           \
48                 common/log.h            \
49                 common/debug.h          \
50                 common/debug-info.h     \
51                 common/env.h            \
52                 common/mm.h             \
53                 common/hashtbl.h        \
54                 common/process.h        \
55                 common/mainloop.h       \
56                 common/utils.h          \
57                 common/file-utils.h     \
58                 common/msg.h            \
59                 common/refcnt.h         \
60                 common/fragbuf.h        \
61                 common/json.h           \
62                 common/transport.h
63
64 libmurphy_common_la_REGULAR_SOURCES =           \
65                 common/log.c                    \
66                 common/debug.c                  \
67                 common/env.c                    \
68                 common/mm.c                     \
69                 common/hashtbl.c                \
70                 common/mainloop.c               \
71                 common/utils.c                  \
72                 common/file-utils.c             \
73                 common/process.c                \
74                 common/msg.c                    \
75                 common/fragbuf.c                \
76                 common/json.c                   \
77                 common/transport.c              \
78                 common/stream-transport.c       \
79                 common/internal-transport.c     \
80                 common/dgram-transport.c
81
82 libmurphy_common_la_SOURCES =                           \
83                 $(libmurphy_common_la_REGULAR_SOURCES)  \
84                 common-func-info.c
85
86 libmurphy_common_la_CFLAGS  =           \
87                 $(AM_CFLAGS)            \
88                 $(JSON_CFLAGS)
89
90 libmurphy_common_la_LDFLAGS =                                   \
91                 -Wl,-version-script=linker-script.common        \
92                 -version-info @MURPHY_VERSION_INFO@
93
94 libmurphy_common_la_LIBADD  =           \
95                 $(JSON_LIBS)            \
96                 -lrt
97
98 libmurphy_common_la_DEPENDENCIES = linker-script.common
99
100 libcommonincludedir      = $(includedir)/murphy/common
101 libcommoninclude_HEADERS = $(libmurphy_common_la_HEADERS)
102
103 if WEBSOCKETS_ENABLED
104 libmurphy_common_la_HEADERS +=                  \
105                 common/websocklib.h             \
106                 common/websocket.h
107
108 libmurphy_common_la_REGULAR_SOURCES +=          \
109                 common/websocklib.c             \
110                 common/websocket.c              \
111                 common/wsck-transport.c
112
113 libmurphy_common_la_CFLAGS +=                   \
114                 $(WEBSOCKETS_CFLAGS)
115
116 libmurphy_common_la_LIBADD +=                   \
117                 $(WEBSOCKETS_LIBS)
118
119 EXTRA_DIST     += $(webconsole_DATA);
120 webconsoledir   = $(datadir)/murphy/webconsole
121 webconsole_DATA =                               \
122                 plugins/console/console.js      \
123                 plugins/console/console.html
124 endif
125
126
127 # linker script generation
128 linker-script.common: $(libmurphy_common_la_HEADERS)
129         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
130                 -c "$(libmurphy_common_la_CFLAGS)" -o $@ $^
131
132 clean-linker-script::
133         -rm -f linker-script.common
134
135 generate-linker-scripts: linker-script.common
136
137 # debug file:line-function mapping generation
138 common-func-info.c: $(libmurphy_common_la_REGULAR_SOURCES)
139         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
140
141 clean-func-infos::
142         -rm common-func-info.c
143
144 ###################################
145 # murphy lua utilities
146 #
147
148 lib_LTLIBRARIES += libmurphy-lua-utils.la
149 EXTRA_DIST      += core/lua-utils/murphy-lua-utils.pc
150 pkgconfig_DATA  += core/lua-utils/murphy-lua-utils.pc
151
152 libmurphy_lua_utils_ladir =                                     \
153                 $(includedir)/murphy/core/lua-utils
154
155 libmurphy_lua_utils_la_HEADERS =                                \
156                 core/lua-utils/strarray.h                       \
157                 core/lua-utils/funcbridge.h                     \
158                 core/lua-utils/object.h                         \
159                 core/lua-utils/error.h                          \
160                 core/lua-utils/include.h
161
162 libmurphy_lua_utils_la_REGULAR_SOURCES =                        \
163                 core/lua-utils/strarray.c                       \
164                 core/lua-utils/funcbridge.c                     \
165                 core/lua-utils/object.c                         \
166                 core/lua-utils/error.c                          \
167                 core/lua-utils/include.c
168
169 libmurphy_lua_utils_la_SOURCES =                                \
170                 $(libmurphy_lua_utils_la_REGULAR_SOURCES)       \
171                 lua-utils-func-info.c
172
173 libmurphy_lua_utils_la_CFLAGS =                                 \
174                 $(AM_CFLAGS)                                    \
175                 $(LUA_CFLAGS)
176
177 libmurphy_lua_utils_la_LDFLAGS =                                \
178                 -Wl,-version-script=linker-script.lua-utils     \
179                 -version-info @MURPHY_VERSION_INFO@
180
181 libmurphy_lua_utils_la_LIBADD =                                 \
182                 $(LUA_LIBS)
183
184 libmurphy_lua_utils_la_DEPENDENCIES = linker-script.lua-utils
185
186 # debug file:line-function mapping generation
187 lua-utils-func-info.c: $(libmurphy_lua_utils_la_REGULAR_SOURCES)
188         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
189
190 clean-func-infos::
191         -rm lua-utils-func-info.c
192
193 # lua-utils linker script generation
194 linker-script.lua-utils: $(libmurphy_lua_utils_la_HEADERS)
195         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
196                 -c "$(libmurphy_lua_utils_la_CFLAGS)" -o $@ $^
197
198 clean-linker-script::
199         -rm -f linker-script.lua-utils
200
201 generate-linker-scripts: linker-script.lua-utils
202
203 ###################################
204 # murphy lua decision network
205 #
206
207 lib_LTLIBRARIES += libmurphy-lua-decision.la
208 EXTRA_DIST      += core/lua-decision/murphy-lua-decision.pc
209 pkgconfig_DATA  += core/lua-decision/murphy-lua-decision.pc
210
211 libmurphy_lua_decision_ladir =                                  \
212                 $(includedir)/murphy/core/lua-decision
213
214 libmurphy_lua_decision_la_HEADERS =                             \
215                 core/lua-decision/mdb.h                         \
216                 core/lua-decision/element.h
217
218 libmurphy_lua_decision_la_REGULAR_SOURCES =                     \
219                 core/lua-decision/mdb.c                         \
220                 core/lua-decision/element.c
221
222 libmurphy_lua_decision_la_SOURCES =                             \
223                 $(libmurphy_lua_decision_la_REGULAR_SOURCES)    \
224                 lua-decision-func-info.c
225
226 libmurphy_lua_decision_la_CFLAGS =                              \
227                 $(AM_CFLAGS)                                    \
228                 $(LUA_CFLAGS)
229
230 libmurphy_lua_decision_la_LDFLAGS =                             \
231                 -Wl,-version-script=linker-script.lua-decision  \
232                 -version-info @MURPHY_VERSION_INFO@
233
234 libmurphy_lua_decision_la_LIBADD =                              \
235                 $(LUA_LIBS)
236
237 libmurphy_lua_decision_la_DEPENDENCIES = linker-script.lua-decision
238
239 # debug file:line-function mapping generation
240 lua-decision-func-info.c: $(libmurphy_lua_decision_la_REGULAR_SOURCES)
241         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
242
243 clean-func-infos::
244         -rm lua-decision-func-info.c
245
246 # lua-decision linker script generation
247 linker-script.lua-decision: $(libmurphy_lua_decision_la_HEADERS)
248         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
249                 -c "$(libmurphy_lua_decision_la_CFLAGS)" -o $@ $^
250
251 clean-linker-script::
252         -rm -f linker-script.lua-decision
253
254 generate-linker-scripts: linker-script.lua-decision
255
256 ###################################
257 # murphy core library
258 #
259
260 lib_LTLIBRARIES += libmurphy-core.la
261 EXTRA_DIST      += core/murphy-core.pc
262 pkgconfig_DATA  += core/murphy-core.pc
263
264 LUA_BINDINGS_SOURCES =                                  \
265                 core/lua-bindings/lua-murphy.c          \
266                 core/lua-bindings/lua-lua.c             \
267                 core/lua-bindings/lua-plugin.c          \
268                 core/lua-bindings/lua-log.c             \
269                 core/lua-bindings/lua-console.c         \
270                 core/lua-bindings/lua-bitwise.c         \
271                 core/lua-bindings/lua-json.c            \
272                 core/lua-bindings/lua-timer.c           \
273                 core/lua-bindings/lua-deferred.c        \
274                 core/lua-bindings/lua-sighandler.c      \
275                 core/lua-bindings/lua-transport.c
276
277 libmurphy_core_lua_bindings_ladir =                     \
278                 $(includedir)/murphy/core/lua-bindings
279
280 libmurphy_core_lua_bindings_la_HEADERS =                \
281                 core/lua-bindings/murphy.h              \
282                 core/lua-bindings/lua-json.h
283
284 libmurphy_coreh_ladir      =            \
285                 $(includedir)/murphy
286
287 libmurphy_coreh_la_HEADERS =            \
288                 core.h
289
290 libmurphy_core_ladir =                  \
291                 $(includedir)/murphy/core
292
293 libmurphy_core_la_HEADERS =             \
294                 core/context.h          \
295                 core/plugin.h           \
296                 core/console-command.h  \
297                 core/console.h          \
298                 core/scripting.h        \
299                 core/method.h           \
300                 core/event.h            \
301                 core/auth.h
302
303 libmurphy_core_la_REGULAR_SOURCES =     \
304                 core/context.c          \
305                 core/plugin.c           \
306                 core/console.c          \
307                 core/scripting.c        \
308                 core/method.c           \
309                 core/event.c            \
310                 core/auth.c             \
311                 core/auth-deny.c        \
312                 $(LUA_BINDINGS_SOURCES)
313
314 if SMACK_ENABLED
315 libmurphy_core_la_REGULAR_SOURCES +=    \
316                 core/auth-smack.c
317 endif
318
319 libmurphy_core_la_SOURCES =             \
320                 $(libmurphy_core_la_REGULAR_SOURCES) \
321                 core-func-info.c
322
323 libmurphy_core_la_CFLAGS  =             \
324                 $(AM_CFLAGS)            \
325                 $(LUA_CFLAGS)           \
326                 $(JSON_CFLAGS)          \
327                 $(SMACK_CFLAGS)
328
329 libmurphy_core_la_LDFLAGS =             \
330                 -Wl,-version-script=linker-script.core \
331                 -version-info @MURPHY_VERSION_INFO@
332
333 libmurphy_core_la_LIBADD  =                     \
334                 libmurphy-common.la             \
335                 libmurphy-lua-decision.la       \
336                 libmurphy-lua-utils.la          \
337                 $(LUA_LIBS)                     \
338                 $(SMACK_LIBS)                   \
339                 -ldl
340
341 libmurphy_core_la_DEPENDENCIES = linker-script.core        \
342         $(filter %.la, $(libmurphy_core_la_LIBADD))
343
344 # core linker script generation
345 linker-script.core: $(libmurphy_core_la_HEADERS) \
346                     $(libmurphy_core_lua_bindings_la_HEADERS)
347         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
348                 -c "$(libmurphy_core_la_CFLAGS)" -o $@ $^
349
350 clean-linker-script::
351         -rm -f linker-script.core
352
353 generate-linker-scripts: linker-script.core
354
355 # debug file:line-function mapping generation
356 core-func-info.c: $(libmurphy_core_la_REGULAR_SOURCES)
357         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
358
359 clean-func-infos::
360         -rm core-func-info.c
361
362 ###################################
363 # murphy dbus library
364 #
365
366 murphy_dbus_headers =                   \
367                 common/dbus.h           \
368                 common/dbus-transport.h
369
370 if DBUS_ENABLED
371 lib_LTLIBRARIES += libmurphy-dbus.la
372 EXTRA_DIST      += common/murphy-dbus.pc
373 pkgconfig_DATA  += common/murphy-dbus.pc
374
375 libmurphy_dbus_ladir      =             \
376                 $(includedir)/murphy/common
377
378 libmurphy_dbus_la_HEADERS = $(murphy_dbus_headers)
379
380
381 libmurphy_dbus_la_REGULAR_SOURCES =     \
382                 common/dbus.c           \
383                 common/dbus-glue.c      \
384                 common/dbus-transport.c
385
386 libmurphy_dbus_la_SOURCES =             \
387                 $(libmurphy_dbus_la_REGULAR_SOURCES) \
388                 dbus-func-info.c
389
390 libmurphy_dbus_la_CFLAGS  =             \
391                 $(AM_CFLAGS)            \
392                 $(DBUS_CFLAGS)
393
394 libmurphy_dbus_la_LDFLAGS =             \
395                 -Wl,-version-script=linker-script.dbus \
396                 -version-info @MURPHY_VERSION_INFO@
397
398 libmurphy_dbus_la_LIBADD  =             \
399                 -lrt $(DBUS_LIBS)
400
401 libmurphy_dbus_la_DEPENDENCIES = linker-script.dbus
402
403 libdbusincludedir      = $(includedir)/murphy/dbus
404 libdbusinclude_HEADERS = $(libmurphy_dbus_la_HEADERS)
405
406 # debug file:line-function mapping generation
407 dbus-func-info.c: $(libmurphy_dbus_la_REGULAR_SOURCES)
408         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
409
410 clean-func-infos::
411         -rm dbus-func-info.c
412 endif
413
414 # linker script generation
415 linker-script.dbus: $(murphy_dbus_headers)
416         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
417                 -c "$(libmurphy_dbus_la_CFLAGS)" -o $@ $^
418
419 clean-linker-script::
420         -rm -f linker-script.dbus
421
422 generate-linker-scripts: linker-script.dbus
423
424
425 ###################################
426 # murphy pulse glue library
427 #
428
429 murphy_pulse_headers =                  \
430                 common/pulse-glue.h
431
432 if PULSE_ENABLED
433 lib_LTLIBRARIES += libmurphy-pulse.la
434 EXTRA_DIST      += common/murphy-pulse.pc
435 pkgconfig_DATA  += common/murphy-pulse.pc
436
437 libmurphy_pulse_ladir      =            \
438                 $(includedir)/murphy/common
439
440 libmurphy_pulse_la_HEADERS = $(murphy_pulse_headers)
441
442 libmurphy_pulse_la_SOURCES =            \
443                 common/pulse-glue.c
444
445 libmurphy_pulse_la_CFLAGS  =            \
446                 $(AM_CFLAGS)            \
447                 $(PULSE_CFLAGS)
448
449 libmurphy_pulse_la_LDFLAGS =            \
450                 -Wl,-version-script=linker-script.pulse \
451                 -version-info @MURPHY_VERSION_INFO@
452
453 libmurphy_pulse_la_LIBADD  =
454
455 libmurphy_pulse_la_DEPENDENCIES = linker-script.pulse
456
457 libpulseincludedir      = $(includedir)/murphy/pulse
458 libpulseinclude_HEADERS = $(libmurphy_pulse_la_HEADERS)
459 endif
460
461 # linker script generation
462 linker-script.pulse: $(murphy_pulse_headers)
463         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
464                 -c "$(libmurphy_pulse_la_CFLAGS)" -o $@ $^
465
466 clean-linker-script::
467         -rm -f linker-script.pulse
468
469 generate-linker-scripts: linker-script.pulse
470
471 ###################################
472 # murphy ecore glue library
473 #
474
475 murphy_ecore_headers =                  \
476                 common/ecore-glue.h
477
478 if ECORE_ENABLED
479 lib_LTLIBRARIES += libmurphy-ecore.la
480 EXTRA_DIST      += common/murphy-ecore.pc
481 pkgconfig_DATA  += common/murphy-ecore.pc
482
483 libmurphy_ecore_ladir      =            \
484                 $(includedir)/murphy/common
485
486 libmurphy_ecore_la_HEADERS = $(murphy_ecore_headers)
487
488 libmurphy_ecore_la_SOURCES =            \
489                 common/ecore-glue.c
490
491 libmurphy_ecore_la_CFLAGS  =            \
492                 $(AM_CFLAGS)            \
493                 $(ECORE_CFLAGS)
494
495 libmurphy_ecore_la_LDFLAGS =            \
496                 -Wl,-version-script=linker-script.ecore \
497                 -version-info @MURPHY_VERSION_INFO@
498
499 libmurphy_ecore_la_LIBADD  =
500
501 libmurphy_ecore_la_DEPENDENCIES = linker-script.ecore
502
503 libecoreincludedir      = $(includedir)/murphy/ecore
504 libecoreinclude_HEADERS = $(libmurphy_ecore_la_HEADERS)
505 endif
506
507 # linker script generation
508 linker-script.ecore: $(murphy_ecore_headers)
509         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
510                 -c "$(libmurphy_ecore_la_CFLAGS)" -o $@ $^
511
512 clean-linker-script::
513         -rm -f linker-script.ecore
514
515 generate-linker-scripts: linker-script.ecore
516
517 ###################################
518 # murphy glib glue library
519 #
520
521 murphy_glib_headers =                   \
522                 common/glib-glue.h
523
524 if GLIB_ENABLED
525 lib_LTLIBRARIES += libmurphy-glib.la
526 EXTRA_DIST      += common/murphy-glib.pc
527 pkgconfig_DATA  += common/murphy-glib.pc
528
529 libmurphy_glib_ladir      =             \
530                 $(includedir)/murphy/common
531
532 libmurphy_glib_la_HEADERS = $(murphy_glib_headers)
533
534 libmurphy_glib_la_SOURCES =             \
535                 common/glib-glue.c
536
537 libmurphy_glib_la_CFLAGS  =             \
538                 $(AM_CFLAGS)            \
539                 $(GLIB_CFLAGS)
540
541 libmurphy_glib_la_LDFLAGS =             \
542                 -Wl,-version-script=linker-script.glib \
543                 -version-info @MURPHY_VERSION_INFO@
544
545 libmurphy_glib_la_LIBADD  =
546
547 libmurphy_glib_la_DEPENDENCIES = linker-script.glib
548
549 libglibincludedir      = $(includedir)/murphy/glib
550 libglibinclude_HEADERS = $(libmurphy_glib_la_HEADERS)
551 endif
552
553 # linker script generation
554 linker-script.glib: $(murphy_glib_headers)
555         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
556                 -c "$(libmurphy_glib_la_CFLAGS)" -o $@ $^
557
558 clean-linker-script::
559         -rm -f linker-script.glib
560
561 generate-linker-scripts: linker-script.glib
562
563 ###################################
564 # murphy qt glue library
565 #
566
567 murphy_qt_headers       =               \
568                 common/qt-glue.h
569
570 if QT_ENABLED
571 lib_LTLIBRARIES += libmurphy-qt.la
572 EXTRA_DIST      += common/murphy-qt.pc
573 pkgconfig_DATA  += common/murphy-qt.pc
574
575 BUILT_SOURCES   += common/qt-glue-priv.moc.h
576
577 libmurphy_qt_ladir      =               \
578                 $(includedir)/murphy/common
579
580 libmurphy_qt_la_HEADERS = $(murphy_qt_headers)
581
582 libmurphy_qt_la_SOURCES =               \
583                 common/qt-glue.cpp
584
585 libmurphy_qt_la_CPPFLAGS  =             \
586                 $(AM_CFLAGS)            \
587                 $(QTCORE_CFLAGS)
588
589 libmurphy_qt_la_LDFLAGS =               \
590                 -Wl,-version-script=linker-script.qt \
591                 -version-info @MURPHY_VERSION_INFO@
592
593 libmurphy_qt_la_LIBADD  = $(QTCORE_LIBS)
594
595 libmurphy_qt_la_DEPENDENCIES = linker-script.qt
596
597 libqtincludedir      = $(includedir)/murphy/qt
598 libqtinclude_HEADERS = $(libmurphy_qt_la_HEADERS)
599
600 # run moc to generate Qt meta objects
601 common/qt-glue-priv.moc.h: common/qt-glue-priv.h
602         $(QUIET_GEN)$(QT_MOC) -DQT_ENABLED=1 $< -o$@
603 endif
604
605 # linker script generation
606 linker-script.qt: $(murphy_qt_headers)
607         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
608                 -c "$(libmurphy_qt_la_CPPFLAGS) -DQT_ENABLED=1" -o $@ $^
609
610 clean-linker-script::
611         -rm -f linker-script.qt
612
613 generate-linker-scripts: linker-script.qt
614
615 ###################################
616 # murphy resolver library
617 #
618
619 lib_LTLIBRARIES += libmurphy-resolver.la
620 EXTRA_DIST      += resolver/murphy-resolver.pc
621 pkgconfig_DATA  += resolver/murphy-resolver.pc
622
623 BUILT_SOURCES   += resolver/scanner.c resolver/parser.c
624
625 libmurphy_resolver_ladir =                      \
626                 $(includedir)/murphy/resolver
627
628 libmurphy_resolver_la_HEADERS =                 \
629                 resolver/resolver.h
630
631 SIMPLE_SCRIPT_SOURCES =                                         \
632                 resolver/scripting/simple/simple-script.c       \
633                 resolver/scripting/simple/simple-scanner.c      \
634                 resolver/scripting/simple/simple-parser.c       \
635                 resolver/scripting/simple/call.c                \
636                 resolver/scripting/simple/builtins.c
637
638 libmurphy_resolver_la_REGULAR_SOURCES =                         \
639                 resolver/resolver.c                             \
640                 resolver/parser.c                               \
641                 resolver/scanner.c                              \
642                 resolver/target.c                               \
643                 resolver/target-sorter.c                        \
644                 resolver/fact.c                                 \
645                 resolver/events.c                               \
646                 resolver/console.c                              \
647                 $(SIMPLE_SCRIPT_SOURCES)
648
649 libmurphy_resolver_la_SOURCES =                 \
650                 $(libmurphy_resolver_la_REGULAR_SOURCES)        \
651                 resolver-func-info.c
652
653 libmurphy_resolver_la_CFLAGS =                  \
654                 $(AM_CFLAGS)                    \
655                 $(JSON_CFLAGS)
656
657 libmurphy_resolver_la_LDFLAGS =                 \
658                 -Wl,-version-script=linker-script.resolver \
659                 -version-info @MURPHY_VERSION_INFO@
660
661 libmurphy_resolver_la_LIBADD =          \
662                 libmurphy-core.la       \
663                 libmurphy-common.la     \
664                 murphy-db/mql/libmql.la \
665                 murphy-db/mqi/libmqi.la \
666                 murphy-db/mdb/libmdb.la
667
668 libmurphy_resolver_la_DEPENDENCIES = linker-script.resolver  \
669         $(filter %.la, $(libmurphy_resolver_la_LIBADD))
670
671 # resolver lexical analyser and parser generation
672 RESOLVER_PARSER_PREFIX = yy_res_
673
674 resolver/scanner.c: resolver/scanner.l resolver/parser.c
675         $(LEXCOMPILE) -P $(RESOLVER_PARSER_PREFIX) $<
676         mv lex.$(RESOLVER_PARSER_PREFIX).c $@
677
678 resolver/parser.h resolver/parser.c: resolver/parser.y
679         $(YACCCOMPILE) -p $(RESOLVER_PARSER_PREFIX) $< -o resolver/parser.c
680
681 # debug file:line-function mapping generation
682 resolver-func-info.c: $(libmurphy_resolver_la_REGULAR_SOURCES)
683         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
684
685 clean-func-infos::
686         -rm resolver-func-info.c
687
688 # resolver linker script generation
689 linker-script.resolver: $(libmurphy_resolver_la_HEADERS)
690         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
691                 -c "$(libmurphy_resolver_la_CFLAGS)" -o $@ $^
692
693 clean-linker-script::
694         -rm -f linker-script.resolver
695
696
697 generate-linker-scripts: linker-script.resolver
698 # simple interpreter lexical analyser and parser generation
699 SIMPLE_PARSER_PREFIX  = yy_smpl_
700 BUILT_SOURCES        += resolver/scripting/simple/simple-scanner.c \
701                         resolver/scripting/simple/simple-parser.c
702
703 resolver/scripting/simple/simple-scanner.c:             \
704     resolver/scripting/simple/simple-scanner.l          \
705     resolver/scripting/simple/simple-parser.c
706         $(LEXCOMPILE) -P $(SIMPLE_PARSER_PREFIX) $<
707         mv lex.$(SIMPLE_PARSER_PREFIX).c $@
708
709 # simple interpreter parser generation
710 resolver/scripting/simple/simple-parser.h       \
711 resolver/scripting/simple/simple-parser.c:      \
712     resolver/scripting/simple/simple-parser.y
713         $(YACCCOMPILE) -p $(SIMPLE_PARSER_PREFIX) $< -o \
714             resolver/scripting/simple/simple-parser.c
715
716 ###################################
717 # murphy backend resource library
718 #
719
720 if BUILD_RESOURCES
721 RESOURCE_LIBRARY = libmurphy-resource-backend.la
722 else
723 RESOURCE_LIBRARY =
724 endif
725
726 if BUILD_RESOURCES
727 lib_LTLIBRARIES += $(RESOURCE_LIBRARY)
728
729 libmurphy_resource_backend_ladir =                     \
730                 $(includedir)/murphy/resource
731
732 libmurphy_resource_backend_la_HEADERS =                        \
733                 resource/data-types.h           \
734                 resource/common-api.h           \
735                 resource/client-api.h           \
736                 resource/manager-api.h          \
737                 resource/config-api.h           \
738                 resource/protocol.h
739
740 libmurphy_resource_backend_la_REGULAR_SOURCES =                \
741                 resource/attribute.c            \
742                 resource/resource.c             \
743                 resource/resource-set.c         \
744                 resource/application-class.c    \
745                 resource/resource-owner.c       \
746                 resource/resource-client.c      \
747                 resource/zone.c                 \
748                 resource/config-lua.c           \
749                 resource/resource-lua.c         \
750                 resource/lua-resource.c
751
752 libmurphy_resource_backend_la_SOURCES =                        \
753                 $(libmurphy_resource_backend_la_REGULAR_SOURCES)        \
754                 resource-func-info.c
755
756 libmurphy_resource_backend_la_CFLAGS =          \
757                 $(AM_CFLAGS)                    \
758                 $(LUA_CFLAGS)
759
760 libmurphy_resource_backend_la_LDFLAGS =                        \
761                 -Wl,-version-script=linker-script.resource_backend \
762                 -version-info @MURPHY_VERSION_INFO@
763
764 libmurphy_resource_backend_la_LIBADD =     \
765                 libmurphy-core.la   \
766                 libmurphy-common.la \
767                 murphy-db/mql/libmql.la \
768                 murphy-db/mqi/libmqi.la \
769                 murphy-db/mdb/libmdb.la \
770                 $(LUA_LIBS)
771
772 libmurphy_resource_backend_la_DEPENDENCIES = linker-script.resource_backend \
773         $(filter %.la, $(libmurphy_resource_backend_la_LIBADD))
774
775 # debug file:line-function mapping generation
776 resource-func-info.c: $(libmurphy_resource_backend_la_REGULAR_SOURCES)
777         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
778
779 clean-func-infos::
780         -rm resource-func-info.c
781 endif
782
783 # resource linker script generation
784 linker-script.resource_backend: $(libmurphy_resource_backend_la_HEADERS)
785         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
786                 -c "$(libmurphy_resource_backend_la_CFLAGS)" -o $@ $^
787
788 clean-linker-script::
789         -rm -f linker-script.resource_backend
790
791 generate-linker-scripts: linker-script.resource_backend
792
793 ##########################
794 # readline replacement
795 #
796 lib_LTLIBRARIES += libbreedline.la
797 EXTRA_DIST      += breedline/breedline.pc
798 pkgconfig_DATA  += breedline/breedline.pc
799
800 libbreedline_ladir      =               \
801                 $(includedir)/breedline
802
803 libbreedline_la_HEADERS =               \
804                 breedline/breedline.h   \
805                 breedline/macros.h
806
807 libbreedline_la_SOURCES =               \
808                 breedline/breedline.c
809
810 libbreedline_la_CFLAGS  =               \
811                 $(AM_CFLAGS)
812
813 libbreedline_la_LDFLAGS =                                       \
814                 -Wl,-version-script=linker-script.breedline     \
815                 -version-info @MURPHY_VERSION_INFO@
816
817 libbreedline_la_LIBADD =
818
819 libbreedline_la_DEPENDENCIES = linker-script.breedline
820
821 libbreedlineincludedir      = $(includedir)/breedline
822 libbreedlineinclude_HEADERS = $(libbreedline_la_HEADERS)
823
824 # linker script generation
825 linker-script.breedline: $(libbreedline_la_HEADERS)
826         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
827                 -c "$(libbreedline_la_CFLAGS)" -p '^brl_' -o $@ $^
828
829 clean-linker-script::
830         -rm -f linker-script.breedline
831
832 generate-linker-scripts: linker-script.breedline
833
834 ##########################
835 # breedline murphy glue library
836 #
837 lib_LTLIBRARIES += libbreedline-murphy.la
838 EXTRA_DIST      += breedline/breedline-murphy.pc
839 pkgconfig_DATA  += breedline/breedline-murphy.pc
840
841 libbreedline_murphy_ladir      = $(includedir)/breedline
842
843 libbreedline_murphy_la_HEADERS = breedline/breedline-murphy.h
844 libbreedline_murphy_la_SOURCES = breedline/breedline-murphy.c
845 libbreedline_murphy_la_CFLAGS  = $(AM_CFLAGS)
846
847 libbreedline_murphy_la_LDFLAGS =        \
848                 -Wl,-version-script=linker-script.breedline-murphy      \
849                 -version-info @MURPHY_VERSION_INFO@
850
851 libbreedline_murphy_la_LIBADD = libmurphy-common.la
852
853 libbreedline_murphy_la_DEPENDENCIES = linker-script.breedline-murphy \
854         $(filter %.la,$(libbreedline_murphy_la_LIBADD))
855
856 libbreedline_murphyincludedir      = $(includedir)/breedline
857 libbreedline_murphyinclude_HEADERS = $(libbreedline_murphy_la_HEADERS)
858
859 # linker script generation
860 linker-script.breedline-murphy: $(libbreedline_murphy_la_HEADERS)
861         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
862             -c "$(libbreedline_murphy_la_CFLAGS)" -p '^brl_' -o $@ $^
863
864 clean-linker-script::
865         -rm -f linker-script.breedline-murphy
866
867 generate-linker-scripts: linker-script.breedline-murphy
868
869 ##########################
870 # breedline glib glue library
871 #
872
873 breedline_glib_headers =        \
874                 breedline/breedline-glib.h
875
876 if GLIB_ENABLED
877 lib_LTLIBRARIES += libbreedline-glib.la
878 EXTRA_DIST      += breedline/breedline-glib.pc
879 pkgconfig_DATA  += breedline/breedline-glib.pc
880
881 libbreedline_glib_ladir      = $(includedir)/breedline
882
883 libbreedline_glib_la_HEADERS = $(breedline_glib_headers)
884 libbreedline_glib_la_SOURCES = breedline/breedline-glib.c
885 libbreedline_glib_la_CFLAGS  = $(AM_CFLAGS) $(GLIB_CFLAGS)
886
887 libbreedline_glib_la_LDFLAGS = \
888                 -Wl,-version-script=linker-script.breedline-glib        \
889                 -version-info @MURPHY_VERSION_INFO@
890
891 libbreedline_glib_la_LIBADD = $(GLIB_LIBS)
892
893 libbreedline_glib_la_DEPENDENCIES = linker-script.breedline-glib
894
895 libbreedline_glibincludedir      = $(includedir)/breedline
896 libbreedline_glibinclude_HEADERS = $(libbreedline_glib_la_HEADERS)
897 endif
898
899 # linker script generation
900 linker-script.breedline-glib: $(breedline_glib_headers)
901         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
902                 -c "$(libbreedline_glib_la_CFLAGS)" -p '^brl_' -o $@ $^
903
904 clean-linker-script::
905         -rm -f linker-script.breedline-glib
906
907 generate-linker-scripts: linker-script.breedline-glib
908
909 ###################################
910 # murphy resource external library
911
912 # TODO: put this under conditional compilation
913
914 lib_LTLIBRARIES += libmurphy-resource.la
915 EXTRA_DIST      += plugins/resource-native/libmurphy-resource/murphy-resource.pc
916 pkgconfig_DATA  += plugins/resource-native/libmurphy-resource/murphy-resource.pc
917
918 libmurphy_resource_ladir =          \
919         $(includedir)/murphy/plugins/resource-native/libmurphy-resource
920
921 libmurphy_resource_la_HEADERS =         \
922         plugins/resource-native/libmurphy-resource/resource-api.h     \
923         plugins/resource-native/libmurphy-resource/resource-private.h
924
925 libmurphy_resource_la_SOURCES =         \
926         plugins/resource-native/libmurphy-resource/resource.c \
927         plugins/resource-native/libmurphy-resource/attribute.c \
928         plugins/resource-native/libmurphy-resource/rset.c \
929         plugins/resource-native/libmurphy-resource/string_array.c \
930         plugins/resource-native/libmurphy-resource/message.c \
931         plugins/resource-native/libmurphy-resource/resource-log.c
932
933 libmurphy_resource_la_CFLAGS =          \
934         $(AM_CFLAGS)
935
936 libmurphy_resource_la_LDFLAGS = \
937                 -Wl,-version-script=linker-script.resource      \
938                 -version-info @MURPHY_VERSION_INFO@
939
940 libmurphy_resource_la_LIBADD =      \
941         libmurphy-common.la
942
943 libmurphy_resource_la_DEPENDENCIES =    \
944                      libmurphy-common.la \
945                      linker-script.resource
946
947 # linker script generation
948 linker-script.resource: $(libmurphy_resource_la_HEADERS)
949         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
950                 -c "$(libmurphy_resource_la_CFLAGS)" -o $@ $^
951
952 clean-linker-script::
953         -rm -f linker-script.resource
954
955 generate-linker-scripts: linker-script.resource
956
957
958 # resource-api-test
959 bin_PROGRAMS += resource-api-test
960
961 resource_api_test_SOURCES = plugins/resource-native/libmurphy-resource/api_test.c
962 resource_api_test_CFLAGS  = $(AM_CFLAGS)
963 resource_api_test_LDADD   = libmurphy-common.la libmurphy-resource.la
964
965 # resource-api-fuzz
966 bin_PROGRAMS += resource-api-fuzz
967
968 resource_api_fuzz_SOURCES = plugins/resource-native/libmurphy-resource/resource-fuzz.c
969 resource_api_fuzz_CFLAGS  = $(AM_CFLAGS)
970 resource_api_fuzz_LDADD   = libmurphy-common.la libmurphy-resource.la
971
972 ###################################
973 # murphy plugins
974 #
975
976 BUILTIN_PLUGINS    =
977 BUILTIN_CFLAGS     = -D__MURPHY_BUILTIN_PLUGIN__ $(AM_CFLAGS)
978 BUILTIN_LIBS       =
979
980 LINKEDIN_PLUGINS   =
981
982 plugin_LTLIBRARIES =
983 plugindir          = $(libdir)/murphy/plugins
984
985
986 # test plugin
987 TEST_PLUGIN_SOURCES = plugins/plugin-test.c
988 TEST_PLUGIN_CFLAGS  =
989 TEST_PLUGIN_LIBS    =
990
991 if !DISABLED_PLUGIN_TEST
992 if BUILTIN_PLUGIN_TEST
993 BUILTIN_PLUGINS += $(TEST_PLUGIN_SOURCES)
994 BUILTIN_CFLAGS  += $(TEST_PLUGIN_CFLAGS)
995 BUILTIN_LIBS    += $(TEST_PLUGIN_LIBS)
996 else
997 plugin_test_la_SOURCES = $(TEST_PLUGIN_SOURCES)
998 plugin_test_la_CFLAGS  = $(TEST_PLUGIN_CFLAGS) $(MURPHY_CFLAGS) $(AM_CFLAGS)
999 plugin_test_la_LDFLAGS = -module -avoid-version
1000 plugin_test_la_LIBADD  = $(TEST_PLUGIN_LIBS)
1001
1002 plugin_LTLIBRARIES    += plugin-test.la
1003 endif
1004 endif
1005
1006 # dbus plugin
1007 if DBUS_ENABLED
1008 DBUS_PLUGIN_SOURCES = plugins/plugin-dbus.c
1009 DBUS_PLUGIN_CFLAGS  = $(DBUS_CFLAGS)
1010 DBUS_PLUGIN_LIBS    = libmurphy-dbus.la $(DBUS_LIBS)
1011
1012 if !DISABLED_PLUGIN_DBUS
1013 if BUILTIN_PLUGIN_DBUS
1014 BUILTIN_PLUGINS += $(DBUS_PLUGIN_SOURCES)
1015 BUILTIN_CFLAGS  += $(DBUS_PLUGIN_CFLAGS)
1016 BUILTIN_LIBS    += $(DBUS_PLUGIN_LIBS)
1017 else
1018 plugin_dbus_la_SOURCES = $(DBUS_PLUGIN_SOURCES)
1019 plugin_dbus_la_CFLAGS  = $(DBUS_PLUGIN_CFLAGS) $(MURPHY_CFLAGS) $(AM_CFLAGS)
1020 plugin_dbus_la_LDFLAGS = -module -avoid-version
1021 plugin_dbus_la_LIBADD  = $(DBUS_PLUGIN_LIBS)
1022
1023 plugin_LTLIBRARIES    += plugin-dbus.la
1024 endif
1025 endif
1026 endif
1027
1028 if GLIB_ENABLED
1029 # glib plugin
1030 GLIB_PLUGIN_SOURCES = plugins/plugin-glib.c
1031 GLIB_PLUGIN_CFLAGS  = $(GLIB_CFLAGS)
1032 GLIB_PLUGIN_LIBS    = $(GLIB_LIBS)
1033
1034 if !DISABLED_PLUGIN_GLIB
1035 if BUILTIN_PLUGIN_GLIB
1036 BUILTIN_PLUGINS += $(GLIB_PLUGIN_SOURCES)
1037 BUILTIN_CFLAGS  += $(GLIB_PLUGIN_CFLAGS)
1038 BUILTIN_LIBS    += $(GLIB_PLUGIN_LIBS)
1039 else
1040 plugin_glib_la_SOURCES = $(GLIB_PLUGIN_SOURCES)
1041 plugin_glib_la_CFLAGS  = $(GLIB_PLUGIN_CFLAGS) $(MURPHY_CFLAGS) $(AM_CFLAGS)
1042 plugin_glib_la_LDFLAGS = -module -avoid-version
1043 plugin_glib_la_LIBADD  = $(GLIB_PLUGIN_LIBS)
1044
1045 plugin_LTLIBRARIES    += plugin-glib.la
1046 endif
1047 endif
1048 endif
1049
1050 # resource-dbus plugin
1051 if BUILD_RESOURCES
1052 if DBUS_ENABLED
1053 RESOURCE_DBUS_PLUGIN_SOURCES = plugins/plugin-resource-dbus.c
1054 RESOURCE_DBUS_PLUGIN_CFLAGS  = $(DBUS_CFLAGS)
1055 RESOURCE_DBUS_PLUGIN_LIBS    = libmurphy-dbus.la                   \
1056                                         libmurphy-core.la                                       \
1057                                         libmurphy-common.la                 \
1058                                         $(RESOURCE_LIBRARY)
1059
1060 if !DISABLED_PLUGIN_RESOURCE_DBUS
1061 if BUILTIN_PLUGIN_RESOURCE_DBUS
1062 BUILTIN_PLUGINS += $(RESOURCE_DBUS_PLUGIN_SOURCES)
1063 BUILTIN_CFLAGS  += $(RESOURCE_DBUS_PLUGIN_CFLAGS)
1064 BUILTIN_LIBS    += $(RESOURCE_DBUS_PLUGIN_LIBS)
1065 else
1066 plugin_resource_dbus_la_SOURCES = $(RESOURCE_DBUS_PLUGIN_SOURCES)
1067 plugin_resource_dbus_la_CFLAGS  = $(RESOURCE_DBUS_PLUGIN_CFLAGS) $(MURPHY_CFLAGS) $(AM_CFLAGS)
1068 plugin_resource_dbus_la_LDFLAGS = -module -avoid-version
1069 plugin_resource_dbus_la_LIBADD  = $(RESOURCE_DBUS_PLUGIN_LIBS)
1070 plugin_LTLIBRARIES    += plugin-resource-dbus.la
1071 endif
1072 endif
1073 endif
1074 endif
1075
1076 # resource-wrt plugin
1077 if BUILD_RESOURCES
1078 if WEBSOCKETS_ENABLED
1079 RESOURCE_WRT_PLUGIN_SOURCES = plugins/resource-wrt/plugin-resource-wrt.c
1080 RESOURCE_WRT_PLUGIN_CFLAGS  = $(WEBSOCKETS_CFLAGS)
1081 RESOURCE_WRT_PLUGIN_LIBS    =
1082
1083 if !DISABLED_PLUGIN_RESOURCE_WRT
1084 if BUILTIN_PLUGIN_RESOURCE_WRT
1085 BUILTIN_PLUGINS += $(RESOURCE_WRT_PLUGIN_SOURCES)
1086 BUILTIN_CFLAGS  += $(RESOURCE_WRT_PLUGIN_CFLAGS)
1087 BUILTIN_LIBS    += $(RESOURCE_WRT_PLUGIN_LIBS)
1088 else
1089 plugin_resource_wrt_la_SOURCES = $(RESOURCE_WRT_PLUGIN_SOURCES)
1090 plugin_resource_wrt_la_CFLAGS  = $(RESOURCE_WRT_PLUGIN_CFLAGS) \
1091                                  $(MURPHY_CFLAGS) $(AM_CFLAGS)
1092 plugin_resource_wrt_la_LDFLAGS = -module -avoid-version
1093 plugin_resource_wrt_la_LIBADD  = $(RESOURCE_WRT_PLUGIN_LIBS)
1094 plugin_LTLIBRARIES    += plugin-resource-wrt.la
1095
1096 EXTRA_DIST       += $(resource_wrt_DATA);
1097 resource_wrtdir   = $(datadir)/murphy/resource-wrt
1098 resource_wrt_DATA =                                     \
1099                 plugins/resource-wrt/resource-api.js    \
1100                 plugins/resource-wrt/resource-test.html
1101
1102 endif
1103 endif
1104 endif
1105 endif
1106
1107 # console plugin
1108 CONSOLE_PLUGIN_REGULAR_SOURCES = plugins/console/plugin-console.c
1109 CONSOLE_PLUGIN_SOURCES         = $(CONSOLE_PLUGIN_REGULAR_SOURCES) \
1110                                  plugin-console-func-info.c
1111 CONSOLE_PLUGIN_CFLAGS          =
1112 CONSOLE_PLUGIN_LIBS            =
1113
1114 if CONSOLE_ENABLED
1115 if !DISABLED_PLUGIN_CONSOLE
1116 if BUILTIN_PLUGIN_CONSOLE
1117 BUILTIN_PLUGINS += $(CONSOLE_PLUGIN_SOURCES)
1118 BUILTIN_CFLAGS  += $(CONSOLE_PLUGIN_CFLAGS)
1119 BUILTIN_LIBS    += $(CONSOLE_PLUGIN_LIBS)
1120 else
1121 plugin_console_la_SOURCES = $(CONSOLE_PLUGIN_SOURCES)
1122 plugin_console_la_CFLAGS  = $(CONSOLE_PLUGIN_CFLAGS) \
1123                             $(MURPHY_CFLAGS) $(AM_CFLAGS)
1124 plugin_console_la_LDFLAGS = -module -avoid-version
1125 plugin_console_la_LIBADD  = $(CONSOLE_PLUGIN_LIBS)
1126
1127 plugin_LTLIBRARIES    += plugin-console.la
1128 endif
1129 endif
1130 # debug file:line-function mapping generation
1131 plugin-console-func-info.c: $(CONSOLE_PLUGIN_REGULAR_SOURCES)
1132         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
1133
1134 clean-func-infos::
1135         -rm plugin-console-func-info.c
1136 endif
1137
1138 # native resource plugin
1139 if BUILD_RESOURCES
1140 PLUGIN_RESOURCE_NATIVE_REGULAR_SOURCES =                                \
1141                 plugins/resource-native/plugin-resource-native.c
1142 PLUGIN_RESOURCE_NATIVE_SOURCES =                                        \
1143                 $(PLUGIN_RESOURCE_NATIVE_REGULAR_SOURCES)               \
1144                 plugin-resource-native-func-info.c
1145 PLUGIN_RESOURCE_NATIVE_CFLAGS =                                         \
1146                 $(LUA_CFLAGS)
1147
1148 PLUGIN_RESOURCE_NATIVE_LIBS =                                           \
1149                 libmurphy-common.la                                     \
1150                 $(RESOURCE_LIBRARY)                                     \
1151                 $(LUA_LIBS)
1152
1153 plugin_resource_native_la_SOURCES = $(PLUGIN_RESOURCE_NATIVE_SOURCES)
1154 plugin_resource_native_la_CFLAGS  = $(PLUGIN_RESOURCE_NATIVE_CFLAGS)    \
1155                                     $(MURPHY_CFLAGS) $(AM_CFLAGS)       \
1156                                     $(JSON_CFLAGS)
1157 plugin_resource_native_la_LDFLAGS = -module -avoid-version
1158 plugin_resource_native_la_LIBADD  = $(PLUGIN_RESOURCE_NATIVE_LIBS)
1159
1160 plugin_LTLIBRARIES += plugin-resource-native.la
1161
1162 # resource-client
1163 bin_PROGRAMS += resource-client
1164
1165 resource_client_SOURCES = plugins/resource-native/resource-client.c
1166 resource_client_CFLAGS  = $(AM_CFLAGS)
1167 resource_client_LDADD   =  libmurphy-common.la
1168
1169 # debug file:line-function mapping generation
1170 plugin-resource-native-func-info.c: $(PLUGIN_RESOURCE_NATIVE_REGULAR_SOURCES)
1171         $(QUIET_GEN)$(top_builddir)/build-aux/gen-debug-table -o $@ $^
1172
1173 clean-func-infos::
1174         -rm plugin-resource-native-func-info.c
1175 endif
1176
1177 # domain control plugin
1178 DOMAIN_CONTROL_PLUGIN_SOURCES = plugins/domain-control/plugin-domain-control.c \
1179                                 plugins/domain-control/domain-control.c        \
1180                                 plugins/domain-control/proxy.c                 \
1181                                 plugins/domain-control/table.c                 \
1182                                 plugins/domain-control/notify.c                \
1183                                 plugins/domain-control/message.c
1184 DOMAIN_CONTROL_PLUGIN_LOADER  = linkedin-domain-control-loader.c
1185
1186
1187 DOMAIN_CONTROL_PLUGIN_CFLAGS  =
1188 DOMAIN_CONTROL_PLUGIN_LIBS    =
1189
1190 if !DISABLED_PLUGIN_DOMAIN_CONTROL
1191 if BUILTIN_PLUGIN_DOMAIN_CONTROL
1192 LINKEDIN_PLUGINS             += libmurphy-plugin-domain-control.la
1193 lib_LTLIBRARIES              += libmurphy-plugin-domain-control.la
1194 DOMAIN_CONTROL_PLUGIN_CFLAGS += $(BUILTIN_CFLAGS)
1195
1196
1197 libmurphy_plugin_domain_control_ladir =                          \
1198                 $(includedir)/murphy/domain-control
1199
1200 libmurphy_plugin_domain_control_la_SOURCES =                     \
1201                 $(DOMAIN_CONTROL_PLUGIN_SOURCES)                 \
1202                 $(DOMAIN_CONTROL_PLUGIN_LOADER)
1203
1204 libmurphy_plugin_domain_control_la_CFLAGS =                      \
1205                 $(DOMAIN_CONTROL_PLUGIN_CFLAGS)                  \
1206                 $(AM_CFLAGS)                                     \
1207                 $(JSON_CFLAGS)
1208
1209 libmurphy_plugin_domain_control_la_LDFLAGS =                     \
1210                 -Wl,-version-script=linker-script.domain-control \
1211                 -version-info @MURPHY_VERSION_INFO@
1212
1213 libmurphy_plugin_domain_control_la_LIBADD =             \
1214                 libmurphy-core.la                       \
1215                 libmurphy-common.la                     \
1216                 murphy-db/mql/libmql.la                 \
1217                 murphy-db/mqi/libmqi.la                 \
1218                 murphy-db/mdb/libmdb.la
1219
1220 libmurphy_plugin_domain_control_la_DEPENDENCIES =       \
1221                 linker-script.domain-control            \
1222         $(filter %.la, $(libmurphy_plugin_domain_control_la_LIBADD))
1223 else
1224 plugin_domain_control_la_SOURCES = $(DOMAIN_CONTROL_PLUGIN_SOURCES)
1225 plugin_domain_control_la_CFLAGS  = $(DOMAIN_CONTROL_PLUGIN_CFLAGS) \
1226                                    $(MURPHY_CFLAGS) $(AM_CFLAGS)
1227 plugin_domain_control_la_LDFLAGS = -module -avoid-version
1228 plugin_domain_control_la_LIBADD  = $(DOMAIN_CONTROL_PLUGIN_LIBS)
1229 plugin_LTLIBRARIES              += plugin-domain-control.la
1230 endif
1231
1232
1233 # domain controller client library
1234 lib_LTLIBRARIES += libmurphy-domain-controller.la
1235 EXTRA_DIST      += plugins/domain-control/murphy-domain-controller.pc
1236 pkgconfig_DATA  += plugins/domain-control/murphy-domain-controller.pc
1237
1238 libmurphy_domain_controller_ladir =                     \
1239                 $(includedir)/murphy/domain-control
1240
1241 libmurphy_domain_controller_la_HEADERS =                \
1242                 plugins/domain-control/client.h
1243
1244 libmurphy_domain_controller_la_SOURCES =                \
1245                 plugins/domain-control/client.c         \
1246                 plugins/domain-control/message.c
1247 libmurphy_domain_controller_la_CFLAGS   =               \
1248                 $(JSON_CFLAGS)
1249 libmurphy_domain_controller_la_LIBADD   = libmurphy-common.la     \
1250                                           murphy-db/mql/libmql.la \
1251                                           murphy-db/mqi/libmqi.la \
1252                                           murphy-db/mdb/libmdb.la
1253
1254 if WEBSOCKETS_ENABLED
1255 EXTRA_DIST          += $(domain_control_DATA)
1256 domain_controldir    = $(datadir)/murphy/domain-control
1257 domain_control_DATA  =                                          \
1258                 plugins/domain-control/domain-control-api.js    \
1259                 plugins/domain-control/domain-control-test.html
1260 endif
1261
1262 # test domain controller (disabled until we have a readline replacement)
1263 bin_PROGRAMS += test-domain-controller
1264
1265 test_domain_controller_SOURCES = plugins/domain-control/test-client.c
1266 test_domain_controller_CFLAGS  = $(AM_CFLAGS)
1267 test_domain_controller_LDADD   = libmurphy-domain-controller.la \
1268                                  libbreedline-murphy.la         \
1269                                  libbreedline.la                \
1270                                  libmurphy-common.la
1271 endif
1272
1273 # linkedin domain control plugin linker script generation
1274 linker-script.domain-control: $(DOMAIN_CONTROL_PLUGIN_LOADER:%.c=%.h)
1275         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linker-script -q \
1276                 -c "$(libmurphy_domain_controller_la_CFLAGS)" -o $@ $^
1277
1278 clean-linker-script::
1279         -rm -f linker-script.domain-control
1280
1281 generate-linker-scripts: linker-script.domain-control
1282
1283
1284 # Lua plugin
1285 LUA_PLUGIN_SOURCES = plugins/plugin-lua.c
1286 LUA_PLUGIN_CFLAGS  = $(AM_CFLAGS) $(LUA_CFLAGS)
1287 LUA_PLUGIN_LIBS    = $(LUA_LIBS)
1288
1289
1290 if BUILTIN_PLUGIN_LUA
1291 BUILTIN_PLUGINS += $(LUA_PLUGIN_SOURCES)
1292 BUILTIN_CFLAGS  += $(LUA_PLUGIN_CFLAGS)
1293 BUILTIN_LIBS    += $(LUA_PLUGIN_LIBS)
1294 else
1295 plugin_lua_la_SOURCES = plugins/plugin-lua.c
1296 plugin_lua_la_CFLAGS  = $(LUA_PLUGIN_CFLAGS) \
1297                         $(MURPHY_CFLAGS) $(AM_CFLAGS)
1298 plugin_lua_la_LDFLAGS = -module -avoid-version
1299 plugin_lua_la_LIBADD  = $(LUA_PLUGIN_LIBS) $(LUA_LIBS)
1300
1301 plugin_LTLIBRARIES    += plugin-lua.la
1302 endif
1303
1304 # systemd (logging) plugin
1305 if SYSTEMD_ENABLED
1306 SYSTEMD_PLUGIN_SOURCES = plugins/plugin-systemd.c
1307 SYSTEMD_PLUGIN_CFLAGS  = $(SYSTEMD_CFLAGS)
1308 SYSTEMD_PLUGIN_LIBS    = $(SYSTEMD_LIBS)
1309
1310 if !DISABLED_PLUGIN_SYSTEMD
1311 if BUILTIN_PLUGIN_SYSTEMD
1312 BUILTIN_PLUGINS += $(SYSTEMD_PLUGIN_SOURCES)
1313 BUILTIN_CFLAGS  += $(SYSTEMD_PLUGIN_CFLAGS)
1314 BUILTIN_LIBS    += $(SYSTEMD_PLUGIN_LIBS)
1315 else
1316 plugin_systemd_la_SOURCES = $(SYSTEMD_PLUGIN_SOURCES)
1317 plugin_systemd_la_CFLAGS  = $(SYSTEMD_PLUGIN_CFLAGS) \
1318                             $(MURPHY_CFLAGS) \
1319                             $(AM_CFLAGS)
1320 plugin_systemd_la_LDFLAGS = -module -avoid-version
1321 plugin_systemd_la_LIBADD  = $(SYSTEMD_PLUGIN_LIBS)
1322
1323 plugin_LTLIBRARIES += plugin-systemd.la
1324 endif
1325 endif
1326 endif
1327
1328
1329 ###################################
1330 # murphy daemon
1331 #
1332
1333 bin_PROGRAMS += murphyd
1334 EXTRA_DIST   += $(config_DATA)
1335 configdir     = $(sysconfdir)/murphy
1336 config_DATA   = daemon/murphy.conf
1337
1338 murphyd_SOURCES =                       \
1339                 daemon/daemon.c         \
1340                 daemon/config.c         \
1341                 $(BUILTIN_PLUGINS)      \
1342                 load-linkedin-plugins.c
1343
1344 murphyd_CFLAGS  =                       \
1345                 $(AM_CFLAGS)            \
1346                 $(BUILTIN_CFLAGS)       \
1347                 $(JSON_CFLAGS)
1348
1349 murphyd_LDADD  =                                \
1350                 $(BUILTIN_LIBS)                 \
1351                 $(LINKEDIN_PLUGINS)             \
1352                 $(RESOURCE_LIBRARY)             \
1353                 libmurphy-resolver.la           \
1354                 libmurphy-lua-decision.la       \
1355                 libmurphy-core.la               \
1356                 libmurphy-lua-utils.la          \
1357                 libmurphy-common.la
1358
1359 murphyd_LDFLAGS = -rdynamic
1360
1361
1362
1363 ###################################
1364 # linkedin (DSO) loader generation
1365 #
1366
1367 linkedin-%-loader.c:
1368         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linkedin-loader \
1369             -p $(shell echo $@ | \
1370                 sed 's/linkedin-//g;s/-loader.c//g') -o $@
1371
1372 linkedin-%-loader.h:
1373         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linkedin-loader \
1374             -p $(shell echo $@ | \
1375                 sed 's/linkedin-//g;s/-loader.h//g') -o $@
1376
1377 load-linkedin-plugins.c:
1378         $(QUIET_GEN)$(top_builddir)/build-aux/gen-linkedin-loader \
1379             -o $@ -d $(shell echo $(LINKEDIN_PLUGINS) | \
1380                            sed 's/.*plugin-//g;s/\.[^\.]*$$//g')
1381
1382 clean-local::
1383         -rm -f linkedin-*-loader.[hc] load-linkedin-plugins.c
1384
1385 ###################################
1386 # murphy console client
1387 #
1388
1389 if CONSOLE_ENABLED
1390 bin_PROGRAMS += murphy-console
1391
1392 murphy_console_SOURCES =                \
1393                 console-client/client.c
1394
1395 murphy_console_CFLAGS  =                \
1396                 $(AM_CFLAGS)
1397
1398 murphy_console_LDADD  =                 \
1399                 libbreedline-murphy.la  \
1400                 libbreedline.la         \
1401                 libmurphy-common.la
1402
1403 if DBUS_ENABLED
1404 murphy_console_LDADD += libmurphy-dbus.la
1405 endif
1406
1407 murphy_console_LDFLAGS = -rdynamic
1408 endif
1409
1410 generate-linker-scripts:
1411         $(MAKE) -C murphy-db $@
1412
1413 # cleanup
1414 clean-local:: # clean-linker-script clean-func-infos
1415         -rm -f *~