]> code.delx.au - pulseaudio/blob - build/orc.mak
echo-cancel: orc-ify some bits for optimisation
[pulseaudio] / build / orc.mak
1 #
2 # This is a makefile.am fragment to build Orc code.
3 #
4 # Define ORC_SOURCE and then include this file, such as:
5 #
6 # ORC_SOURCE=gstadderorc
7 # include $(top_srcdir)/common/orc.mak
8 #
9 # This fragment will create tmp-orc.c and gstadderorc.h from
10 # gstadderorc.orc.
11 #
12 # When 'make dist' is run at the top level, or 'make orc-update'
13 # in a directory including this fragment, the generated source
14 # files will be copied to $(ORC_SOURCE)-dist.[ch]. These files
15 # should be checked in to git, since they are used if Orc is
16 # disabled.
17 #
18 # Note that this file defines BUILT_SOURCES, so any later usage
19 # of BUILT_SOURCES in the Makefile.am that includes this file
20 # must use '+='.
21 #
22
23
24 EXTRA_DIST += $(ORC_SOURCE).orc
25
26 ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
27 BUILT_SOURCES += tmp-orc.c $(ORC_SOURCE).h
28
29
30 orc-update: tmp-orc.c $(ORC_SOURCE).h
31 cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
32 cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
33
34 orcc_v_gen = $(orcc_v_gen_$(V))
35 orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
36 orcc_v_gen_0 = @echo " ORCC $@";
37
38 cp_v_gen = $(cp_v_gen_$(V))
39 cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
40 cp_v_gen_0 = @echo " CP $@";
41
42 if HAVE_ORC
43 tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
44 $(orcc_v_gen)$(ORCC) --implementation -o $(builddir)/tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
45
46 $(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
47 mkdir -p $$(dirname $(builddir)/$(ORC_SOURCE).h)
48 $(orcc_v_gen)$(ORCC) --header -o $(builddir)/$(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
49 else
50 tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
51 $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
52
53 $(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
54 $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
55 endif
56
57 clean-local: clean-orc
58 .PHONY: clean-orc
59 clean-orc:
60 rm -f tmp-orc.c $(ORC_SOURCE).h
61
62 dist-hook: dist-hook-orc
63 .PHONY: dist-hook-orc
64 dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
65 rm -f tmp-orc.c~
66 cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
67 cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
68 cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
69 cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
70 cp -p $(srcdir)/$(ORC_SOURCE)-dist.c $(distdir)/
71 cp -p $(srcdir)/$(ORC_SOURCE)-dist.h $(distdir)/