~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to Makefile.am

  • Committer: Andrew J. Schorr
  • Date: 2014-08-03 18:44:47 UTC
  • mfrom: (408.7.1)
  • mto: (408.2.352)
  • mto: This revision was merged to the branch mainline in revision 507.
  • Revision ID: git-v1:ff21da5c7f072a69e9582f1a7ae2039f27f564cf
Merge branch 'gawk-4.1-stable' to get --profile to work with -M.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#
2
2
# Makefile.am --- automake input file for gawk
3
3
#
4
 
# Copyright (C) 2000-2023 the Free Software Foundation, Inc.
 
4
# Copyright (C) 2000-2014 the Free Software Foundation, Inc.
5
5
#
6
6
# This file is part of GAWK, the GNU implementation of the
7
7
# AWK Programming Language.
27
27
# correctly after changing configure.ac
28
28
ACLOCAL_AMFLAGS = -I m4
29
29
 
30
 
AM_CFLAGS = @CFLAGS@
31
 
AM_LDFLAGS = @LDFLAGS@
 
30
# This insures that make flags get passed down to child makes.
 
31
AM_MAKEFLAGS = 'CFLAGS=$(CFLAGS)' 'LDFLAGS=$(LDFLAGS)'
32
32
 
33
33
# Stuff to include in the dist that doesn't need it's own
34
34
# Makefile.am files
35
35
EXTRA_DIST = \
36
36
        ChangeLog.0 \
37
 
        ChangeLog.1 \
38
37
        COPYING \
39
38
        INSTALL \
40
39
        NEWS \
41
40
        NEWS.0 \
42
 
        NEWS.1 \
43
41
        POSIX.STD \
44
42
        README_d \
 
43
        bisonfix.awk \
 
44
        config.guess \
 
45
        config.rpath  \
 
46
        config.sub \
 
47
        depcomp \
45
48
        m4 \
 
49
        missing \
46
50
        missing_d \
47
51
        po/README \
48
52
        pc \
49
53
        posix \
50
 
        vms
 
54
        regcomp.c \
 
55
        regex_internal.c \
 
56
        regex_internal.h \
 
57
        regexec.c \
 
58
        vms \
 
59
        ylwrap
51
60
 
52
61
# The order to do things in.
53
 
#
54
 
# Build in support first, since we need the support library.
55
 
#
56
62
# Build explicitly in "." in order to build gawk first, so
57
63
# that `make check' without a prior `make' works.
58
 
SUBDIRS = support .
59
 
 
60
 
# Build in extension before test so that
61
 
#       ./configure && make check
62
 
# works properly too.
63
 
if ENABLE_EXTENSIONS
64
 
SUBDIRS += extension
65
 
endif
66
 
 
67
 
# Build in awklib after in doc, since we want to extract
68
 
# sample files if doc/gawk.texi changed.
69
 
SUBDIRS += extras doc awklib po test
 
64
SUBDIRS = \
 
65
        . \
 
66
        awklib \
 
67
        doc \
 
68
        po \
 
69
        extension \
 
70
        test
70
71
 
71
72
# what to make and install
72
73
bin_PROGRAMS = gawk
73
 
bin_SCRIPTS = gawkbug
74
74
include_HEADERS = gawkapi.h
75
 
BUILT_SOURCES = $(srcdir)/pc/Makefile.tst
76
75
 
77
 
# sources for gawk
 
76
# sources for both gawk and dgawk
78
77
base_sources = \
79
78
        array.c \
80
79
        awk.h \
85
84
        command.y \
86
85
        custom.h \
87
86
        debug.c \
 
87
        dfa.c \
 
88
        dfa.h \
88
89
        eval.c \
89
90
        ext.c \
90
91
        field.c \
93
94
        gawkapi.c \
94
95
        gawkapi.h \
95
96
        gawkmisc.c \
 
97
        getopt.c \
 
98
        getopt.h \
 
99
        getopt1.c \
 
100
        getopt_int.h \
96
101
        gettext.h \
97
102
        int_array.c \
98
103
        interpret.h \
99
104
        io.c \
 
105
        mbsupport.h \
100
106
        main.c \
101
107
        mpfr.c \
102
108
        msg.c \
103
109
        node.c \
104
110
        nonposix.h \
105
 
        printf.c \
106
111
        profile.c \
107
112
        protos.h \
 
113
        random.c \
 
114
        random.h \
108
115
        re.c \
 
116
        regex.c \
 
117
        regex.h \
109
118
        replace.c \
110
119
        str_array.c \
111
120
        symbol.c \
112
 
        version.c
 
121
        version.c \
 
122
        xalloc.h
113
123
 
114
124
gawk_SOURCES = $(base_sources)
115
125
 
116
126
# Get extra libs as needed, Automake will supply LIBINTL and SOCKET_LIBS.
117
 
LDADD = support/libsupport.a \
118
 
        $(LIBSIGSEGV) $(LIBINTL) $(SOCKET_LIBS) $(LIBREADLINE) $(LIBMPFR) \
119
 
        $(LDFLAGS)
 
127
LDADD = $(LIBSIGSEGV) $(LIBINTL) $(SOCKET_LIBS) $(LIBREADLINE) $(LIBMPFR)
120
128
 
121
129
# Directory for gawk's data files. Automake supplies datadir.
122
130
pkgdatadir = $(datadir)/awk
128
136
SHLIBEXT = "\"$(GAWKLIBEXT)"\"
129
137
DEFLIBPATH="\"$(pkgextensiondir)\""
130
138
 
131
 
DEFS= -DDEFPATH=$(DEFPATH) -DDEFLIBPATH=$(DEFLIBPATH) -DSHLIBEXT=$(SHLIBEXT) -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='"$(datadir)/locale"' -I"$(srcdir)/support"
 
139
DEFS= -DDEFPATH=$(DEFPATH) -DDEFLIBPATH=$(DEFLIBPATH) -DSHLIBEXT=$(SHLIBEXT) -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='"$(datadir)/locale"'
132
140
 
133
141
# Get rid of core files when cleaning
134
 
CLEANFILES = core core.* $(bin_SCRIPTS)
 
142
CLEANFILES = core core.*
135
143
 
136
144
# We want hard links for install-exec-hook, below
137
145
LN= ln
138
146
 
139
 
# Make copies...
140
 
CP= cp
141
 
 
142
 
# For some make's, e.g. OpenBSD, that don't define this
143
 
RM = rm -f
144
 
 
145
 
# For debugging
146
 
DEBUG = -gdwarf-4 -g3
147
 
 
148
147
# First, add a link from gawk to gawk-X.Y.Z.
149
148
#
150
149
# For GNU systems where gawk is awk, add a link to awk.
151
150
# (This is done universally, which may not always be right, but
152
151
# there's no easy way to distinguish GNU from non-GNU systems.)
153
 
#
154
 
# Use the transform, in case --program-prefix=XXX
155
152
install-exec-hook:
156
153
        (cd $(DESTDIR)$(bindir); \
157
 
        name=`echo gawk | sed '$(transform)'` ; \
158
 
        if [ ! -f gawk-$(VERSION)$(EXEEXT) ]; \
159
 
        then    $(LN) $${name}$(EXEEXT) gawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
160
 
        fi; \
161
 
        if [ ! -f awk$(EXEEXT) ]; \
162
 
        then    $(LN_S) $${name}$(EXEEXT) awk$(EXEEXT); \
 
154
        $(LN) gawk$(EXEEXT) gawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
 
155
        if [ ! -f awk ]; \
 
156
        then    $(LN_S) gawk$(EXEEXT) awk; \
163
157
        fi; exit 0)
164
158
 
165
159
# Undo the above when uninstalling
166
160
uninstall-links:
167
161
        (cd $(DESTDIR)$(bindir); \
168
 
        name=`echo gawk | sed '$(transform)'` ; \
169
 
        if [ -f awk$(EXEEXT) ] && cmp awk$(EXEEXT) $${name}$(EXEEXT) > /dev/null; then rm -f awk$(EXEEXT); fi ; \
 
162
        if [ -f awk ] && cmp awk gawk$(EXEEXT) > /dev/null; then rm -f awk; fi ; \
170
163
        rm -f gawk-$(VERSION)$(EXEEXT); exit 0)
171
164
 
172
165
uninstall-recursive: uninstall-links
175
168
check-local: gawk$(EXEEXT)
176
169
 
177
170
# A little extra clean up when making distributions.
 
171
# And additional set up for the pc directory.
178
172
dist-hook:
179
 
        cd "$(distdir)"/extension ; rm -f *.o *.so
180
 
        cd "$(srcdir)"/pc ; \
 
173
        cd $(distdir)/extension ; rm -f *.o *.so
 
174
        cd $(srcdir)/pc ; \
181
175
        chmod u+w config.h ; \
182
176
        sed -n -f configpk.sed < ../configure.ac > /tmp/tmp.sed ; \
183
177
        sed -f config.sed < ../configh.in > /tmp/config.tmp ; \
184
178
        sed -f /tmp/tmp.sed < /tmp/config.tmp > config.h ; \
185
179
        $(RM) /tmp/tmp.sed /tmp/config.tmp
186
180
        pwd
187
 
        chmod u+w "$(distdir)"/pc/config.h
188
 
        cp "$(srcdir)"/pc/config.h "$(distdir)"/pc/config.h
 
181
        chmod u+w $(distdir)/pc/config.h
 
182
        cp $(srcdir)/pc/config.h $(distdir)/pc/config.h
189
183
 
190
184
# Special rules for individual files
191
 
 
192
 
$(srcdir)/awkgram.c: awkgram.y
193
 
        $(YACC) -o $@ $(AM_YFLAGS) $(YFLAGS) $<
194
 
        sed 's/parse error/syntax error/g' < $@ > $@.tmp && mv $@.tmp $@
195
 
 
196
 
$(srcdir)/command.c: command.y
197
 
        $(YACC) -o $@ -p zz $<
198
 
        sed 's/parse error/syntax error/g' < $@ > $@.tmp && mv $@.tmp $@
199
 
 
200
 
$(srcdir)/pc/Makefile.tst: test/Makefile.in pc/Makefile.tst.prologue pc/GenMakefileTst.awk
201
 
        $(AM_V_GEN)$(MKDIR_P) "$(srcdir)"/pc && \
202
 
        cat "$(srcdir)"/pc/Makefile.tst.prologue > "$(srcdir)"/pc/Makefile.tst && \
203
 
        $(AWK) -f "$(srcdir)"/pc/GenMakefileTst.awk "$(srcdir)"/test/Makefile.in >> "$(srcdir)"/pc/Makefile.tst
 
185
# Use of awk instead of $(AWK) is deliberate, in case gawk doesn't build
 
186
# or work correctly.
 
187
 
 
188
awkgram.c: awkgram.y
 
189
        $(YACC) $(AM_YFLAGS) $(YFLAGS) $<
 
190
        sed 's/parse error/syntax error/g' < y.tab.c | awk -f $(srcdir)/bisonfix.awk awkgram > $*.c && rm y.tab.c
 
191
        if test -f y.tab.h; then \
 
192
        if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
 
193
        else :; fi
 
194
 
 
195
command.c: command.y
 
196
        $(YACC) -p zz $<
 
197
        sed 's/parse error/syntax error/g' < y.tab.c | awk -f $(srcdir)/bisonfix.awk command > $*.c && rm y.tab.c
204
198
 
205
199
# This is for my development & testing.
206
200
efence: gawk
207
 
        $(CC) $(AM_LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LDADD) $(LIBS) -lefence
 
201
        $(CC) $(LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LIBS) -lefence
208
202
 
209
 
diffout valgrind-scan zos-diffout:
 
203
diffout valgrind-scan:
210
204
        @cd test && $(MAKE) $(AM_MAKEFLAGS) $@
211
205
 
212
206
valgrind:
218
212
        cd test; rm -f log.[0-9]*; \
219
213
        make check VALGRIND="valgrind --leak-check=no --log-file=log.%p"; \
220
214
        make valgrind-scan
221
 
 
222
 
spell:
223
 
        cd "$(srcdir)"/doc ; $(MAKE) spell
224
 
 
225
 
distclean-local:
226
 
        rm -fr .deps