[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fixing broken djgpp support in make 3.81

From: Eli Zaretskii
Subject: Re: Fixing broken djgpp support in make 3.81
Date: Sat, 22 Dec 2007 14:12:23 +0200

> From: Juan Manuel Guerrero <address@hidden>
> Date: Thu, 15 Nov 2007 05:39:46 +0100
> Cc: 
> I have appended a small patch that shows the things I had to change to get a
> working make binary.  That patch is not intended to be used.  It shall only
> show the code lines that may need to be adjusted to solve the problems.  There
> may be better ways to solve the issue, but I am not familiar enough with the
> make sources to provide a better patch.  There may be also much more MSDOS or
> DJGPp specific things that may be fixed.  The patch only fixes things that I 
> am
> aware.  Things that may cause trouble are drive letters, checks for absolute
> patch, etc, etc etc.  The usual DOS/WINDOWS things.

Thanks, Juan.  Your warnings notwithstanding, I did install your
patches.  I no longer have time to do any significant work on the
DJGPP port of Make, so installing your changes will at least give
DJGPP users a binary that works better than with the original sources.

> I have not waiste my time trying to fix the Makefile.DOS, but now that 
> make.texi
> has been moved into /doc it needs to be adjusted accordingly.  It would be 
> nice
> if rules for dvi, ps, pdf and html could be added.  It would also be usefull
> not to split the MSDOS version of make.info anymore.  The extensions 
> .info-[0-9]
> are changed to .i[0-9] to acomplish with the 8.3 file name rule but it is 
> always
> forgotten to adjust the file name strings in make.info accordingly.  All this
> difficulties can be avoided by no spliting the info formated docs anymore.

Please note that dvi and ps are already supported, and pdf is not
supported on any platform.  I made all the other changes you
suggested; please see the patches below.

Thanks again for your efforts supporting DJGPP ports in general, and
Make in particular.

2007-12-22  Eli Zaretskii  <address@hidden>

        Suggested by Juan Manuel Guerrero <address@hidden>:

        * Makefile.DOS.template (info_TEXINFOS): Remove unused variable.
        (TEXINFOS): Value changed to `doc/make.texi'.
        (.SUFFIXES): Use .texi instead of .texinfo.
        (make.info, make.dvi): Depend on doc/make.texi.
        (.texi.info): New target, instead of ".texinfo.info".  Change -I
        switch to $(MAKEINFO) to look in doc/.  Use --no-split.
        (.texi): New target, instead of ".texinfo".  Change -I switch to
        $(MAKEINFO) to look in doc/.  Use --no-split.
        (.texi.dvi): New target, instead of ".texinfo.dvi".  Change -I
        switch to $(MAKEINFO) to look in doc/.
        (install-info-am, uninstall-info): Don't look for "*.i[0-9]" and
        "*.i[0-9][0-9]" (due to --no-split above).
        (noinst_TEXINFOS, TEXI2HTML, TEXI2HTML_FLAGS): New variables.
        (html, make_1.html): New targets.
        (.PHONY): Add "html".
        (.SUFFIXES): Add .html.

Index: Makefile.DOS.template
RCS file: /sources/make/make/Makefile.DOS.template,v
retrieving revision 2.15
diff -u -r2.15 Makefile.DOS.template
--- Makefile.DOS.template       4 Jul 2007 19:35:16 -0000       2.15
+++ Makefile.DOS.template       22 Dec 2007 12:04:40 -0000
@@ -83,7 +83,6 @@
 libglob_a_SOURCES =    %GLOB_SOURCES%
 make_LDADD =     glob/libglob.a
-info_TEXINFOS =        make.texinfo
 man_MANS =     make.1
 INCLUDES =     -I$(srcdir)/glob -DLIBDIR=\"c:/djgpp/lib\" 
-DINCLUDEDIR=\"c:/djgpp/include\" -DLOCALEDIR=\"$(localedir)\"
@@ -118,10 +117,14 @@
 TEXINFO_TEX = $(srcdir)/config/texinfo.tex
 INFO_DEPS = make.info
 DVIS = make.dvi
-TEXINFOS = make.texinfo
+TEXINFOS = doc/make.texi
+noinst_TEXINFOS = doc/fdl.texi doc/make-stds.texi
 man1dir = $(mandir)/man1
 MANS = $(man_MANS)
+TEXI2HTML = texi2html
+TEXI2HTML_FLAGS = -split_chapter
 NROFF = nroff
Makefile.in NEWS acconfig.h aclocal.m4 alloca.c build.sh-in config.h-in  
configure configure.in getloadavg.c
@@ -136,7 +139,7 @@
 default: all
-.SUFFIXES: .c .dvi .info .o .obj .ps .texinfo .tex
+.SUFFIXES: .c .dvi .info .o .obj .ps .texi .tex .html
@@ -186,33 +189,41 @@
        @command.com /c if exist make.exe del make.exe
        $(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS)
-make.info: make.texinfo
-make.dvi: make.texinfo
+# Documentation
+make.info: doc/make.texi
+make.dvi: doc/make.texi
 DVIPS = dvips
        @command.com /c if exist make.info* del make.info*
        @command.com /c if exist make.i* del make.i*
-       $(MAKEINFO) -I$(srcdir) $< -o ./$@
+       $(MAKEINFO) -I$(srcdir)/doc --no-split $< -o ./$@
        @command.com /c if exist make.info* del make.info*
        @command.com /c if exist make.i* del make.i*
-       $(MAKEINFO) -I$(srcdir) $< -o ./$@
-       TEXINPUTS="$(srcdir);$$TEXINPUTS"    MAKEINFO='$(MAKEINFO) -I 
$(srcdir)' $(TEXI2DVI) $<
+       $(MAKEINFO) -I$(srcdir)/doc --no-split $< -o ./$@
+       TEXINPUTS="$(srcdir)/doc;$$TEXINPUTS"    MAKEINFO='$(MAKEINFO) -I 
$(srcdir)/doc' $(TEXI2DVI) $<
        $(DVIPS) $< -o $@
+# Other documentation formats
+html: make_1.html
+make_1.html: $(TEXINFOS) $(noinst_TEXINFOS)
+       $(TEXI2HTML) $(TEXI2HTML_FLAGS) $(srcdir)/doc/make.texi
 install-info-am: $(INFO_DEPS)
        $(mkinstalldirs) $(DESTDIR)$(infodir)
-       @for file in $(INFO_DEPS) make.i; do    d=$(srcdir);    for ifile in 
`cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9] $$file[0-9] 
$$file[0-9][0-9]`; do      if test -f $$d/$$ifile; then        echo " 
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; $(INSTALL_DATA) 
$$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; else : ; fi;    done;  done
+       @for file in $(INFO_DEPS); do    d=$(srcdir);    for ifile in `cd $$d 
&& echo $$file`; do      if test -f $$d/$$ifile; then        echo " 
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; $(INSTALL_DATA) 
$$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; else : ; fi;    done;  done
        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then    for file in $(INFO_DEPS); do      echo " 
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";     
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;  
 done;  else : ; fi
@@ -220,7 +231,7 @@
        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i 
debian' >/dev/null 2>&1; then    ii=yes;  else ii=; fi;  for file in 
$(INFO_DEPS); do    test -z $ii || install-info --info-dir=$(DESTDIR)$(infodir) 
--remove $$file;  done
-       for file in $(INFO_DEPS) make.i; do    (cd $(DESTDIR)$(infodir) && rm 
-f $$file $$file-[0-9] $$file-[0-9][0-9] $$file[0-9] $$file[0-9][0-9]);  done
+       for file in $(INFO_DEPS); do (cd $(DESTDIR)$(infodir) && rm -f $$file); 
 dist-info: $(INFO_DEPS)
        for base in $(INFO_DEPS); do    d=$(srcdir);    for file in `cd $$d && 
eval echo $$base*`; do      test -f $(distdir)/$$file      || ln $$d/$$file 
$(distdir)/$$file 2> /dev/null      || cp -p $$d/$$file $(distdir)/$$file;    
done;  done
@@ -235,7 +246,7 @@
-       for i in $(INFO_DEPS) make.i; do rm -f `eval echo $$i*`; done
+       for i in $(INFO_DEPS); do rm -f $$i*; done
        $(mkinstalldirs) $(DESTDIR)$(man1dir)
@@ -455,7 +466,8 @@
 all-recursive-am all-am install-exec-am install-data-am uninstall-am \
 install-exec install-data install uninstall all installdirs \
 mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean \
 # --------------- Local DIST Section

reply via email to

[Prev in Thread] Current Thread [Next in Thread]