OpenSolaris_b135/cmd/modload/Makefile.com

#
# 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 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# cmd/modload/Makefile.com
#
# makefile for loadable module utilities

DRVPROG = add_drv rem_drv update_drv
MODPROG = modinfo modunload modload
PROG = $(MODPROG) $(DRVPROG)

include ../../Makefile.cmd

MODCOMMONOBJ = modsubr.o
MODCOMMONSRC = $(MODCOMMONOBJ:%.o=../%.c)

PLCYOBJ = plcysubr.o
PLCYSRC = $(PLCYOBJ:%.o=../%.c)

$(PLCYOBJ) := CPPFLAGS += -D_REENTRANT

ROOTDRVPROG = $(DRVPROG:%=$(ROOTUSRSBIN)/%)

DRVCOMMONOBJ = drvsubr.o $(PLCYOBJ)
DRVCOMMONSRC = $(DRVCOMMONOBJ:%.o=../%.c)

OBJECTS = $(MODCOMMONOBJ) $(DRVCOMMONOBJ) $(PROG:%=%.o)
SRCS = $(OBJECTS:%.o=../%.c)

COMMONSRC = $(DRVCOMMONSRC) $(MODCOMMONSRC)

CLOBBERFILES = $(PROG)

# lint is complicated here by the fact that we
# build multiple commands and with differing
# common source, drvsubr vs modsubr/plcysubr
#
LINT_PROG= $(PROG:%=lint_%.c)
LINTFLAGS += -erroff=E_NAME_DEF_NOT_USED2

# install specifics

$(ROOTDRVPROG) := FILEMODE = 0555

add_drv			:= LDLIBS += -ldevinfo -lelf
rem_drv			:= LDLIBS += -ldevinfo
update_drv		:= LDLIBS += -ldevinfo

lint_add_drv.c		:= LDLIBS += -ldevinfo -lelf
lint_rem_drv.c		:= LDLIBS += -ldevinfo
lint_update_drv.c	:= LDLIBS += -ldevinfo

.KEEP_STATE:

%.o:	../%.c
	$(COMPILE.c) $<

all: $(PROG)

add_drv:	add_drv.o $(DRVCOMMONOBJ)
	$(LINK.c)  -o $@ add_drv.o $(DRVCOMMONOBJ) $(LDLIBS)
	$(POST_PROCESS)

rem_drv:	rem_drv.o $(DRVCOMMONOBJ)
	$(LINK.c)  -o $@ rem_drv.o $(DRVCOMMONOBJ) $(LDLIBS)
	$(POST_PROCESS)

update_drv:	update_drv.o $(DRVCOMMONOBJ)
	$(LINK.c)  -o $@ update_drv.o $(DRVCOMMONOBJ) $(LDLIBS)
	$(POST_PROCESS)

modload:	modload.o $(MODCOMMONOBJ)
	 $(LINK.c)  -o $@ modload.o $(MODCOMMONOBJ) $(LDLIBS)
	$(POST_PROCESS)

modunload:	modunload.o $(MODCOMMONOBJ)
	 $(LINK.c)  -o $@ modunload.o $(MODCOMMONOBJ) $(LDLIBS)
	$(POST_PROCESS)

modinfo:	modinfo.o $(MODCOMMONOBJ)
	 $(LINK.c)  -o $@ modinfo.o $(MODCOMMONOBJ) $(LDLIBS)
	$(POST_PROCESS)

clean:
	$(RM) $(OBJECTS) core

lint_%.c:
	$(LINT.c) $(@:lint_%.c=../%.c) $(COMMONSRC) $(LDLIBS)

lint:	$(LINT_PROG)

include ../../Makefile.targ