Makefile revision e0ad97e30ea0a9af63c42d71690b5f387c763420
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# CDDL HEADER START
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# The contents of this file are subject to the terms of the
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews# Common Development and Distribution License (the "License").
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# You may not use this file except in compliance with the License.
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# or http://www.opensolaris.org/os/licensing.
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# See the License for the specific language governing permissions
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# and limitations under the License.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# When distributing Covered Code, include this CDDL HEADER in each
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# If applicable, add the following below this CDDL HEADER, with the
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# fields enclosed by brackets "[]" replaced with your own identifying
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# information: Portions Copyright [yyyy] [name of copyright owner]
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# CDDL HEADER END
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews#
1425217e5c3a2cbab7f8344e600e0c16047289ffMark Andrews
b5ad6dfea4cc3e7d1d322ac99f1e5a31096837c4Mark Andrews#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Use is subject to license terms.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinMYPROG = svccfg
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinPROG = $(MYPROG)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSRCS = svccfg_main.c \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_engine.c \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_internal.c \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_libscf.c \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_tmpl.c \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_xml.c \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_help.c
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLNTS = $(SRCS:%.c=%.ln) \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein manifest_hash.ln
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinMYOBJS = $(SRCS:%.c=%.o) \
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews svccfg_grammar.o \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_lex.o \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein manifest_hash.o
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinOBJS = $(MYOBJS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinPOFILES = $(SRCS:%.c=%.po) \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_grammar.po \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein svccfg_lex.po \
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews ../common/manifest_hash.po
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeininclude ../../Makefile.cmd
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeininclude ../../Makefile.ctf
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinPOFILE = $(PROG)_all.po
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinNATIVE_BUILD=$(POUND_SIGN)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)NOT_NATIVE=$(POUND_SIGN)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)PROG = $(MYPROG:%=%-native)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)OBJS = $(MYOBJS:%.o=%-native.o)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
a268fec7f54a89a0772a91da0511c8eae09e6157Mark Andrews# svccfg has a name clash with main() and libl.so.1. However, svccfg must
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# still export a number of "yy*" (libl) interfaces. Reduce all other symbols
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# to local scope.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinMAPFILES += $(MAPFILE.LEX) $(MAPFILE.NGB)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinMAPOPTS = $(MAPFILES:%=-M%)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinMYCPPFLAGS = -I ../common -I/usr/include/libxml2
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCPPFLAGS += $(MYCPPFLAGS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLDFLAGS += $(MAPOPTS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLFLAGS = -t
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinYFLAGS = -d
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCLOBBERFILES += svccfg_lex.c svccfg_grammar.c svccfg_grammar.h \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(MYPROG:%=%-native)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSVCCFG_EXTRA_LIBS = -lxml2 -lscf -ll -luutil -lumem -lmd5
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NOT_NATIVE)SVCCFG_EXTRA_LIBS += -ltecla
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLIBSCF = $(SRC)/lib/libscf
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLIBTECLA = $(SRC)/lib/libtecla # just for the header
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLIBUUTIL = $(SRC)/lib/libuutil
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeindebug := COPTFLAG = -g
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinlint := LINTFLAGS = -mux
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinlint := SVCCFG_EXTRA_LIBS = -lscf -ll -luutil -lumem -lmd5
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinLDLIBS += $(SVCCFG_EXTRA_LIBS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)CC = $(NATIVECC)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)LD = $(NATIVELD)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)CFLAGS = $(NATIVE_CFLAGS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)CPPFLAGS = \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein -DNATIVE_BUILD \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(MYCPPFLAGS) \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein -I$(LIBSCF)/inc \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein -I$(LIBTECLA) \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein -I$(LIBUUTIL)/common
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)LDFLAGS =
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(NATIVE_BUILD)LDLIBS = \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein -L$(LIBUUTIL)/native -R $(LIBUUTIL)/native \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein -L$(LIBSCF)/native -R $(LIBSCF)/native \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(SVCCFG_EXTRA_LIBS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinsvccfg_lex.o svccfg_grammar.o := CCVERBOSE =
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinsvccfg_help.po := XGETFLAGS = -a
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein.KEEP_STATE:
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein.PARALLEL: $(OBJS) $(LNTS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinall debug: $(PROG)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinnative: FRC
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein @cd $(LIBUUTIL)/native; pwd; $(MAKE) $(MFLAGS) install
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein @cd $(LIBSCF)/native; pwd; $(MAKE) $(MFLAGS) install
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein @NATIVE_BUILD= $(MAKE) $(MFLAGS) all
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(PROG): $(OBJS) $(MAPFILES)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(LINK.c) -o $@ $(OBJS) $(LDLIBS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(POST_PROCESS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(POFILE): $(POFILES)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein cat $(POFILES) > $(POFILE)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeininstall: all $(ROOTUSRSBINPROG)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinsvccfg_lex.c: svccfg.l svccfg_grammar.h
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(LEX) $(LFLAGS) svccfg.l > $@
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinsvccfg_help.o: svccfg_grammar.h
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinsvccfg_help-native.o: svccfg_grammar.h
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinsvccfg_grammar.h svccfg_grammar.c: svccfg.y
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(YACC) $(YFLAGS) svccfg.y
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein @$(MV) y.tab.h svccfg_grammar.h
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein @$(MV) y.tab.c svccfg_grammar.c
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinclean: FRC
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(RM) $(MYOBJS) $(MYOBJS:%.o=%-native.o) $(LNTS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinlint: $(LNTS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(LINT.c) $(LINTFLAGS) $(LNTS) $(LDLIBS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein%-native.o: %.c
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(COMPILE.c) -o $@ $<
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(POST_PROCESS_O)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein%-native.o: ../common/%.c
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(COMPILE.c) -o $@ $<
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(POST_PROCESS_O)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein%.o: ../common/%.c
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(COMPILE.c) $(OUTPUT_OPTION) $<
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(POST_PROCESS_O)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein%.ln: ../common/%.c
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(LINT.c) $(OUTPUT_OPTION) -c $<
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeininclude ../../Makefile.targ
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinFRC:
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein