As for all other manpages, use sed rather than the C preprocessor
from the Imake days.

Use SCOMAN Automake variable and groff .if for conditional text
We can therefore remove ARCHMANDEFS
Remove man page related code from cpprules.in

Signed-off-by: Gaetan Nadon <[email protected]>
---
 Makefile.am  |   21 +++++++++++++++------
 configure.ac |    7 +++----
 cpprules.in  |   22 +---------------------
 startx.man   |   11 ++++++-----
 4 files changed, 25 insertions(+), 36 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index bd35ef7..6c4ef24 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,15 +30,24 @@ xinit_SOURCES =     \
         xinit.c
 
 appmandir = $(APP_MAN_DIR)
-
-appman_PRE = \
-       startx.man \
-        xinit.man
-
-appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
+appman_PRE = startx.man  xinit.man
+appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX))
+
+# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+MAN_SUBSTS+=   -e 's|__XSERVERNAME__|$(XSERVERNAME)|g' \
+               -e 's|__XCONFIGFILE__|$(XCONFIGFILE)|g' \
+               -e 's|__XCONFIGFILEMAN__|$(XCONFIGFILEMAN)|g' \
+               -e 's|__xinitdir__|$(XINITDIR)|g' \
+               -e 's|__bindir__|$(bindir)|g' \
+               -e 's|__libdir__|$(libdir)|g' \
+               -e 's|__SCOMAN__|$(SCOMAN)|g'
 
 include $(top_srcdir)/cpprules.in
 
+SUFFIXES += .$(APP_MAN_SUFFIX) .man
+.man.$(APP_MAN_SUFFIX):
+       $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+
 xinitrcdir = $(XINITDIR)
 
 PROGCPPDEFS = \
diff --git a/configure.ac b/configure.ac
index 7432e6c..dbd17de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -166,11 +166,10 @@ fi
 AC_SUBST(STARTX_COOKIE_FLAGS)
 
 # Additional substitutions in startx, xinitrc & man pages
-ARCHMANDEFS=""
 SHELL_CMD="/bin/sh"
 XSERVERNAME="Xorg"
 XCONFIGFILE="xorg.conf"
-XCONFIGFILEMAN='${XCONFIGFILE} (__filemansuffix__)'
+XCONFIGFILEMAN='${XCONFIGFILE} (${FILE_MAN_SUFFIX})'
 case $host_os in
     cygwin*)
        XSERVERNAME="XWin"
@@ -186,11 +185,11 @@ case $host_os in
        ;;
     *sco*)
        SHELL_CMD="/bin/ksh"
-       ARCHMANDEFS="-D__SCOMAN__"
+       SCOMAN=1
        ;;
 esac
 AC_SUBST(SHELL_CMD)
-AC_SUBST(ARCHMANDEFS)
+AC_SUBST(SCOMAN)
 AC_SUBST(XSERVERNAME)
 AC_SUBST(XCONFIGFILE)
 AC_SUBST(XCONFIGFILEMAN)
diff --git a/cpprules.in b/cpprules.in
index 18089de..92a987d 100644
--- a/cpprules.in
+++ b/cpprules.in
@@ -13,27 +13,7 @@ CPP_SED_MAGIC = $(SED) -e '/^\#  *[0-9][0-9]*  *.*$$/d' \
                        -e '/XSLASHGLOB/s/XSLASHGLOB/\/\*/' \
                        -e '/\@\@$$/s/\@\@$$/\\/'
 
-# Strings to replace in man pages
-XORGRELSTRING = @PACKAGE_STRING@
-  XORGMANNAME = X Version 11
-
-MANDEFS =  \
-       -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__XSERVERNAME__='$(XSERVERNAME)' \
-       -D__XCONFIGFILE__='$(XCONFIGFILE)' \
-       -D__XCONFIGFILEMAN__='$(XCONFIGFILEMAN)' \
-       -D__xinitdir__=$(XINITDIR) \
-       -D__bindir__=$(bindir) \
-       -DSHELL_CMD=$(SHELL_CMD) $(ARCHMANDEFS)
-
-SUFFIXES = .$(APP_MAN_SUFFIX) .man .cpp
+SUFFIXES = .cpp
 
 .cpp:
        $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | 
$(CPP_SED_MAGIC) > $@
-
-.man.$(APP_MAN_SUFFIX):
-       $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | 
$(CPP_SED_MAGIC) > $@
diff --git a/startx.man b/startx.man
index 641a631..0405be0 100644
--- a/startx.man
+++ b/startx.man
@@ -74,7 +74,7 @@ startx -- -dpi 100
 .PP
 startx -- -layout Multihead
 .RE
-#ifdef __SCOMAN__
+.if '__SCOMAN__'' .ig
 .PP
 To determine the client to run,
 .B startx
@@ -90,7 +90,8 @@ looks for the following files, in order:
 .I __xinitdir__/xinitrc
 .RE
 .PP
-#else
+..
+.if !'x.__SCOMAN__'x.' .ig
 .PP
 To determine the client to run,
 .B startx
@@ -102,7 +103,7 @@ the file
 in the
 .I xinit
 library directory.
-#endif
+..
 If command line client options are given, they override this
 behavior and revert to the
 .BR xinit (__appmansuffix__)
@@ -186,7 +187,7 @@ and
 .IR Xsecurity (__miscmansuffix__)
 manual pages for more information on X client/server authentication.
 .SH FILES
-#ifdef __SCOMAN__
+.if '__SCOMAN__'' .ig
 .TP 25
 .I $(HOME)/.startxrc
 Client to run.  Typically a shell script which runs many programs in
@@ -196,7 +197,7 @@ the background.
 Client to use if the user has no
 .I .startxrc
 file.
-#endif
+..
 .TP 25
 .I $(HOME)/.xinitrc
 Client to run.  Typically a shell script which runs many programs in
-- 
1.7.4.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to