xref: /freebsd/contrib/one-true-awk/makefile (revision f32a6403)
1146a1e50SDavid E. O'Brien# /****************************************************************
2146a1e50SDavid E. O'Brien# Copyright (C) Lucent Technologies 1997
3146a1e50SDavid E. O'Brien# All Rights Reserved
4146a1e50SDavid E. O'Brien#
5146a1e50SDavid E. O'Brien# Permission to use, copy, modify, and distribute this software and
6146a1e50SDavid E. O'Brien# its documentation for any purpose and without fee is hereby
7146a1e50SDavid E. O'Brien# granted, provided that the above copyright notice appear in all
8146a1e50SDavid E. O'Brien# copies and that both that the copyright notice and this
9146a1e50SDavid E. O'Brien# permission notice and warranty disclaimer appear in supporting
10146a1e50SDavid E. O'Brien# documentation, and that the name Lucent Technologies or any of
11146a1e50SDavid E. O'Brien# its entities not be used in advertising or publicity pertaining
12146a1e50SDavid E. O'Brien# to distribution of the software without specific, written prior
13146a1e50SDavid E. O'Brien# permission.
14146a1e50SDavid E. O'Brien#
15146a1e50SDavid E. O'Brien# LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
16146a1e50SDavid E. O'Brien# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
17146a1e50SDavid E. O'Brien# IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
18146a1e50SDavid E. O'Brien# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19146a1e50SDavid E. O'Brien# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
20146a1e50SDavid E. O'Brien# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
21146a1e50SDavid E. O'Brien# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
22146a1e50SDavid E. O'Brien# THIS SOFTWARE.
23146a1e50SDavid E. O'Brien# ****************************************************************/
24146a1e50SDavid E. O'Brien
25f39dd6a9SWarner LoshCFLAGS = -fsanitize=address -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls
26146a1e50SDavid E. O'BrienCFLAGS = -g
27146a1e50SDavid E. O'BrienCFLAGS =
28b5253557SWarner LoshCFLAGS = -O2
29146a1e50SDavid E. O'Brien
30b5253557SWarner Losh# compiler options
31f32a6403SWarner Losh#CC = cc -Wall -g -Wwrite-strings
32f32a6403SWarner Losh#CC = cc -O4 -Wall -pedantic -fno-strict-aliasing
33f32a6403SWarner Losh#CC = cc -fprofile-arcs -ftest-coverage # then gcov f1.c; cat f1.c.gcov
34f32a6403SWarner LoshHOSTCC = cc -g -Wall -pedantic -Wcast-qual
35b5253557SWarner LoshCC = $(HOSTCC)  # change this is cross-compiling.
36addad6afSRong-En Fan
37f39dd6a9SWarner Losh# By fiat, to make our lives easier, yacc is now defined to be bison.
38f39dd6a9SWarner Losh# If you want something else, you're on your own.
39f39dd6a9SWarner LoshYACC = bison -d
40146a1e50SDavid E. O'Brien
41146a1e50SDavid E. O'BrienOFILES = b.o main.o parse.o proctab.o tran.o lib.o run.o lex.o
42146a1e50SDavid E. O'Brien
43f39dd6a9SWarner LoshSOURCE = awk.h awkgram.tab.c awkgram.tab.h proto.h awkgram.y lex.c b.c main.c \
441b11b783SRuslan Ermilov	maketab.c parse.c lib.c run.c tran.c proctab.c
45146a1e50SDavid E. O'Brien
46813da98dSDavid E. O'BrienLISTING = awk.h proto.h awkgram.y lex.c b.c main.c maketab.c parse.c \
471b11b783SRuslan Ermilov	lib.c run.c tran.c
48146a1e50SDavid E. O'Brien
49f39dd6a9SWarner LoshSHIP = README LICENSE FIXES $(SOURCE) awkgram.tab.[ch].bak makefile  \
501b11b783SRuslan Ermilov	 awk.1
51146a1e50SDavid E. O'Brien
52f39dd6a9SWarner Losha.out:	awkgram.tab.o $(OFILES)
53f39dd6a9SWarner Losh	$(CC) $(CFLAGS) awkgram.tab.o $(OFILES) $(ALLOC)  -lm
54146a1e50SDavid E. O'Brien
55f39dd6a9SWarner Losh$(OFILES):	awk.h awkgram.tab.h proto.h
56146a1e50SDavid E. O'Brien
57f39dd6a9SWarner Loshawkgram.tab.c awkgram.tab.h:	awk.h proto.h awkgram.y
58146a1e50SDavid E. O'Brien	$(YACC) $(YFLAGS) awkgram.y
59146a1e50SDavid E. O'Brien
60146a1e50SDavid E. O'Brienproctab.c:	maketab
61f39dd6a9SWarner Losh	./maketab awkgram.tab.h >proctab.c
62146a1e50SDavid E. O'Brien
63f39dd6a9SWarner Loshmaketab:	awkgram.tab.h maketab.c
64b5253557SWarner Losh	$(HOSTCC) $(CFLAGS) maketab.c -o maketab
65146a1e50SDavid E. O'Brien
66146a1e50SDavid E. O'Brienbundle:
67f39dd6a9SWarner Losh	@cp awkgram.tab.h awkgram.tab.h.bak
68f39dd6a9SWarner Losh	@cp awkgram.tab.c awkgram.tab.c.bak
69146a1e50SDavid E. O'Brien	@bundle $(SHIP)
70146a1e50SDavid E. O'Brien
71146a1e50SDavid E. O'Brientar:
72f39dd6a9SWarner Losh	@cp awkgram.tab.h awkgram.tab.h.bak
73f39dd6a9SWarner Losh	@cp awkgram.tab.c awkgram.tab.c.bak
74146a1e50SDavid E. O'Brien	@bundle $(SHIP) >awk.shar
75146a1e50SDavid E. O'Brien	@tar cf awk.tar $(SHIP)
76146a1e50SDavid E. O'Brien	gzip awk.tar
77146a1e50SDavid E. O'Brien	ls -l awk.tar.gz
78146a1e50SDavid E. O'Brien	@zip awk.zip $(SHIP)
79146a1e50SDavid E. O'Brien	ls -l awk.zip
80146a1e50SDavid E. O'Brien
81b5253557SWarner Loshgitadd:
82b5253557SWarner Losh	git add README LICENSE FIXES \
83b5253557SWarner Losh           awk.h proto.h awkgram.y lex.c b.c main.c maketab.c parse.c \
84b5253557SWarner Losh	   lib.c run.c tran.c \
85f39dd6a9SWarner Losh	   makefile awk.1 testdir
86b5253557SWarner Losh
87b5253557SWarner Loshgitpush:
88b5253557SWarner Losh	# only do this once:
89b5253557SWarner Losh	# git remote add origin https://github.com/onetrueawk/awk.git
90b5253557SWarner Losh	git push -u origin master
91b5253557SWarner Losh
92146a1e50SDavid E. O'Briennames:
93146a1e50SDavid E. O'Brien	@echo $(LISTING)
94146a1e50SDavid E. O'Brien
95f39dd6a9SWarner Loshtest check:
96f39dd6a9SWarner Losh	./REGRESS
97f39dd6a9SWarner Losh
98f39dd6a9SWarner Loshclean: testclean
99addad6afSRong-En Fan	rm -f a.out *.o *.obj maketab maketab.exe *.bb *.bbg *.da *.gcov *.gcno *.gcda # proctab.c
100b5253557SWarner Losh
101f39dd6a9SWarner Loshcleaner: testclean
102f39dd6a9SWarner Losh	rm -f a.out *.o *.obj maketab maketab.exe *.bb *.bbg *.da *.gcov *.gcno *.gcda proctab.c awkgram.tab.*
103f39dd6a9SWarner Losh
104f39dd6a9SWarner Losh# This is a bit of a band-aid until we can invest some more time
105f39dd6a9SWarner Losh# in the test suite.
106f39dd6a9SWarner Loshtestclean:
107f39dd6a9SWarner Losh	cd testdir; rm -fr arnold-fixes beebe devnull echo foo* \
108f39dd6a9SWarner Losh		glop glop1 glop2 lilly.diff tempbig tempsmall time
109f39dd6a9SWarner Losh
110f39dd6a9SWarner Losh# For the habits of GNU maintainers:
111f39dd6a9SWarner Loshdistclean: cleaner
112