xref: /freebsd/contrib/one-true-awk/makefile (revision 17853db4b0dc36ed32af039cd803f13b692913da)
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
35*17853db4SWarner Losh# HOSTCC = g++ -g -Wall -pedantic -Wcast-qual
36b5253557SWarner LoshCC = $(HOSTCC)  # change this is cross-compiling.
37addad6afSRong-En Fan
38f39dd6a9SWarner Losh# By fiat, to make our lives easier, yacc is now defined to be bison.
39f39dd6a9SWarner Losh# If you want something else, you're on your own.
40f39dd6a9SWarner LoshYACC = bison -d
41146a1e50SDavid E. O'Brien
42146a1e50SDavid E. O'BrienOFILES = b.o main.o parse.o proctab.o tran.o lib.o run.o lex.o
43146a1e50SDavid E. O'Brien
44f39dd6a9SWarner LoshSOURCE = awk.h awkgram.tab.c awkgram.tab.h proto.h awkgram.y lex.c b.c main.c \
451b11b783SRuslan Ermilov	maketab.c parse.c lib.c run.c tran.c proctab.c
46146a1e50SDavid E. O'Brien
47813da98dSDavid E. O'BrienLISTING = awk.h proto.h awkgram.y lex.c b.c main.c maketab.c parse.c \
481b11b783SRuslan Ermilov	lib.c run.c tran.c
49146a1e50SDavid E. O'Brien
50f39dd6a9SWarner LoshSHIP = README LICENSE FIXES $(SOURCE) awkgram.tab.[ch].bak makefile  \
511b11b783SRuslan Ermilov	 awk.1
52146a1e50SDavid E. O'Brien
53f39dd6a9SWarner Losha.out:	awkgram.tab.o $(OFILES)
54f39dd6a9SWarner Losh	$(CC) $(CFLAGS) awkgram.tab.o $(OFILES) $(ALLOC)  -lm
55146a1e50SDavid E. O'Brien
56f39dd6a9SWarner Losh$(OFILES):	awk.h awkgram.tab.h proto.h
57146a1e50SDavid E. O'Brien
58f39dd6a9SWarner Loshawkgram.tab.c awkgram.tab.h:	awk.h proto.h awkgram.y
59146a1e50SDavid E. O'Brien	$(YACC) $(YFLAGS) awkgram.y
60146a1e50SDavid E. O'Brien
61146a1e50SDavid E. O'Brienproctab.c:	maketab
62f39dd6a9SWarner Losh	./maketab awkgram.tab.h >proctab.c
63146a1e50SDavid E. O'Brien
64f39dd6a9SWarner Loshmaketab:	awkgram.tab.h maketab.c
65b5253557SWarner Losh	$(HOSTCC) $(CFLAGS) maketab.c -o maketab
66146a1e50SDavid E. O'Brien
67146a1e50SDavid E. O'Brienbundle:
68f39dd6a9SWarner Losh	@cp awkgram.tab.h awkgram.tab.h.bak
69f39dd6a9SWarner Losh	@cp awkgram.tab.c awkgram.tab.c.bak
70146a1e50SDavid E. O'Brien	@bundle $(SHIP)
71146a1e50SDavid E. O'Brien
72146a1e50SDavid E. O'Brientar:
73f39dd6a9SWarner Losh	@cp awkgram.tab.h awkgram.tab.h.bak
74f39dd6a9SWarner Losh	@cp awkgram.tab.c awkgram.tab.c.bak
75146a1e50SDavid E. O'Brien	@bundle $(SHIP) >awk.shar
76146a1e50SDavid E. O'Brien	@tar cf awk.tar $(SHIP)
77146a1e50SDavid E. O'Brien	gzip awk.tar
78146a1e50SDavid E. O'Brien	ls -l awk.tar.gz
79146a1e50SDavid E. O'Brien	@zip awk.zip $(SHIP)
80146a1e50SDavid E. O'Brien	ls -l awk.zip
81146a1e50SDavid E. O'Brien
82b5253557SWarner Loshgitadd:
83b5253557SWarner Losh	git add README LICENSE FIXES \
84b5253557SWarner Losh           awk.h proto.h awkgram.y lex.c b.c main.c maketab.c parse.c \
85b5253557SWarner Losh	   lib.c run.c tran.c \
86f39dd6a9SWarner Losh	   makefile awk.1 testdir
87b5253557SWarner Losh
88b5253557SWarner Loshgitpush:
89b5253557SWarner Losh	# only do this once:
90b5253557SWarner Losh	# git remote add origin https://github.com/onetrueawk/awk.git
91b5253557SWarner Losh	git push -u origin master
92b5253557SWarner Losh
93146a1e50SDavid E. O'Briennames:
94146a1e50SDavid E. O'Brien	@echo $(LISTING)
95146a1e50SDavid E. O'Brien
96f39dd6a9SWarner Loshtest check:
97f39dd6a9SWarner Losh	./REGRESS
98f39dd6a9SWarner Losh
99f39dd6a9SWarner Loshclean: testclean
100addad6afSRong-En Fan	rm -f a.out *.o *.obj maketab maketab.exe *.bb *.bbg *.da *.gcov *.gcno *.gcda # proctab.c
101b5253557SWarner Losh
102f39dd6a9SWarner Loshcleaner: testclean
103f39dd6a9SWarner Losh	rm -f a.out *.o *.obj maketab maketab.exe *.bb *.bbg *.da *.gcov *.gcno *.gcda proctab.c awkgram.tab.*
104f39dd6a9SWarner Losh
105f39dd6a9SWarner Losh# This is a bit of a band-aid until we can invest some more time
106f39dd6a9SWarner Losh# in the test suite.
107f39dd6a9SWarner Loshtestclean:
108f39dd6a9SWarner Losh	cd testdir; rm -fr arnold-fixes beebe devnull echo foo* \
109f39dd6a9SWarner Losh		glop glop1 glop2 lilly.diff tempbig tempsmall time
110f39dd6a9SWarner Losh
111f39dd6a9SWarner Losh# For the habits of GNU maintainers:
112f39dd6a9SWarner Loshdistclean: cleaner
113