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 (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9# or http://www.opensolaris.org/os/licensing. 10# See the License for the specific language governing permissions 11# and limitations under the License. 12# 13# When distributing Covered Code, include this CDDL HEADER in each 14# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15# If applicable, add the following below this CDDL HEADER, with the 16# fields enclosed by brackets "[]" replaced with your own identifying 17# information: Portions Copyright [yyyy] [name of copyright owner] 18# 19# CDDL HEADER END 20# 21# 22# Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23# Use is subject to license terms. 24# 25# Copyright (c) 2018, Joyent, Inc. 26 27PROG = poolcfg 28OBJS = poolcfg_lex.o poolcfg_grammar.o 29SRCS = $(OBJS:%.o=%.c) $(COMMON_SRCS) 30POFILES = $(OBJS:.o=.po) 31POFILE = poolcfg.po 32 33include ../../Makefile.cmd 34include ../Makefile.pools 35 36# poolcf has a name clash with main() and libl.so.1. However, poolcfg must 37# still export a number of "yy*" (libl) interfaces. Reduce all other symbols 38# to local scope. 39MAPFILES += $(MAPFILE.LEX) $(MAPFILE.NGB) 40MAPOPTS = $(MAPFILES:%=-Wl,-M%) 41 42LFLAGS = -t 43YFLAGS = -d 44CFLAGS += -I$(POOLSCOMMONDIR) 45LDFLAGS += $(MAPOPTS) 46LDLIBS += -lpool -ll 47XGETFLAGS = -a 48CLOBBERFILES += poolcfg_lex.c poolcfg_grammar.c poolcfg_grammar.h 49 50# not linted 51SMATCH=off 52 53.KEEP_STATE: 54 55all: $(PROG) 56 57$(PROG): $(OBJS) $(COMMON_OBJS) $(MAPFILES) 58 $(LINK.c) -o $@ $(OBJS) $(COMMON_OBJS) $(LDLIBS) 59 $(POST_PROCESS) 60 61%.o : $(POOLSCOMMONDIR)/%.c 62 $(COMPILE.c) -o $@ $< 63 $(POST_PROCESS_O) 64 65install: all $(ROOTUSRSBINPROG) 66 67poolcfg_lex.c: poolcfg.l poolcfg_grammar.h 68 $(LEX) $(LFLAGS) poolcfg.l > $@ 69 70poolcfg_grammar.h poolcfg_grammar.c: poolcfg.y 71 $(YACC) $(YFLAGS) poolcfg.y 72 @$(MV) y.tab.h poolcfg_grammar.h 73 @$(MV) y.tab.c poolcfg_grammar.c 74 75poolcfg_lex.o poolcfg_grammar.o := CCVERBOSE = 76 77clean: 78 $(RM) $(OBJS) $(COMMON_OBJS) $(POFILES) 79 80$(POFILE): $(POFILES) 81 $(RM) $@; cat $(POFILES) > $@ 82 83include ../../Makefile.targ 84