Blame common/orc.mak

Packit a6ee4b
#
Packit a6ee4b
# This is a makefile.am fragment to build Orc code.
Packit a6ee4b
#
Packit a6ee4b
# Define ORC_SOURCE and then include this file, such as:
Packit a6ee4b
#
Packit a6ee4b
#  ORC_SOURCE=gstadderorc
Packit a6ee4b
#  include $(top_srcdir)/common/orc.mak
Packit a6ee4b
#
Packit a6ee4b
# This fragment will create tmp-orc.c and gstadderorc.h from
Packit a6ee4b
# gstadderorc.orc.
Packit a6ee4b
#
Packit a6ee4b
# When 'make dist' is run at the top level, or 'make orc-update'
Packit a6ee4b
# in a directory including this fragment, the generated source 
Packit a6ee4b
# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
Packit a6ee4b
# should be checked in to git, since they are used if Orc is
Packit a6ee4b
# disabled.
Packit a6ee4b
# 
Packit a6ee4b
# Note that this file defines BUILT_SOURCES, so any later usage
Packit a6ee4b
# of BUILT_SOURCES in the Makefile.am that includes this file
Packit a6ee4b
# must use '+='.
Packit a6ee4b
#
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
EXTRA_DIST = $(ORC_SOURCE).orc
Packit a6ee4b
Packit a6ee4b
ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
Packit a6ee4b
BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
orc-update: tmp-orc.c $(ORC_SOURCE).h
Packit a6ee4b
	$(top_srcdir)/common/gst-indent tmp-orc.c
Packit a6ee4b
	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
Packit a6ee4b
	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
Packit a6ee4b
Packit a6ee4b
orcc_v_gen = $(orcc_v_gen_@AM_V@)
Packit a6ee4b
orcc_v_gen_ = $(orcc_v_gen_@AM_DEFAULT_V@)
Packit a6ee4b
orcc_v_gen_0 = @echo "  ORCC   $@";
Packit a6ee4b
Packit a6ee4b
cp_v_gen = $(cp_v_gen_@AM_V@)
Packit a6ee4b
cp_v_gen_ = $(cp_v_gen_@AM_DEFAULT_V@)
Packit a6ee4b
cp_v_gen_0 = @echo "  CP     $@";
Packit a6ee4b
Packit a6ee4b
if HAVE_ORCC
Packit a6ee4b
tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
Packit a6ee4b
	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
Packit a6ee4b
Packit a6ee4b
$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
Packit a6ee4b
	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
Packit a6ee4b
else
Packit a6ee4b
tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
Packit a6ee4b
	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
Packit a6ee4b
Packit a6ee4b
$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
Packit a6ee4b
	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
Packit a6ee4b
endif
Packit a6ee4b
Packit a6ee4b
clean-local: clean-orc
Packit a6ee4b
.PHONY: clean-orc
Packit a6ee4b
clean-orc:
Packit a6ee4b
	rm -f tmp-orc.c $(ORC_SOURCE).h
Packit a6ee4b
Packit a6ee4b
dist-hook: dist-hook-orc
Packit a6ee4b
.PHONY: dist-hook-orc
Packit a6ee4b
Packit a6ee4b
# we try and copy updated orc -dist files below, but don't fail if it
Packit a6ee4b
# doesn't work as the srcdir might not be writable
Packit a6ee4b
dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
Packit a6ee4b
	$(top_srcdir)/common/gst-indent tmp-orc.c
Packit a6ee4b
	rm -f tmp-orc.c~
Packit a6ee4b
	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
Packit a6ee4b
	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true
Packit a6ee4b
	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
Packit a6ee4b
	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true
Packit a6ee4b
	cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
Packit a6ee4b
	cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
Packit a6ee4b