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#
24# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27# Copyright (c) 2018, Joyent, Inc.
28
29PROG= cscope-fast
30
31OBJS=	main.o dir.o crossref.o scanner.o lookup.o command.o display.o \
32	find.o edit.o exec.o help.o history.o input.o menu.o alloc.o \
33	cgrep.o compath.o invlib.o logdir.o \
34	mouse.o mygetenv.o mygetwd.o mypopen.o \
35	vpaccess.o vpfopen.o vpinit.o vpopen.o vpstat.o
36SRCS=	$(OBJS:%.o=%.c)
37CLEANFILES += $(OBJS) scanner.c
38TMPDIR= /tmp
39
40include ../Makefile.tools
41
42# these three are because we cannot seem to redefine the size of YYLMAX,
43# and thus yytext, in the code because yytext is defined before our code
44# is seen. YYLMAX is supposed to be STMTMAX+PATLEN+1.
45PATLEN=		250
46STMTMAX=	10000
47YYLMAX=		10251
48CFLAGS +=	-DPATLEN=$(PATLEN) -DSTMTMAX=$(STMTMAX) -DYYLMAX=$(YYLMAX)
49CERRWARN +=	-_gcc=-Wno-parentheses
50CERRWARN +=	-_gcc=-Wno-implicit-function-declaration
51CERRWARN +=	-_gcc=-Wno-unused
52CERRWARN +=	$(CNOWARN_UNINIT)
53
54# not linted
55SMATCH=off
56
57CFLAGS +=	$(CCVERBOSE)
58LDLIBS +=	-lcurses -ll
59NATIVE_LIBS +=	libcurses.so libl.so
60
61.KEEP_STATE:
62
63.PARALLEL: $(OBJS)
64
65all:	$(PROG)
66
67# because of goto's in the scanner
68scanner.o := CCVERBOSE=
69
70$(PROG): $(OBJS)
71	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
72	$(POST_PROCESS)
73
74install: all .WAIT  $(ROOTONBLDMACHPROG)
75
76clean:
77	$(RM) $(CLEANFILES)
78
79lint: lint_SRCS
80
81include ../Makefile.targ
82