Blame Makefile.am

Packit Service f629e6
#
Packit Service f629e6
# Makefile.am --- automake input file for gawk
Packit Service f629e6
#
Packit Service f629e6
# Copyright (C) 2000-2016 the Free Software Foundation, Inc.
Packit Service f629e6
#
Packit Service f629e6
# This file is part of GAWK, the GNU implementation of the
Packit Service f629e6
# AWK Programming Language.
Packit Service f629e6
#
Packit Service f629e6
# GAWK is free software; you can redistribute it and/or modify
Packit Service f629e6
# it under the terms of the GNU General Public License as published by
Packit Service f629e6
# the Free Software Foundation; either version 3 of the License, or
Packit Service f629e6
# (at your option) any later version.
Packit Service f629e6
#
Packit Service f629e6
# GAWK is distributed in the hope that it will be useful,
Packit Service f629e6
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service f629e6
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service f629e6
# GNU General Public License for more details.
Packit Service f629e6
#
Packit Service f629e6
# You should have received a copy of the GNU General Public License
Packit Service f629e6
# along with this program; if not, write to the Free Software
Packit Service f629e6
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
Packit Service f629e6
#
Packit Service f629e6
Packit Service f629e6
## process this file with automake to produce Makefile.in
Packit Service f629e6
Packit Service f629e6
# This variable insures that aclocal runs
Packit Service f629e6
# correctly after changing configure.ac
Packit Service f629e6
ACLOCAL_AMFLAGS = -I m4
Packit Service f629e6
Packit Service f629e6
# This insures that make flags get passed down to child makes.
Packit Service f629e6
AM_MAKEFLAGS = 'CFLAGS=$(CFLAGS)' 'LDFLAGS=$(LDFLAGS)'
Packit Service f629e6
Packit Service f629e6
# Stuff to include in the dist that doesn't need it's own
Packit Service f629e6
# Makefile.am files
Packit Service f629e6
EXTRA_DIST = \
Packit Service f629e6
	ChangeLog.0 \
Packit Service f629e6
	COPYING \
Packit Service f629e6
	INSTALL \
Packit Service f629e6
	NEWS \
Packit Service f629e6
	NEWS.0 \
Packit Service f629e6
	POSIX.STD \
Packit Service f629e6
	README_d \
Packit Service f629e6
	config.guess \
Packit Service f629e6
	config.rpath  \
Packit Service f629e6
	config.sub \
Packit Service f629e6
	depcomp \
Packit Service f629e6
	m4 \
Packit Service f629e6
	missing \
Packit Service f629e6
	missing_d \
Packit Service f629e6
	po/README \
Packit Service f629e6
	pc \
Packit Service f629e6
	posix \
Packit Service f629e6
	vms \
Packit Service f629e6
	ylwrap
Packit Service f629e6
Packit Service f629e6
# The order to do things in.
Packit Service f629e6
#
Packit Service f629e6
# Build in support first, since we need the support library.
Packit Service f629e6
#
Packit Service f629e6
# Build explicitly in "." in order to build gawk first, so
Packit Service f629e6
# that `make check' without a prior `make' works.
Packit Service f629e6
SUBDIRS = support .
Packit Service f629e6
Packit Service f629e6
# Build in extension before test so that
Packit Service f629e6
# 	./configure && make check
Packit Service f629e6
# works properly too.
Packit Service f629e6
if ENABLE_EXTENSIONS
Packit Service f629e6
SUBDIRS += extension
Packit Service f629e6
endif
Packit Service f629e6
Packit Service f629e6
# Build in awklib after in doc, since we want to extract
Packit Service f629e6
# sample files if doc/gawk.texi changed.
Packit Service f629e6
SUBDIRS += extras doc awklib po test
Packit Service f629e6
Packit Service f629e6
# what to make and install
Packit Service f629e6
bin_PROGRAMS = gawk
Packit Service f629e6
include_HEADERS = gawkapi.h
Packit Service f629e6
Packit Service f629e6
# sources for both gawk and dgawk
Packit Service f629e6
base_sources = \
Packit Service f629e6
	array.c \
Packit Service f629e6
	awk.h \
Packit Service f629e6
	awkgram.y \
Packit Service f629e6
	builtin.c \
Packit Service f629e6
	cint_array.c \
Packit Service f629e6
	cmd.h \
Packit Service f629e6
	command.y \
Packit Service f629e6
	custom.h \
Packit Service f629e6
	debug.c \
Packit Service f629e6
	eval.c \
Packit Service f629e6
	ext.c \
Packit Service f629e6
	field.c \
Packit Service f629e6
	floatcomp.c \
Packit Service f629e6
	floatmagic.h \
Packit Service f629e6
	gawkapi.c \
Packit Service f629e6
	gawkapi.h \
Packit Service f629e6
	gawkmisc.c \
Packit Service f629e6
	gettext.h \
Packit Service f629e6
	int_array.c \
Packit Service f629e6
	interpret.h \
Packit Service f629e6
	io.c \
Packit Service f629e6
	mbsupport.h \
Packit Service f629e6
	main.c \
Packit Service f629e6
	mpfr.c \
Packit Service f629e6
	msg.c \
Packit Service f629e6
	node.c \
Packit Service f629e6
	nonposix.h \
Packit Service f629e6
	profile.c \
Packit Service f629e6
	protos.h \
Packit Service f629e6
	re.c \
Packit Service f629e6
	replace.c \
Packit Service f629e6
	str_array.c \
Packit Service f629e6
	symbol.c \
Packit Service f629e6
	version.c
Packit Service f629e6
Packit Service f629e6
gawk_SOURCES = $(base_sources)
Packit Service f629e6
Packit Service f629e6
# Get extra libs as needed, Automake will supply LIBINTL and SOCKET_LIBS.
Packit Service f629e6
LDADD = support/libsupport.a \
Packit Service f629e6
	$(LIBSIGSEGV) $(LIBINTL) $(SOCKET_LIBS) $(LIBREADLINE) $(LIBMPFR)
Packit Service f629e6
Packit Service f629e6
# Directory for gawk's data files. Automake supplies datadir.
Packit Service f629e6
pkgdatadir = $(datadir)/awk
Packit Service f629e6
Packit Service f629e6
# stuff for compiling gawk/pgawk
Packit Service f629e6
DEFPATH='".$(PATH_SEPARATOR)$(pkgdatadir)"'
Packit Service f629e6
Packit Service f629e6
# shared library support:
Packit Service f629e6
SHLIBEXT = "\"$(GAWKLIBEXT)"\"
Packit Service f629e6
DEFLIBPATH="\"$(pkgextensiondir)\""
Packit Service f629e6
Packit Service f629e6
DEFS= -DDEFPATH=$(DEFPATH) -DDEFLIBPATH=$(DEFLIBPATH) -DSHLIBEXT=$(SHLIBEXT) -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='"$(datadir)/locale"' -I"$(srcdir)/support"
Packit Service f629e6
Packit Service f629e6
# Get rid of core files when cleaning
Packit Service f629e6
CLEANFILES = core core.*
Packit Service f629e6
Packit Service f629e6
# We want hard links for install-exec-hook, below
Packit Service f629e6
LN= ln
Packit Service f629e6
Packit Service f629e6
# For some make's, e.g. OpenBSD, that don't define this
Packit Service f629e6
RM = rm -f
Packit Service f629e6
Packit Service f629e6
# First, add a link from gawk to gawk-X.Y.Z.
Packit Service f629e6
#
Packit Service f629e6
# For GNU systems where gawk is awk, add a link to awk.
Packit Service f629e6
# (This is done universally, which may not always be right, but
Packit Service f629e6
# there's no easy way to distinguish GNU from non-GNU systems.)
Packit Service f629e6
#
Packit Service f629e6
# Use the transform, in case --program-prefix=XXX
Packit Service f629e6
install-exec-hook:
Packit Service f629e6
	(cd $(DESTDIR)$(bindir); \
Packit Service f629e6
	name=`echo gawk | sed '$(transform)'` ; \
Packit Service f629e6
	$(LN) $${name}$(EXEEXT) gawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
Packit Service f629e6
	if [ ! -f awk$(EXEEXT) ]; \
Packit Service f629e6
	then	$(LN_S) $${name}$(EXEEXT) awk$(EXEEXT); \
Packit Service f629e6
	fi; exit 0)
Packit Service f629e6
Packit Service f629e6
# Undo the above when uninstalling
Packit Service f629e6
uninstall-links:
Packit Service f629e6
	(cd $(DESTDIR)$(bindir); \
Packit Service f629e6
	name=`echo gawk | sed '$(transform)'` ; \
Packit Service f629e6
	if [ -f awk$(EXEEXT) ] && cmp awk$(EXEEXT) $${name}$(EXEEXT) > /dev/null; then rm -f awk$(EXEEXT); fi ; \
Packit Service f629e6
	rm -f gawk-$(VERSION)$(EXEEXT); exit 0)
Packit Service f629e6
Packit Service f629e6
uninstall-recursive: uninstall-links
Packit Service f629e6
Packit Service f629e6
# force there to be a gawk executable before running tests
Packit Service f629e6
check-local: gawk$(EXEEXT)
Packit Service f629e6
Packit Service f629e6
# A little extra clean up when making distributions.
Packit Service f629e6
# And additional set up for the pc directory.
Packit Service f629e6
dist-hook:
Packit Service f629e6
	cd "$(distdir)"/extension ; rm -f *.o *.so
Packit Service f629e6
	cd "$(srcdir)"/pc ; \
Packit Service f629e6
	chmod u+w config.h ; \
Packit Service f629e6
	sed -n -f configpk.sed < ../configure.ac > /tmp/tmp.sed ; \
Packit Service f629e6
	sed -f config.sed < ../configh.in > /tmp/config.tmp ; \
Packit Service f629e6
	sed -f /tmp/tmp.sed < /tmp/config.tmp > config.h ; \
Packit Service f629e6
	$(RM) /tmp/tmp.sed /tmp/config.tmp
Packit Service f629e6
	pwd
Packit Service f629e6
	chmod u+w "$(distdir)"/pc/config.h
Packit Service f629e6
	cp "$(srcdir)"/pc/config.h "$(distdir)"/pc/config.h
Packit Service f629e6
Packit Service f629e6
# Special rules for individual files
Packit Service f629e6
Packit Service f629e6
awkgram.c: awkgram.y
Packit Service f629e6
	$(YACC) -o $@ $(AM_YFLAGS) $(YFLAGS) $<
Packit Service f629e6
	sed 's/parse error/syntax error/g' < $@ > $@.tmp && mv $@.tmp $@
Packit Service f629e6
Packit Service f629e6
command.c: command.y
Packit Service f629e6
	$(YACC) -o $@ -p zz $<
Packit Service f629e6
	sed 's/parse error/syntax error/g' < $@ > $@.tmp && mv $@.tmp $@
Packit Service f629e6
Packit Service f629e6
# This is for my development & testing.
Packit Service f629e6
efence: gawk
Packit Service f629e6
	$(CC) $(LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LDADD) $(LIBS) -lefence
Packit Service f629e6
Packit Service f629e6
diffout valgrind-scan:
Packit Service f629e6
	@cd test && $(MAKE) $(AM_MAKEFLAGS) $@
Packit Service f629e6
Packit Service f629e6
valgrind:
Packit Service f629e6
	cd test; rm -f log.[0-9]*; \
Packit Service f629e6
	make check VALGRIND="valgrind --leak-check=full --log-file=log.%p"; \
Packit Service f629e6
	make valgrind-scan
Packit Service f629e6
Packit Service f629e6
valgrind-noleak:
Packit Service f629e6
	cd test; rm -f log.[0-9]*; \
Packit Service f629e6
	make check VALGRIND="valgrind --leak-check=no --log-file=log.%p"; \
Packit Service f629e6
	make valgrind-scan
Packit Service f629e6
Packit Service f629e6
spell:
Packit Service f629e6
	cd "$(srcdir)"/doc ; $(MAKE) spell