xref: /illumos-gate/usr/src/cmd/spell/Makefile (revision cd61ae21816e53b94bc1673f3f1aa651fc3115e8)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#
23# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26
27HASHPROG=	hashmk1 spellin1
28SHPROG=		spell compress
29HASHTAB=	hlista hlistb hstop
30BINPROG=	spellprog spellin hashmake hashcheck
31PROG=		$(SHPROG) $(BINPROG) $(HASHPROG) $(HASHTAB) spellhist
32
33SPELLPROGSRC=	spellprog.c hash.c hashlook.c huff.c
34SPELLPROGOBJ=	$(SPELLPROGSRC:%.c=%.o)
35
36SPELLINSRC=	spellin.c huff.c
37SPELLINOBJ=	$(SPELLINSRC:%.c=%.o)
38
39HASHCHECKSRC=	hashcheck.c hash.c huff.c
40HASHCHECKOBJ=	$(HASHCHECKSRC:%.c=%.o)
41
42HASHMAKESRC=	hashmake.c hash.c
43HASHMAKEOBJ=	$(HASHMAKESRC:%.c=%.o)
44
45SRCS= $(SPELLPROGSRC) spellin.c hashcheck.c hashmake.c
46OBJS= $(SRCS:%.c=%.o)
47
48WORDS=	american british local list extra stop
49TXTS=	compress.sh spell.sh
50
51include ../Makefile.cmd
52
53CFLAGS += $(CCVERBOSE)
54CERRWARN += -_gcc=-Wno-parentheses
55
56XGETFLAGS += -a -x spell.xcl
57
58CLOBBERFILES += htemp1 htemp2
59
60ROOTSPELLD = $(ROOTLIB)/spell
61ROOTVARADMD = $(ROOT)/var/adm
62ROOTDIRS= $(ROOTSPELLD)
63
64BINF= spell
65SPELLF= spellprog hashmake hashcheck spellin hstop hlistb hlista compress
66VARADMF= spellhist
67
68ROOTBINF = $(BINF:%=$(ROOTBIN)/%)
69ROOTSPELLF = $(SPELLF:%=$(ROOTSPELLD)/%)
70ROOTVARADMF = $(VARADMF:%=$(ROOTVARADMD)/%)
71
72HASHFILEMODE = 0644
73$(ROOTSPELLD)/hstop $(ROOTSPELLD)/hlistb \
74$(ROOTSPELLD)/hlista :=	FILEMODE =	0644
75$(ROOTVARADMF) :=	FILEMODE =	0666
76
77spellin1 hashmk1 := CC = $(NATIVECC)
78spellin1 hashmk1 := POST_PROCESS =
79spellin1 hashmk1 := CPPFLAGS =
80spellin1 hashmk1 := LDFLAGS = $(BDIRECT)
81
82$(ROOTSPELLD)/% $(ROOTVARADMD)/% : %
83	$(INS.file)
84
85.KEEP_STATE:
86
87all:	$(PROG) $(TXTS)
88
89spellprog:		$(SPELLPROGOBJ)
90			$(LINK.c) $(SPELLPROGOBJ) -o $@ $(LDLIBS)
91			$(POST_PROCESS)
92
93spellin spellin1:	$(SPELLINOBJ)
94			$(LINK.c) $(SPELLINOBJ) -o $@ $(LDLIBS)
95			$(POST_PROCESS)
96
97spellhist:
98			$(ECHO) '\c' > spellhist
99
100hashcheck:		$(HASHCHECKOBJ)
101			$(LINK.c) $(HASHCHECKOBJ) -o $@ $(LDLIBS)
102			$(POST_PROCESS)
103
104hashmake hashmk1:	$(HASHMAKEOBJ)
105			$(LINK.c) $(HASHMAKEOBJ) -o $@ $(LDLIBS)
106			$(POST_PROCESS)
107
108htemp1:	list local extra hashmk1
109	$(RM) $@; cat list local extra | $(_SH_) ./hashmk1 > $@
110
111hlista: american $(HASHPROG) htemp1
112	$(RM) htemp2; ./hashmk1 <american |sort -u - htemp1 >htemp2
113	$(RM) $@; ./spellin1 `wc htemp2|sed -n 's/\([^ ]\) .*/\1/p'`<htemp2 >$@
114	$(RM) htemp2
115
116hlistb: british $(HASHPROG) htemp1
117	$(RM) htemp2; ./hashmk1 <british |sort -u - htemp1 >htemp2
118	$(RM) $@; ./spellin1 `wc htemp2|sed -n 's/\([^ ]\) .*/\1/p'`<htemp2 >$@
119	$(RM) htemp2
120
121hstop:	stop $(HASHPROG)
122	$(RM) htemp2; ./hashmk1 <stop | sort -u >htemp2
123	$(RM) $@; ./spellin1 `wc htemp2|sed -n 's/\([^ ]\) .*/\1/p'`<htemp2 >$@
124	$(RM) htemp2
125
126install: all $(ROOTDIRS) $(ROOTBINF) $(ROOTSPELLF) $(ROOTVARADMF)
127
128$(ROOTDIRS):
129	$(INS.dir)
130
131lint:	lint_SRCS
132
133clean:
134	$(RM) $(OBJS)
135
136include ../Makefile.targ
137