# -*- Makefile -*- # Rules for generating files using the C pre-processor # (Replaces CppFileTarget from Imake) SED = sed SUFFIXES = .pre .man .man.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/\@\@$$/\\/' # Strings to replace in man pages XORGRELSTRING = @PACKAGE_STRING@ XORGMANNAME = X Version 11 XSERVERNAME = Xorg MANDEFS = \ -D__vendorversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \ -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \ -D__appmansuffix__=$(APP_MAN_SUFFIX) \ -D__filemansuffix__=$(FILE_MAN_SUFFIX) \ -D__libmansuffix__=$(LIB_MAN_SUFFIX) \ -D__miscmansuffix__=$(MISC_MAN_SUFFIX) \ -D__drivermansuffix__=$(DRIVER_MAN_SUFFIX) \ -D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \ -D__projectroot__=$(prefix) \ -D__xconfigfile__=$(__XCONFIGFILE__) -D__xconfigdir__=$(XCONFIGDIR) \ -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) .pre: $(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@ .man.pre.man: $(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@