> *** /tmp/dL6Ouq_Makefile.tpl  2012-04-05 14:37:34.144103910 +0200
> --- Makefile.tpl      2012-04-04 22:03:53.822060326 +0200
> *************** install.all: install-no-fixedincludes
> *** 906,916 ****
>               true ; \
>       fi
>   
> ! # install-no-fixedincludes is used because Cygnus can not distribute
> ! # the fixed header files.
>   .PHONY: install-no-fixedincludes
>   install-no-fixedincludes: installdirs install-host-nogcc \
> !     install-target gcc-no-fixedincludes
>   
>   .PHONY: install-strip
>   install-strip:
> --- 906,917 ----
>               true ; \
>       fi
>   
> ! # install-no-fixedincludes is used to allow the elaboration of binary 
> packages
> ! # suitable for distribution, where we cannot include the fixed system header
> ! # files.
>   .PHONY: install-no-fixedincludes
>   install-no-fixedincludes: installdirs install-host-nogcc \
> !     install-target gcc-install-no-fixedincludes
>   
>   .PHONY: install-strip
>   install-strip:

This is missing in the ChangeLog.

> *************** check-gcc-[+language+]:
> *** 1443,1467 ****
>   check-[+language+]: check-gcc-[+language+][+ FOR lib-check-target +] [+ 
> lib-check-target +][+ ENDFOR lib-check-target +]
>   [+ ENDFOR languages +]
>   
> ! # Install the gcc headers files, but not the fixed include files,
> ! # which Cygnus is not allowed to distribute.  This rule is very
> ! # dependent on the workings of the gcc Makefile.in.
> ! .PHONY: gcc-no-fixedincludes
> ! gcc-no-fixedincludes:
>       @if [ -f ./gcc/Makefile ]; then \
> -       rm -rf gcc/tmp-include; \
> -       mv gcc/include gcc/tmp-include 2>/dev/null; \
> -       mkdir gcc/include; \
> -       cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
> -       touch gcc/stmp-fixinc gcc/include/fixed; \
> -       rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
>         r=`${PWD_COMMAND}`; export r; \
> !       s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
>         $(HOST_EXPORTS) \
> !       (cd ./gcc && \
> !        $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
> !       rm -rf gcc/include; \
> !       mv gcc/tmp-include gcc/include 2>/dev/null; \
>       else true; fi
>   @endif gcc
>   
> --- 1444,1459 ----
>   check-[+language+]: check-gcc-[+language+][+ FOR lib-check-target +] [+ 
> lib-check-target +][+ ENDFOR lib-check-target +]
>   [+ ENDFOR languages +]
>   
> ! # The gcc part of install-no-fixedincludes, which relies on an intimate
> ! # knowledge of how a number of gcc internal targets (inter)operate.  
> Delegate.
> ! .PHONY: gcc-install-no-fixedincludes
> ! gcc-install-no-fixedincludes:
>       @if [ -f ./gcc/Makefile ]; then \
>         r=`${PWD_COMMAND}`; export r; \
> !       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
>         $(HOST_EXPORTS) \
> !       (cd ./gcc \
> !        && $(MAKE) $(GCC_FLAGS_TO_PASS) install-no-fixedincludes); \
>       else true; fi
>   @endif gcc
>   
> *** /tmp/jqbGTw_Makefile.in   2012-04-05 14:37:34.157109608 +0200
> --- gcc/Makefile.in   2012-04-04 22:03:53.823228924 +0200
> *************** gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(
> *** 4013,4022 ****
> --- 4013,4028 ----
>   # Build the include directories.
>   stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) fixinc_list
>   # Copy in the headers provided with gcc.
> + #
>   # The sed command gets just the last file name component;
>   # this is necessary because VPATH could add a dirname.
>   # Using basename would be simpler, but some systems don't have it.
> + #
>   # The touch command is here to workaround an AIX/Linux NFS bug.
> + #
> + # The move-if-change + cp -p twists for limits.h are intended to preserve
> + # the time stamp when we regenerate, to prevent pointless rebuilds during
> + # e.g. install-no-fixedincludes.
>       -if [ -d include ] ; then true; else mkdir include; chmod a+rx include; 
> fi
>       -if [ -d include-fixed ] ; then true; else mkdir include-fixed; chmod 
> a+rx include-fixed; fi
>       for file in .. $(USER_H); do \
> *************** stmp-int-hdrs: $(STMP_FIXINC) $(USER_H)
> *** 4065,4072 ****
>         fi; \
>         $(mkinstalldirs) $${fix_dir}; \
>         chmod a+rx $${fix_dir} || true; \
>         rm -f $${fix_dir}/limits.h; \
> !       mv tmp-xlimits.h $${fix_dir}/limits.h; \
>         chmod a+r $${fix_dir}/limits.h; \
>       done
>   # Install the README
> --- 4071,4080 ----
>         fi; \
>         $(mkinstalldirs) $${fix_dir}; \
>         chmod a+rx $${fix_dir} || true; \
> +       $(SHELL) $(srcdir)/../move-if-change \
> +         tmp-xlimits.h  tmp-limits.h; \
>         rm -f $${fix_dir}/limits.h; \
> !       cp -p tmp-limits.h $${fix_dir}/limits.h; \
>         chmod a+r $${fix_dir}/limits.h; \
>       done
>   # Install the README
> *************** stmp-fixinc: gsyslimits.h macro_list fix
> *** 4168,4173 ****
> --- 4176,4225 ----
>       fi
>       $(STAMP) stmp-fixinc
>   #
> + 
> + # Install with the gcc headers files, not the fixed include files, which we
> + # are typically not allowed to distribute.  The general idea is to:
> + #  - Get to "install" with a bare set of internal headers, not the
> + #    fixed system ones,
> + #  - Prevent rebuilds of what normally depends on the headers, which is
> + #    useless for installation purposes and would rely on improper headers.
> + #  - Restore as much of the original state as possible.
> + 
> + .PHONY: install-no-fixedincludes stash-maybefixed-headers \
> +     restore-header-stamps restore-maybefixed-headers
> + 
> + install-no-fixedincludes: \
> +     stash-maybefixed-headers \
> +     stmp-int-hdrs \
> +     restore-header-stamps \
> +     install \
> +     restore-maybefixed-headers

This is not safe for parallel build.  What about

install-no-fixedincludes:
        ... contents of stash-maybefixed-headers ...
        $(MAKE) $(FLAGS_TO_PASS) stmp-int-hdrs
        ... contents of restore-header-stamps ...
        $(MAKE) $(FLAGS_TO_PASS) install
        ... contents of restore-maybefixed-headers ...

?

Reply via email to