xorg-libx11/cpprules.in
Dan Nicholson 81d1d9a6bd docs: Remove directory prerequisites from make rules
Make expects prerequisites to be files with valid timestamps, and
directories are treated as always being out of date. Thus, any targets
depending on directories will always be rebuilt.

Instead, the doc rules are changed to always create the target's leading
directory. This should prevent the documentation from being rebuilt when
"make install" is run.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2010-10-10 09:43:55 -07:00

30 lines
1.2 KiB
Makefile

# -*- 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,X11_LOCALEDATADIR,$(X11_LOCALEDATADIR),g' \
-e '/\@\@$$/s/\@\@$$/\\/'
.pre:
@$(MKDIR_P) $(@D)
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@