# 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 README.W32 \ 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 Makefile rm -f $@ sed -e 's@%VERSION%@$(VERSION)@g' \ -e 's@%PACKAGE%@$(PACKAGE)@g' \ $< > $@ chmod a-w $@ # Construct Makefiles by adding on dependencies, etc. # $(MTEMPLATES) : % : %.template .dep_segment Makefile rm -f $@ sed -e 's@%VERSION%@$(VERSION)@g' \ -e 's@%PROGRAMS%@$(bin_PROGRAMS)@g' \ -e 's@%SOURCES%@$(filter-out remote-%,$(make_SOURCES)) remote-$$(REMOTE).c@g' \ -e 's@%OBJECTS%@$(filter-out remote-%,$(make_OBJECTS)) remote-$$(REMOTE).o@g' \ -e 's@%GLOB_SOURCES%@$(globsrc) $(globhdr)@g' \ -e 's@%GLOB_OBJECTS%@$(globsrc:glob/%.c=%.o)@g' \ $< > $@ echo >>$@; echo '# --------------- DEPENDENCIES' >>$@; echo '#' >>$@; \ cat $(word 2,$^) >>$@ chmod a-w $@ NMakefile: NMakefile.template .dep_segment Makefile 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 rm -f $@ sed -e 's@%objs%@$(filter-out remote-%,$(make_OBJECTS)@g' \ -e 's@%globobjs%@$(patsubst %.c,%.o,$(globsrc)))@g' \ $< > $@ 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 $@ $<