| # Maintainer-only makefile segment. This contains things that are relevant |
| # only if you have the full copy of the GNU make sources from the CVS |
| # tree, not a dist copy. |
| # |
| |
| # Find the glob source files... this might be dangerous, but we're maintainers! |
| # |
| globsrc := $(wildcard glob/*.c) |
| globhdr := $(wildcard glob/*.h) |
| |
| TEMPLATES = README README.DOS config.ami configh.dos config.h.W32 config.h-vms |
| MTEMPLATES = Makefile.DOS SMakefile |
| |
| # We need this to ensure that README and build.sh.in are created on time to |
| # avoid errors by automake. |
| # |
| #Makefile.in: README build.sh.in |
| |
| # General rule for turning a .template into a regular file. |
| # |
| $(TEMPLATES) : % : %.template configure.in |
| rm -f $@ |
| sed -e 's@%VERSION%@$(VERSION)@' \ |
| -e 's@%PACKAGE%@$(PACKAGE)@' \ |
| $< > $@ |
| chmod a-w $@ |
| |
| # Construct Makefiles by adding on dependencies, etc. |
| # |
| $(MTEMPLATES) : % : %.template .dep_segment Makefile.am maintMakefile |
| rm -f $@ |
| sed -e 's@%VERSION%@$(VERSION)@' \ |
| -e 's@%PROGRAMS%@$(bin_PROGRAMS)@' \ |
| -e 's@%SOURCES%@$(filter-out remote-%,$(make_SOURCES)) remote-$$(REMOTE).c@' \ |
| -e 's@%OBJECTS%@$(filter-out remote-%,$(make_OBJECTS)) remote-$$(REMOTE).o@' \ |
| -e 's@%GLOB_SOURCES%@$(globsrc) $(globhdr)@' \ |
| -e 's@%GLOB_OBJECTS%@$(globsrc:glob/%.c=%.o)@' \ |
| $< > $@ |
| echo >>$@; echo '# --------------- DEPENDENCIES' >>$@; echo '#' >>$@; \ |
| cat $(word 2,$^) >>$@ |
| chmod a-w $@ |
| |
| NMakefile: NMakefile.template .dep_segment Makefile.am maintMakefile |
| rm -f $@ |
| cp $< $@ |
| echo >>$@; echo '# --------------- DEPENDENCIES' >>$@; echo '#' >>$@; \ |
| sed 's/^\([^ ]*\)\.o:/$$(OUTDIR)\/\1.obj:/' $(word 2,$^) >>$@ |
| chmod a-w $@ |
| |
| # Construct build.sh.in |
| # |
| build.sh.in: build.template Makefile.am maintMakefile |
| rm -f $@ |
| sed -e 's@%objs%@$(filter-out remote-%, $(make_OBJECTS)@' \ |
| -e 's@%globobjs%@$(patsubst %.c,%.o,$(globsrc)))@' \ |
| $< > $@ |
| chmod a-w+x $@ |
| |
| # Use automake to build a dependency list file, for "foreign" makefiles like |
| # Makefile.DOS. |
| # |
| .dep_segment: Makefile.am maintMakefile $(DEP_FILES) |
| $(AUTOMAKE) --generate-deps --build-dir=. --srcdir-name=. |
| |
| # We clean everything here. The GNU standards for makefile conventions say |
| # you shouldn't remove configure, etc., but this makefile is only available |
| # in a full development distribution, so they'll only be removed then. |
| # |
| # And _I_ want them to be removed ;) |
| # |
| maintFILES = configure aclocal.m4 config.h.in Makefile.in stamp-h.in |
| |
| MAINTAINERCLEANFILES = $(maintFILES) $(TEMPLATES) $(MTEMPLATES) NMakefile \ |
| missing build.sh.in .dep_segment |
| |
| # Put the alpha distribution files up for anonymous FTP. |
| # |
| ALPHA := ~ftp/gnu |
| TARFILE := $(distdir).tar.gz |
| |
| .PHONY: alpha |
| alpha: $(ALPHA) $(TARFILE) |
| @rm -f $(ALPHA)/$(TARFILE) |
| cp -p $(TARFILE) $(ALPHA) |
| |
| # This is needed because normal builds with GCC don't compile alloca.c, so |
| # alloca.P doesn't get built :-/. |
| # |
| .deps/alloca.P: alloca.c |
| $(COMPILE) -M -o $@ $< |