File: cpprules.in

package info (click to toggle)
libx11 2:1.6.7-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 20,480 kB
  • sloc: ansic: 113,227; xml: 106,053; sh: 4,292; makefile: 2,152; perl: 352
file content (30 lines) | stat: -rw-r--r-- 1,181 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#							-*- Makefile -*-
# Rules for generating files using the C pre-processor
# (Replaces CppFileTarget from Imake)

SED = LC_CTYPE=C 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,X11_LOCALEDATADIR,$(X11_LOCALEDATADIR),g' \
                       -e '/\@\@$$/s/\@\@$$/\\/'

.pre:
	@$(MKDIR_P) $(@D)
	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@