# $Id: Makefile 752 2012-06-25 05:25:09Z elkner $
KMODULE = k10sensor
PROG = $(KMODULE)_info
PROG2 = pciinspect
LIBRARY = $(KMODULE)_link.a
# DYNLIB is not yet defined
DEVFSADM_LINKMODFILES = $(LIBRARY:%.a=%.so)
default: all
SHARED_SRC = common.c
KSRCS = k10sensor.c k10s_kstats.c $(SHARED_SRC)
SRCS = k10sensor_info.c $(SHARED_SRC)
SRC2 = pciinspect.c
LIB_SRCS = $(KMODULE)_link.c
include ../config.mk
include ../Makefile.master
MAPFILE = ./mapfile-vers
LINKMOD_FILE = $(ROOTLIB_DEVFSADM_LINKMOD:$(ROOT)/%=%)/$(DYNLIB)
CPPFLAGS += -DKMODNAME=\"$(KMODULE)\"
#CFLAGS64 += -xarch=sse2a
$(PROG) := LDLIBS += -lpciaccess -ldevinfo
$(PROG) := CPPFLAGS += -DLINKMOD_FILE=\"$(LINKMOD_FILE)\"
$(PROG2) := LDLIBS += -lpciaccess
$(LIBS) := LDFLAGS += -M$(MAPFILE)$(MAPFILE_VERS:sh) -ldevinfo -lc
# devfsadm is a 32bit app - so force 32bit
$(PICS) := CFLAGS64 = $(CFLAGS)
# avoid libpci stuff for kernel stuff (if libpci stuff is in a none-std dir)
$(KMODULE) %.ko := LIBPCI_LIB =
$(KMODULE) %.ko := LIBPCI_INC =
CLEANFILES += $(PROG2) $(DEVFSADM_LINKMODFILES) $(MAPFILE).1
CLOBBERDIRS += pics
all: prog kernel
# for the lazy people ;-)
kernel: $(KMODULE) $(DEVFSADM_LINKMODFILES)
prog: $(PROG)
prog2: $(PROG2)
lib: $(DYNLIB)
$(DYNLIB): $(MAPFILE)$(MAPFILE_VERS:sh)
$(MAPFILE).1: $(MAPFILE)
$(SED) -e '/$$mapfile_version/ d' -e 's,SYMBOL_SCOPE.*{,{,' \
-e '/FLAGS/ s,{.*FLAGS.*\(=.*\)},\1,' $(MAPFILE) > $(MAPFILE).1
# need Admin privileges to be able to install kernel modules
kinstall kuninstall := INS = $(PFEXEC) /usr/sbin/install
kinstall kuninstall := RM = $(PFEXEC) /usr/bin/rm -f
kinstall kuninstall := CP = $(PFEXEC) /usr/bin/cp -f
kinstall kuninstall := SYMLINK = $(PFEXEC) /usr/bin/ln -s
ADD_DRV = $(PFEXEC) add_drv
UPDATE_DRV = $(PFEXEC) update_drv
RM_DRV = $(PFEXEC) rem_drv
.LOCAL: kinstall kadd kupdate kremove kuninstall pkg pkg.clean
$(ROOTUSRKDRV)/$(KMODULE).conf: $(KMODULE).conf
$(CP) $(KMODULE).conf $@
# UNcomment for TESTing
#/tmp/$(KMODULE): $(KMODULE)
# $(CP) $(KMODULE) $@
#
#$(ROOTUSRKDRVMACH)/$(KMODULE): /tmp/$(KMODULE)
# $(RM) $@
# $(SYMLINK) /tmp/$(KMODULE) $@
# Comment OUT the following 2 lines for TESTing
$(ROOTUSRKDRVMACH)/%: $(ROOTUSRKDRVMACH) %
$(INS.file)
DEVS = "pci1022,1203" "pci1022,1303" "pci1022,1603" "pci1022,1703"
DEVS_ALL = "pci1022,1103" $(DEVS)
CHECK_DEV = $(XPG4GREP) -q '"pci1022,1103"' $(ROOTETC)/driver_aliases ; \
if [ $$? -eq 0 ]; then \
print -u2 '\nWARNING: Skipping "pci1022,1103" - already configured!' ; \
print -u2 'Remove the driver (rem_drv amd64_gart) if not needed and do' ;\
print -u2 'a update_drv -a -i \'"pci1022,1103"\' k10sensor .\n' ; \
else $(ECHO) '_ALL' ; fi
kinstall: $(ROOTUSRKDRV)/$(KMODULE).conf $(ROOTUSRKDRVMACH)/$(KMODULE) \
$(ROOTLIB_DEVFSADM_LINKMOD)/$(DYNLIB)
kadd: kinstall
$(ADD_DRV) -m '* 0666 root sys' -i '$(DEVS$(CHECK_DEV:sh))' $(KMODULE)
kupdate:
$(UPDATE_DRV) $(KMODULE)
kremove:
-$(RM_DRV) $(KMODULE)
kuninstall: kremove
$(RM) $(ROOTUSRKDRVMACH)/$(KMODULE) $(ROOTUSRKDRV)/$(KMODULE).conf \
$(ROOTLIB_DEVFSADM_LINKMOD)/$(DYNLIB)
################
# PACKAGE stuff
################
pkg: kernel ../pkg/info ../pkg/proto
[[ -d pkg ]] || mkdir pkg
pkgmk -f ../pkg/proto -d . -o -r .,../pkg -d $${PKGDIR:-pkg}
pkgtrans -o -s $${PKGDIR:-pkg} $${PKGDIR:-$$(pwd)/pkg}/LNFk10sensor.pkg \
LNFk10sensor
gzip -c9 $${PKGDIR:-pkg}/LNFk10sensor.pkg \
>$${PKGDIR:-pkg}/LNFk10sensor.pkg.gz
pkg.clean:
$(RM) -r $${PKGDIR:-pkg}/LNFk10sensor*
clean: pkg.clean
CLOBBERDIRS += pkg
.PARALLEL:
.KEEP_STATE: