2006-11-25 09:33:55 -07:00
|
|
|
# -*- Makefile -*-
|
|
|
|
# Rules for generating files using the C pre-processor
|
|
|
|
# (Replaces CppFileTarget from Imake)
|
|
|
|
|
|
|
|
SED = sed
|
|
|
|
|
2011-05-30 13:19:29 -06:00
|
|
|
SUFFIXES += .pre
|
2006-11-25 09:33:55 -07:00
|
|
|
|
|
|
|
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/\#/' \
|
2009-05-03 06:59:09 -06:00
|
|
|
-e 's,X11_LOCALEDATADIR,$(X11_LOCALEDATADIR),g' \
|
2006-11-25 09:33:55 -07:00
|
|
|
-e '/\@\@$$/s/\@\@$$/\\/'
|
|
|
|
|
|
|
|
.pre:
|
2011-05-30 13:19:29 -06:00
|
|
|
@$(mkdir_p) $(@D)
|
2010-05-18 13:37:28 -06:00
|
|
|
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@
|