# -*- Makefile -*- # Rules for generating files using the C pre-processor # (Replaces CppFileTarget from Imake) SED = sed SUFFIXES = .cpp WCHAR32_FLAGS = -DWCHAR32=@WCHAR32@ # Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM # to cpp, because that trick does not work on all ANSI C preprocessors. # Delete line numbers from the cpp output (-P is not portable, I guess). # Allow XCOMM to be preceded by whitespace and provide a means of generating # output lines with trailing backslashes. # Allow XHASH to always be substituted, even in cases where XCOMM isn't. CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \ -e '/^\#line *[0-9][0-9]* *.*$$/d' \ -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \ -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \ -e '/^[ ]*XHASH/s/XHASH/\#/' \ -e '/\@\@$$/s/\@\@$$/\\/' if HAVE_AM_SILENT_RULES # Support for automake 1.11 AM_SILENT_RULES cpp_verbose = $(cpp_verbose_$(V)) cpp_verbose_ = $(cpp_verbose_$(AM_DEFAULT_VERBOSITY)) cpp_verbose_0 = @echo " CPP " $@; endif HAVE_AM_SILENT_RULES .cpp: $(cpp_verbose)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@