diff options
Diffstat (limited to 'libX11/cpprules.in')
-rw-r--r-- | libX11/cpprules.in | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libX11/cpprules.in b/libX11/cpprules.in new file mode 100644 index 000000000..b8857bae8 --- /dev/null +++ b/libX11/cpprules.in @@ -0,0 +1,29 @@ +# -*- Makefile -*- +# Rules for generating files using the C pre-processor +# (Replaces CppFileTarget from Imake) + +SED = sed + +SUFFIXES = .pre + +WCHAR32_FLAGS = -DWCHAR32=@WCHAR32@ + +CPP_FILES_FLAGS = $(WCHAR32_FLAGS) + +# 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/\@\@$$/\\/' + +# Allow people to comment out lines by starting them with '##' +.pre: + $(SED) -e '/^\#\#/d' $< | $(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) | $(CPP_SED_MAGIC) > $@ |