# NOTE: If you have no `make' program at all to process this makefile, run
# `build.sh' instead.
#
# Copyright (C) 1988,89,91,92,93,94,95,96 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Make is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Make; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

#
#	Makefile for GNU Make
#

# Ultrix 2.2 make doesn't expand the value of VPATH.
VPATH = @srcdir@
# This must repeat the value, because configure will remove `VPATH = .'.
srcdir = @srcdir@

CC = @CC@

CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@

# Define these for your system as follows:
#	-DNO_ARCHIVES		To disable `ar' archive support.
#	-DNO_FLOAT		To avoid using floating-point numbers.
#	-DENUM_BITFIELDS	If the compiler isn't GCC but groks enum foo:2.
#				Some compilers apparently accept this
#				without complaint but produce losing code,
#				so beware.
# NeXT 1.0a uses an old version of GCC, which required -D__inline=inline.
# See also `config.h'.
defines = @DEFS@ -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\"

# Which flavor of remote job execution support to use.
# The code is found in `remote-$(REMOTE).c'.
REMOTE = @REMOTE@

# If your system doesn't have alloca, or the one provided is bad, define this.
ALLOCA = @ALLOCA@
ALLOCA_SRC = $(srcdir)/alloca.c

# If your system needs extra libraries loaded in, define them here.
# System V probably need -lPW for alloca.  HP-UX 7.0's alloca in
# libPW.a is broken on HP9000s300 and HP9000s400 machines.  Use
# alloca.c instead on those machines.
LOADLIBES = @LIBS@

# Any extra object files your system needs.
extras = @LIBOBJS@

# Common prefix for machine-independent installed files.
prefix = @prefix@
# Common prefix for machine-dependent installed files.
exec_prefix = @exec_prefix@

# Directory to install `make' in.
bindir = $(exec_prefix)/bin
# Directory to find libraries in for `-lXXX'.
libdir = $(exec_prefix)/lib
# Directory to search by default for included makefiles.
includedir = $(prefix)/include
# Directory to install the Info files in.
infodir = $(prefix)/info
# Directory to install the man page in.
mandir = $(prefix)/man/man$(manext)
# Number to put on the man page filename.
manext = 1
# Prefix to put on installed `make' binary file name.
binprefix =
# Prefix to put on installed `make' man page file name.
manprefix = $(binprefix)

# Whether or not make needs to be installed setgid.
# The value should be either `true' or `false'.
# On many systems, the getloadavg function (used to implement the `-l'
# switch) will not work unless make is installed setgid kmem.
install_setgid = @NEED_SETGID@
# Install make setgid to this group so it can read /dev/kmem.
group = @KMEM_GROUP@

# Program to install `make'.
INSTALL_PROGRAM = @INSTALL_PROGRAM@
# Program to install the man page.
INSTALL_DATA = @INSTALL_DATA@
# Generic install program.
INSTALL = @INSTALL@

# Program to format Texinfo source into Info files.
MAKEINFO = makeinfo
# Program to format Texinfo source into DVI files.
TEXI2DVI = texi2dvi

# Programs to make tags files.
ETAGS = etags -w
CTAGS = ctags -w

objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o	\
       rule.o implicit.o default.o variable.o expand.o function.o	\
       vpath.o version.o ar.o arscan.o signame.o remote-$(REMOTE).o	\
       getopt.o getopt1.o glob/libglob.a				\
       $(ALLOCA) $(extras)
srcs = $(srcdir)/commands.c $(srcdir)/job.c $(srcdir)/dir.c		\
       $(srcdir)/file.c $(srcdir)/getloadavg.c $(srcdir)/misc.c		\
       $(srcdir)/main.c $(srcdir)/read.c $(srcdir)/remake.c		\
       $(srcdir)/rule.c $(srcdir)/implicit.c $(srcdir)/default.c	\
       $(srcdir)/variable.c $(srcdir)/expand.c $(srcdir)/function.c	\
       $(srcdir)/vpath.c $(srcdir)/version.c				\
       $(srcdir)/remote-$(REMOTE).c					\
       $(srcdir)/ar.c $(srcdir)/arscan.c				\
       $(srcdir)/signame.c $(srcdir)/signame.h				\
       $(srcdir)/getopt.c $(srcdir)/getopt1.c $(srcdir)/getopt.h	\
       $(srcdir)/commands.h $(srcdir)/dep.h $(srcdir)/filedef.h		\
       $(srcdir)/job.h $(srcdir)/make.h $(srcdir)/rule.h		\
       $(srcdir)/variable.h $(ALLOCA_SRC) $(srcdir)/config.h.in


.SUFFIXES:
.SUFFIXES: .o .c .h .ps .dvi .info .texinfo

all: make
info: make.info
dvi: make.dvi
# Some makes apparently use .PHONY as the default goal if it is before `all'.
.PHONY: all check info dvi

make.info: make.texinfo
	$(MAKEINFO) -I$(srcdir) $(srcdir)/make.texinfo -o make.info

make.dvi: make.texinfo
	$(TEXI2DVI) $(srcdir)/make.texinfo

make.ps: make.dvi
	dvi2ps make.dvi > make.ps

make: $(objs)
	$(CC) $(LDFLAGS) $(objs) $(LOADLIBES) -o make.new
	mv -f make.new make

# -I. is needed to find config.h in the build directory.
.c.o:
	$(CC) $(defines) -c -I. -I$(srcdir) -I$(srcdir)/glob \
	      $(CPPFLAGS) $(CFLAGS) $< $(OUTPUT_OPTION)

# For some losing Unix makes.
SHELL = /bin/sh
@SET_MAKE@

glob/libglob.a: FORCE config.h
	cd glob; $(MAKE) libglob.a
FORCE:

tagsrcs = $(srcs) $(srcdir)/remote-*.c
TAGS: $(tagsrcs)
	$(ETAGS) $(tagsrcs)
tags: $(tagsrcs)
	$(CTAGS) $(tagsrcs)

.PHONY: install installdirs
install: installdirs \
	 $(bindir)/$(binprefix)make $(infodir)/make.info \
	 $(mandir)/$(manprefix)make.$(manext)

installdirs:
	$(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(mandir)

$(bindir)/$(binprefix)make: make
	$(INSTALL_PROGRAM) make $@.new
	@if $(install_setgid); then \
	   if chgrp $(group) $@.new && chmod g+s $@.new; then \
	     echo "chgrp $(group) $@.new && chmod g+s $@.new"; \
	   else \
	     echo "$@ needs to be owned by group $(group) and setgid;"; \
	     echo "otherwise the \`-l' option will probably not work."; \
	     echo "You may need special privileges to install $@."; \
	   fi; \
	 else true; fi
# Some systems can't deal with renaming onto a running binary.
	-rm -f $@.old
	-mv $@ $@.old
	mv $@.new $@

$(infodir)/make.info: make.info
	if [ -r ./make.info ]; then dir=.; else dir=$(srcdir); fi; \
	for file in $${dir}/make.info*; do \
	  name="`basename $$file`"; \
	  $(INSTALL_DATA) $$file \
	    `echo $@ | sed "s,make.info\$$,$$name,"`; \
	done
# Run install-info only if it exists.
# Use `if' instead of just prepending `-' to the
# line so we notice real errors from install-info.
# We use `$(SHELL) -c' because some shells do not
# fail gracefully when there is an unknown command.
	if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
	  if [ -r ./make.info ]; then dir=.; else dir=$(srcdir); fi; \
	  install-info --infodir=$(infodir) $$dir/make.info; \
	else true; fi

$(mandir)/$(manprefix)make.$(manext): make.man
	$(INSTALL_DATA) $(srcdir)/make.man $@


loadavg: loadavg.c config.h
	$(CC) $(defines) -DTEST -I. -I$(srcdir) $(CFLAGS) $(LDFLAGS) \
	      loadavg.c $(LOADLIBES) -o $@
# We copy getloadavg.c into a different file rather than compiling it
# directly because some compilers clobber getloadavg.o in the process.
loadavg.c: getloadavg.c
	ln $(srcdir)/getloadavg.c loadavg.c || \
	cp $(srcdir)/getloadavg.c loadavg.c
check-loadavg: loadavg
	@echo The system uptime program believes the load average to be:
	-uptime
	@echo The GNU load average checking code believes:
	./loadavg
check: check-loadavg


.PHONY: clean realclean distclean mostlyclean
clean: glob-clean
	-rm -f make loadavg *.o core make.dvi
distclean: clean glob-realclean
	-rm -f Makefile config.h config.status build.sh stamp-config
	-rm -f config.log config.cache
	-rm -f TAGS tags
	-rm -f make.?? make.??s make.log make.toc make.*aux
	-rm -f loadavg.c
realclean: distclean
	-rm -f make.info*
mostlyclean: clean

.PHONY: glob-clean glob-realclean
glob-clean glob-realclean:
	cd glob; $(MAKE) $@

Makefile: config.status $(srcdir)/Makefile.in
	$(SHELL) config.status
glob/Makefile: config.status $(srcdir)/glob/Makefile.in
	$(SHELL) config.status
config.h: stamp-config ;
stamp-config: config.status $(srcdir)/config.h.in
	$(SHELL) config.status
	touch stamp-config

#configure: configure.in aclocal.m4
#	cd $(srcdir) && autoconf $(ACFLAGS)
#config.h.in: configure.in aclocal.m4
#	cd $(srcdir) && autoheader $(ACFLAGS)

# This tells versions [3.59,3.63) of GNU make not to export all variables.
.NOEXPORT:

# The automatically generated dependencies below may omit config.h
# because it is included with ``#include <config.h>'' rather than
# ``#include "config.h"''.  So we add the explicit dependency to make sure.
$(objs): config.h

# Automatically generated dependencies will be put at the end of the file.

# Automatically generated dependencies.
commands.o: commands.c make.h dep.h filedef.h variable.h job.h \
 commands.h
job.o: job.c make.h job.h filedef.h commands.h variable.h
dir.o: dir.c make.h
file.o: file.c make.h dep.h filedef.h job.h commands.h variable.h
misc.o: misc.c make.h dep.h
main.o: main.c make.h dep.h filedef.h variable.h job.h commands.h \
 getopt.h
read.o: read.c make.h dep.h filedef.h job.h commands.h variable.h \
 glob/glob.h
remake.o: remake.c make.h filedef.h job.h commands.h dep.h
rule.o: rule.c make.h dep.h filedef.h job.h commands.h variable.h \
 rule.h
implicit.o: implicit.c make.h rule.h dep.h filedef.h
default.o: default.c make.h rule.h dep.h filedef.h job.h commands.h \
 variable.h
variable.o: variable.c make.h dep.h filedef.h job.h commands.h \
 variable.h
expand.o: expand.c make.h filedef.h job.h commands.h variable.h
function.o: function.c make.h filedef.h variable.h dep.h job.h \
 commands.h
vpath.o: vpath.c make.h filedef.h variable.h
version.o: version.c
ar.o: ar.c make.h filedef.h dep.h
arscan.o: arscan.c make.h
signame.o: signame.c signame.h
remote-stub.o: remote-stub.c make.h filedef.h job.h commands.h
getopt.o: getopt.c
getopt1.o: getopt1.c getopt.h
getloadavg.o: getloadavg.c
