Makefile revision ceb97a6a3232437e1f0b4c6b8604bc1b4245ccc5
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# CDDL HEADER START
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# The contents of this file are subject to the terms of the
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# Common Development and Distribution License (the "License").
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# You may not use this file except in compliance with the License.
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# or http://www.opensolaris.org/os/licensing.
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# See the License for the specific language governing permissions
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# and limitations under the License.
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# When distributing Covered Code, include this CDDL HEADER in each
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# If applicable, add the following below this CDDL HEADER, with the
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# fields enclosed by brackets "[]" replaced with your own identifying
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# information: Portions Copyright [yyyy] [name of copyright owner]
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# CDDL HEADER END
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# Use is subject to license terms.
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff# ident "%Z%%M% %I% %E% SMI"
8cd870e3f5e3db9808a4a0d6f98db3d1a5348e40Michael Graff#
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael GraffBINPROG = ypmatch ypwhich ypcat
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael GraffSBINPROG = makedbm ypalias ypinit yppoll ypset
ed019cabc1cc75d4412010c331876e4ae5080a4dDavid LawrenceNETYPPROG = ypbind ypxfr yppush udpublickey mkalias \
ed019cabc1cc75d4412010c331876e4ae5080a4dDavid Lawrence multi multi.awk stdethers stdhosts \
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff ypxfr_1perday ypxfr_1perhour ypxfr_2perday \
01933e930208da3291de3722cb0d0787636b1e4fMichael Graff ypstart ypstop
ed019cabc1cc75d4412010c331876e4ae5080a4dDavid LawrenceNIS2LDAPPROG = ypxfrd ypserv ypxfr
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael GraffSVCMETHOD = yp
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael GraffPROG= $(BINPROG) $(SBINPROG) $(NETYPPROG) $(NIS2LDAPPROG) $(SVCMETHOD)
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffMANIFEST = server.xml client.xml xfr.xml
8cd870e3f5e3db9808a4a0d6f98db3d1a5348e40Michael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graffinclude ../Makefile.cmd
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffROOTMANIFESTDIR = $(ROOTSVCNETWORKNIS)
58ff88cca7c169f7fbebc9b6e93bbba1fb345157Michael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff# installed directories
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffNETSVC = $(ROOTLIB)/netsvc
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffNETYP = $(NETSVC)/yp
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffROOTVAR_YP = $(ROOT)/var/yp
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffROOTBINDING = $(ROOTVAR_YP)/binding
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffROOTDIRS = $(ROOT) $(ROOTUSR) $(ROOTLIB) $(ROOTETC) $(ROOTVAR) \
8cd870e3f5e3db9808a4a0d6f98db3d1a5348e40Michael Graff $(NETSVC) $(NETYP) $(ROOTVAR_YP) $(ROOTBINDING) \
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff $(ROOTUSRSBIN) $(ROOTBIN)
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff
01933e930208da3291de3722cb0d0787636b1e4fMichael Graff$(BINPROG) := LDLIBS += -lnsl
ed019cabc1cc75d4412010c331876e4ae5080a4dDavid Lawrence$(NETYPPROG) := LDLIBS += -lnsl
7a166c5c61a5aaa6eeb929bed152dc0a6b128e3dMichael Graff$(NIS2LDAPPROG) := LDLIBS += -lc -lnsl -lnisdb
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graffypinit := LDLIBS += -lnsl
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graffyppoll := LDLIBS += -lnsl
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graffypset := LDLIBS += -lnsl
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff$(ROOTVAR_YP)/aliases := GROUP=bin
17614edd7ea480ae71050e84c9839457e99bfb17Michael Graff$(ROOTVAR_YP)/aliases := FILEMODE=555
8cd870e3f5e3db9808a4a0d6f98db3d1a5348e40Michael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffYPFILES = Makefile aliases nicknames updaters
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffETCFILES = publickey
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffROOTYPFILES= $(YPFILES:%=$(ROOTVAR_YP)/%)
8cd870e3f5e3db9808a4a0d6f98db3d1a5348e40Michael GraffROOTETCFILE= $(ETCFILES:%=$(ROOTETC)/%)
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff
58ff88cca7c169f7fbebc9b6e93bbba1fb345157Michael GraffTXTS= $(ETCFILES:%=net_files/%) $(YPFILES:%=net_files/%)
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffSUBDIRS = yppasswd mknetid revnetgroup ypupdated yp2lscripts
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael GraffYPBINDOBJ= yp_b_svc.o yp_b_subr.o rpc_bootstrap.o getlist.o
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff#
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff# Some sort of obsolete idea of common files which are only now used by a
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff# few minor utilities
e4f074a2c2340ea80099beebecc3b89aa234fa8fMichael Graff#
8cd870e3f5e3db9808a4a0d6f98db3d1a5348e40Michael GraffCOMMONOBJ= getlist.o yp_getalias.o
64bed6c54393c2d213db83e9b171fb7c318cfc8eMichael Graff
#
# Objects shared between all the major components
#
SHARED_DIR= ./shared
SHAREDOBJ= $(SHARED_DIR)/utils.o $(SHARED_DIR)/lockmap.o $(SHARED_DIR)/ancil.o
SHARESRC = $(SHAREOBJ:.o=.c)
YPXFROBJ = ypxfr.o ypxfrd_client.o ypxfrd_xdr.o
YPMATOBJ = ypmatch.o nick.o
YPWHIOBJ = ypwhich.o nick.o
YPCATOBJ = ypcat.o nick.o
UDPUBLICKEYOBJ = udpublickey.o
MKALIASOBJ = mkalias.o
STDETHERSOBJ = stdethers.o
STDHOSTSOBJ = stdhosts.o
#COMMONCLNTOBJ = clnt_create_rsvd.o
YPSERVOBJ = ypserv.o ypserv_map.o \
ypserv_proc.o ypserv_ancil.o \
ypserv_resolv.o ypserv_resolv_common.o \
ypv1_xdr.o ypserv_net_secure.o
YPPUSHOBJ = yppush.o
YPXFRDOBJ = ypxfrd_svc.o ypxfrd_xdr.o ypxfrd_server.o \
ypserv_net_secure.o
NETYPOBJ = $(YPXFROBJ) $(YPXFRDOBJ) $(YPSERVOBJ) $(YPPUSHOBJ) \
$(YPBINDOBJ) $(UDPUBLICKEYOBJ)
OBJS = $(NETYPOBJ) $(MKALIASOBJ) $(COMMONOBJ) $(SHAREDOBJ) \
$(YPPUSHOBJ) $(YPMATOBJ) $(YPWHIOBJ) $(YPCATOBJ) \
$(STDETHERSOBJ) $(STDHOSTSOBJ) makedbm.o ypalias.o pong.o
BINSRC = $(BINPROG:=.c)
SBINSRC = $(SBINPROG:=.c)
NETYPSRC = $(NETYPOBJ:.o=.c)
YPBINDSRC = $(YPBINSOBJ:.o=.c)
YPXFRSRC = $(YPXFROBJ:.o=.c)
YPSERVSRC = $(YPSERVOBJ:.o=.c)
YPPUSHSRC = $(YPPUSHOBJ:.o=.c)
YPXFRDSRC = $(YPXFRDOBJ:.o=.c)
YPMASTERSRC = $(YPMASTEROBJ:.o=.c)
YPALLSRC = $(YPALLOBJ:.o=.c)
COMMONSRC = $(COMMONOBJ:.o=.c)
#COMMONCLNTSRC = $(COMMONCLNTOBJ:.o=.c)
SRCS = $(BINSRC) $(SBINSRC) $(NETYPSRC) \
$(COMMONSRC) $(SHAREDSRC)
CLEANFILES = ypxfrd.h ypxfrd_xdr.c
IBINPROG= $(BINPROG:%=$(ROOTBIN)/%)
ISBINPROG= $(SBINPROG:%=$(ROOTUSRSBIN)/%)
INETYPPROG= $(NETYPPROG:%=$(NETYP)/%)
INIS2LDAPPROG = $(NIS2LDAPPROG:%=$(NETYP)/%)
NIS2LDAPINC = -I$(SRC)/lib/libnisdb/yptol
#conditional assignments
ypalias.o := CPPFLAGS= -DMAIN $(CPPFLAGS.master)
makedbm.o := CPPFLAGS= $(CPPFLAGS.master)
yp_b_svc.o := CPPFLAGS += -DINIT_DEFAULT
ypxfrd_svc.o := CPPFLAGS += -Dmain=_main
ypxfr.o := CPPFLAGS += $(NIS2LDAPINC)
yppush.o := CPPFLAGS += $(NIS2LDAPINC)
$(NIS2LDAPPROG) := CPPFLAGS += $(NIS2LDAPINC)
$(SHAREDOBJ) := CPPFLAGS += -I$(SRC)/lib/libnisdb/yptol
$(IBINPROG) := GROUP= other
$(ROOTVAR_YP)/Makefile := FILEMODE= 555
$(ROOTVAR_YP)/nicknames := FILEMODE= 644
$(ROOTVAR_YP)/updaters := FILEMODE= 500
$(ROOTETC)/publickey := FILEMODE= 644
# non-default file attributes to avoid conflict with rpcsrc
$(NETSVC) := GROUP= sys
NETYP = $(NETSVC)/yp
$(NETYP) := GROUP=bin
all:= TARGET= all
install:= TARGET= install
clean:= TARGET= clean
clobber:= TARGET= clobber
lint:= TARGET= lint
cstyle := TARGET= cstyle
all: $(SHAREDOBJ) $(SUBDIRS) $(PROG) $(TXTS)
# install rules
$(ROOTVAR_YP)/% \
$(ROOTETC)/%: net_files/%
$(INS.file)
$(ROOTVAR_YP)/% : net_files/%
$(INS.file)
$(NETYP)/%: %
$(INS.file)
.KEEP_STATE:
$(SHAREDOBJ): $(SHAREDSRC)
$(COMPILE.c) $(SHAREDSRC) -o $@ $<
ypbind: $(YPBINDOBJ)
$(LINK.c) $(YPBINDOBJ) -o $@ $(LDLIBS)
$(POST_PROCESS)
makedbm ypalias: $$@.o $(COMMONOBJ)
$(LINK.c) -o $@ $@.o $(COMMONOBJ) $(LDLIBS)
$(POST_PROCESS)
ypmatch: $(YPMATOBJ)
$(LINK.c) -o $@ $(YPMATOBJ) $(LDLIBS)
$(POST_PROCESS)
ypwhich: $(YPWHIOBJ)
$(LINK.c) -o $@ $(YPWHIOBJ) $(LDLIBS)
$(POST_PROCESS)
ypcat: $(YPCATOBJ)
$(LINK.c) -o $@ $(YPCATOBJ) $(LDLIBS)
$(POST_PROCESS)
ypxfrd_xdr.c: ypxfrd.x
$(RM) ypxfrd_xdr.c; $(RPCGEN) -C -c ypxfrd.x -o ypxfrd_xdr.c
ypxfrd.h: ypxfrd.x
$(RM) ypxfrd.h; $(RPCGEN) -C -h ypxfrd.x -o ypxfrd.h
ypxfrd_xdr.o ypxfrd_client.o: ypxfrd.h
#clnt_create_rsvd.o ypxfr.o: clnt_create_rsvd.h
ypxfrd: $(YPXFRDOBJ) $(SHAREDOBJ)
$(LINK.cc) $(YPXFRDOBJ) $(SHAREDOBJ) \
-o $@ $(LDLIBS) -lc
$(POST_PROCESS)
ypxfr: $(YPXFROBJ) $(COMMONOBJ) $(YPMASTEROBJ) $(SHAREDOBJ)
$(LINK.cc) -o $@ $(YPXFROBJ) $(YPMASTEROBJ) $(COMMONOBJ) \
$(SHAREDOBJ) $(LDLIBS)
$(POST_PROCESS)
ypserv: $(YPSERVOBJ) $(COMMONOBJ) $(SHAREDOBJ)
$(LINK.cc) $(YPSERVOBJ) $(COMMONOBJ) \
$(SHAREDOBJ) -o $@ $(LDLIBS)
$(POST_PROCESS)
yppush: $(YPPUSHOBJ) $(COMMONOBJ)
$(LINK.c) $(YPPUSHOBJ) $(COMMONOBJ) -o $@ $(LDLIBS)
$(POST_PROCESS)
udpublickey: $(UDPUBLICKEYOBJ)
$(LINK.c) $(UDPUBLICKEYOBJ) -o $@
$(POST_PROCESS)
mkalias: $(MKALIASOBJ)
$(LINK.c) $(MKALIASOBJ) -o $@ -lnsl
$(POST_PROCESS)
stdethers: $(STDETHERSOBJ)
$(LINK.c) $(STDETHERSOBJ) -o $@ -lsocket
$(POST_PROCESS)
stdhosts: $(STDHOSTSOBJ)
$(LINK.c) $(STDHOSTSOBJ) -o $@ $(LDLIBS)
$(POST_PROCESS)
install: all $(PROG) $(ROOTDIRS) $(ROOTETCFILE) $(ROOTYPFILES) $(IBINPROG) \
$(ISBINPROG) $(INETYPPROG) $(INIS2LDAPPROG) $(SUBDIRS) $(ROOTMANIFEST) \
$(ROOTSVCMETHOD)
$(ROOTDIRS):
$(INS.dir)
$(SUBDIRS): FRC
@cd $@; pwd; $(MAKE) $(TARGET)
lint := CPPFLAGS += -I$(SRC)/lib/libnisdb/yptol
lint: $(SUBDIRS)
$(LINT.c) ypmatch.c nick.c -lnsl
$(LINT.c) ypwhich.c nick.c -lnsl
$(LINT.c) ypcat.c nick.c -lnsl
$(LINT.c) makedbm.c getlist.c yp_getalias.c
$(LINT.c) ypalias.c getlist.c yp_getalias.c
$(LINT.c) yp_b_svc.c yp_b_subr.c rpc_bootstrap.c getlist.c -lnsl
$(LINT.c) ypxfr.c ypxfrd_client.c ypxfrd_xdr.c getlist.c yp_getalias.c \
./shared/utils.c ./shared/lockmap.c ./shared/ancil.c -lnsl
$(LINT.c) yppush.c getlist.c yp_getalias.c -lnsl
$(LINT.c) udpublickey.c
$(LINT.c) mkalias.c -lnsl
$(LINT.c) stdethers.c -lsocket
$(LINT.c) stdhosts.c -lnsl
$(LINT.c) ypxfrd_svc.c ypxfrd_xdr.c ypxfrd_server.c \
ypserv_net_secure.c \
./shared/utils.c ./shared/lockmap.c ./shared/ancil.c \
-lnsl -lnisdb
$(LINT.c) ypserv.c ypserv_map.c ypserv_proc.c ypserv_ancil.c \
ypserv_resolv.c ypserv_resolv_common.c ypv1_xdr.c \
ypserv_net_secure.c getlist.c yp_getalias.c \
./shared/utils.c ./shared/lockmap.c ./shared/ancil.c \
-lnsl -lnisdb
check: $(CHKMANIFEST)
cstyle: $(SUBDIRS)
${CSTYLE} `echo $(SRCS) | sed 's/ypinit.c//'`
clean: $(SUBDIRS)
$(RM) $(OBJS) $(CLEANFILES)
clobber: clean $(SUBDIRS)
FRC:
include ../Makefile.targ