# 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

GLOB = glob/libglob.a

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) $(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): 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 --info-dir=$(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 signame.h dep.h filedef.h variable.h \
 job.h commands.h
job.o: job.c make.h signame.h job.h filedef.h commands.h variable.h
dir.o: dir.c make.h signame.h
file.o: file.c make.h signame.h dep.h filedef.h job.h commands.h \
 variable.h
misc.o: misc.c make.h signame.h dep.h
main.o: main.c make.h signame.h dep.h filedef.h variable.h job.h \
 commands.h getopt.h
read.o: read.c make.h signame.h dep.h filedef.h job.h commands.h \
 variable.h glob/glob.h
remake.o: remake.c make.h signame.h filedef.h job.h commands.h dep.h
rule.o: rule.c make.h signame.h dep.h filedef.h job.h commands.h \
 variable.h rule.h
implicit.o: implicit.c make.h signame.h rule.h dep.h filedef.h
default.o: default.c make.h signame.h rule.h dep.h filedef.h job.h \
 commands.h variable.h
variable.o: variable.c make.h signame.h dep.h filedef.h job.h \
 commands.h variable.h
expand.o: expand.c make.h signame.h filedef.h job.h commands.h \
 variable.h
function.o: function.c make.h signame.h filedef.h variable.h dep.h \
 job.h commands.h
vpath.o: vpath.c make.h signame.h filedef.h variable.h
version.o: version.c
ar.o: ar.c make.h signame.h filedef.h dep.h
arscan.o: arscan.c make.h signame.h
signame.o: signame.c signame.h
remote-stub.o: remote-stub.c make.h signame.h filedef.h job.h \
 commands.h
getopt.o: getopt.c getopt.h
getopt1.o: getopt1.c getopt.h
getloadavg.o: getloadavg.c
