# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "%Z%%M% %I% %E% SMI" # # cmd/genmsg/Makefile include ../Makefile.cmd PROG= genmsg PSRC_Y= genmsg.y C_OBJS= main.o util.o LEXARGS= LEXSRCS= genmsg.l LEXINTSRCS= lex.yy.c LEXOBJS= lex.yy.o LDLIBS += -ll YFLAGS = -d CPPFLAGS = -I../head $(CPPFLAGS.master) # lex and yacc generates lint-unclean C code. LINTSUPPRESS= \ -erroff=E_FUNC_RET_MAYBE_IGNORED2 \ -erroff=E_EQUALITY_NOT_ASSIGNMENT \ -erroff=E_BLOCK_DECL_UNUSED LINTFLAGS += -um # genmsg has a name clash with main() and libl.so.1. However, genmsg must # still export a number of "yy*" (libl) interfaces. Reduce all other symbols # to local scope. MAPFILES += $(MAPFILE.LEX) $(MAPFILE.NGB) MAPOPTS = $(MAPFILES:%=-M%) LDFLAGS += $(MAPOPTS) OBJS = $(C_OBJS) $(PSRC_Y:%.y=%.o) $(LEXOBJS) PSRC_C = $(PSRC_Y:%.y=%.c) SRCS = $(C_OBJS:%.o=%.c) $(PSRC_C) $(LEXINTSRCS) .KEEP_STATE: all: $(PROG) install: all $(ROOTPROG) $(PROG): $(OBJS) $(MAPFILES) $(CC) -o $@ $(OBJS) $(LDFLAGS) $(LDLIBS) $(POST_PROCESS) $(LEXINTSRCS): $(LEXSRCS) $(LEX) $(LEXARGS) $(LEXSRCS) $(PSRC_C) + y.tab.h: $(PSRC_Y) $(YACC) $(YFLAGS) $(PSRC_Y) $(MV) y.tab.c $(PSRC_C) $(OBJS): y.tab.h lex.yy.c catalog: $(POFILE) $(POFILE): $(SRCS) $(RM) $@ $(COMPILE.cpp) $(SRCS) > $(POFILE).i $(XGETTEXT) $(XGETFLAGS) $(POFILE).i $(SED) "/^domain/d" messages.po > $@ $(RM) $(POFILE).i messages.po lint: $(LEXINTSRCS) $(PSRC_C) $(LINT.c) $(C_OBJS:%.o=%.c) $(LDLIBS) $(LINT.c) $(LEXINTSRCS) $(PSRC_C) $(LINTSUPPRESS) $(LDLIBS) clean: $(RM) $(OBJS) $(PSRC_C) $(LEXINTSRCS) y.tab.h *.po include ../Makefile.targ