summaryrefslogtreecommitdiff
path: root/cpprules.in
diff options
context:
space:
mode:
authorAlan Coopersmith <Alan.Coopersmith@sun.com>2005-09-24 02:40:51 +0000
committerAlan Coopersmith <Alan.Coopersmith@sun.com>2005-09-24 02:40:51 +0000
commita5477ae7ac9a56c1a586950db1dee6661bff149d (patch)
tree9a8b4f0b8b31ced285741ef75e872c6c3f697af8 /cpprules.in
parent2ba865b3f57340fd1d75f7614c17f615cc127b89 (diff)
Add scanpci, xorgcfg, & xorgconfig utilities.
Diffstat (limited to 'cpprules.in')
-rw-r--r--cpprules.in24
1 files changed, 24 insertions, 0 deletions
diff --git a/cpprules.in b/cpprules.in
new file mode 100644
index 000000000..4624a7bde
--- /dev/null
+++ b/cpprules.in
@@ -0,0 +1,24 @@
+# -*- Makefile -*-
+# Rules for generating files using the C pre-processor
+# (Replaces CppFileTarget from Imake)
+
+SED = sed
+
+SUFFIXES = .pre
+
+# 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/\@\@$$/\\/'
+
+.pre:
+ $(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@