2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# Permission is hereby granted, free of charge, to any person obtaining a
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# copy of this software and associated documentation files (the "Software"),
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# to deal in the Software without restriction, including without limitation
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# the rights to use, copy, modify, merge, publish, distribute, sublicense,
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# and/or sell copies of the Software, and to permit persons to whom the
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# Software is furnished to do so, subject to the following conditions:
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# The above copyright notice and this permission notice (including the next
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# paragraph) shall be included in all copies or substantial portions of the
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# Software.
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
ecc6aeb3d58e1a1089fec93c4acf1b99b10e7b2fJabiertxof# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# DEALINGS IN THE SOFTWARE.
ecc6aeb3d58e1a1089fec93c4acf1b99b10e7b2fJabiertxof#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith###############################################################################
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# This Makefile builds mdb modules.
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith# It is designed to build both kernel kmdb and mdb .so files
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith#
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith###############################################################################
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith
be0acd278c68b7331b0b83f8355aabeb44d98ca1JabiertxofTOP:sh=hg root
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithKERNEL = $(TOP)/open-src/kernel
a4142717644b885998f4de2b27be4e8648315decMarkus EngelBUILD_TYPE = 64
a4142717644b885998f4de2b27be4e8648315decMarkus Engelinclude $(TOP)/open-src/common/Makefile.init
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof# Need common defaults
9836787d16b657453784c30809d330f50d9bc6d8Liam P. Whiteinclude $(TOP)/open-src/common/Makefile.defs
9836787d16b657453784c30809d330f50d9bc6d8Liam P. Whiteinclude $(KERNEL)/Makefile.rules
9836787d16b657453784c30809d330f50d9bc6d8Liam P. White
a4142717644b885998f4de2b27be4e8648315decMarkus EngelKMOD = i915
a4142717644b885998f4de2b27be4e8648315decMarkus EngelMDBMOD = i915.so
be0acd278c68b7331b0b83f8355aabeb44d98ca1JabiertxofMODULES = $(KMOD) $(MDBMOD)
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof
4b8d4136cf15a6811025301fa66d549200e1b99ajabiertxofCFLAGS += -v -xdebugformat=stabs -xildoff
a4142717644b885998f4de2b27be4e8648315decMarkus EngelCFLAGS += -std=c11
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithCFLAGS += -D_ELF64 -DMDB_DEBUG -D_KERNEL -D_KMDB -g -m64
be0acd278c68b7331b0b83f8355aabeb44d98ca1JabiertxofCPPFLAGS += -I$(KERNEL)
be0acd278c68b7331b0b83f8355aabeb44d98ca1JabiertxofCPPFLAGS += -I$(KERNEL)/sys/drm
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithCPPFLAGS += -I$(KERNEL)/sys
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithCPPFLAGS += -I$(PROTODIR)/usr/include
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithCPPFLAGS += -I$(PROTODIR)/usr/include/drm
04815a0cf96245b9aeeb973e3ade866a4c124f44JazzyNicoCPPFLAGS += -I/usr/include
04815a0cf96245b9aeeb973e3ade866a4c124f44JazzyNicoKMOD_LDFLAGS = -ztype=kmod -znodefs -Nmisc/kmdbmod -Mmapfile
04815a0cf96245b9aeeb973e3ade866a4c124f44JazzyNico$(MDBMOD):= CFLAGS += -KPIC
3b055804cfd5043eab6e00c390cd921698d59d29Krzysztof Kosiński$(KMOD):= CFLAGS += -xmodel=kernel
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithSO_LDFLAGS = $(LDFLAGS) -Wl,-z,direct -Wl,-z,text -M mapfile
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithSO_LDFLAGS += -Wl,-z,parent=/usr/bin$(ARCHLIBSUBDIR)/mdb
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn SmithCPPFLAGS += -xO3 -m64 -Ui386 -U__i386 -errtags=yes -errwarn=%all \
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith -erroff=E_EMPTY_TRANSLATION_UNIT -erroff=E_STATEMENT_NOT_REACHED \
2f5f997e354e7f4a02b6818bdc68fbece5cb237dJohn Smith -W0,-xglobalstatic -g -W0,-noglobal \
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof -DTEXT_DOMAIN=\"SUNW_OST_OSCMD\" -D_ERRNO_VERIFY -DMDB_DEBUG \
26bcda9b99d8270014ae8a009dcca3747f747f48jabiertxof -D_KERNEL -D_ELF64
26bcda9b99d8270014ae8a009dcca3747f747f48jabiertxof
be0acd278c68b7331b0b83f8355aabeb44d98ca1JabiertxofSOURCES = i915.c
a2c41b9ce62797ad4033ee47f1ee255c70089ac1JabiertxofOBJECTS = $(SOURCES:%.c=%.o)
be0acd278c68b7331b0b83f8355aabeb44d98ca1JabiertxofLINTFILES = $(SOURCES:%.c=%.ln)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxofBC_OBJS = $(SOURCES:%.c=%.o.bc)
9e985615d9ac656fe4c968f52f499aee656c734ajabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxofall: $(MODULES)
9b096f72b7f340eac232f3b1f97907ebae2c354dJabiertxof
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof.KEEP_STATE:
9e985615d9ac656fe4c968f52f499aee656c734ajabiertxof
9e985615d9ac656fe4c968f52f499aee656c734ajabiertxof.NO_PARALLEL:
9e985615d9ac656fe4c968f52f499aee656c734ajabiertxof.PARALLEL: $(OBJECTS) $(LINTFILES)
9e985615d9ac656fe4c968f52f499aee656c734ajabiertxof
a2c41b9ce62797ad4033ee47f1ee255c70089ac1Jabiertxof$(OBJECTS): $(SOURCES)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof @print CFLAGS=$(CFLAGS)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
26bcda9b99d8270014ae8a009dcca3747f747f48jabiertxof $(CTFCONVERT) $(CTFCVTFLAGS) $@
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
26bcda9b99d8270014ae8a009dcca3747f747f48jabiertxof$(KMOD): $(OBJECTS)
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof $(LD) -o $@ $(OBJECTS) $(KMOD_LDFLAGS) $(LIBS)
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof $(CTFMERGE) $(CTFMERGE_LABEL) -o $@ $(OBJECTS)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof$(MDBMOD): $(OBJECTS)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof $(CC) $(CFLAGS) $(CPPFLAGS) -G -o $@ $(SOURCES) $(LDFLAGS) \
be0acd278c68b7331b0b83f8355aabeb44d98ca1Jabiertxof $(SO_LDFLAGS) $(LIBS)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxofinstall: $(MODULES)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof @print Installing $(KMOD) in $(PROTODIR)$(ROOT_KMOD_DIR)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof @print Installing $(MDBMOD) in $(PROTODIR)$(ROOT_MDB_DIR)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof @mkdir -p $(PROTODIR)$(ROOT_KMOD_DIR)
9b096f72b7f340eac232f3b1f97907ebae2c354dJabiertxof @mkdir -p $(PROTODIR)$(ROOT_MDB_DIR)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof @$(INSTALL_SCRIPT) -m 555 $(KMOD) $(PROTODIR)$(ROOT_KMOD_DIR)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof @$(INSTALL_SCRIPT) -m 555 $(MDBMOD) $(PROTODIR)$(ROOT_MDB_DIR)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxofclean:
9b096f72b7f340eac232f3b1f97907ebae2c354dJabiertxof rm -f $(OBJECTS) $(BC_OBJS) $(MODULES)
26bcda9b99d8270014ae8a009dcca3747f747f48jabiertxof
26bcda9b99d8270014ae8a009dcca3747f747f48jabiertxofclean.lint:
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof rm -f $(LINTFILES)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxofclobber: clean clean.lint
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof rm -f $(MODULES)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof%.ln:%.c
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof $(LINT) $(LINTFLAGS) $(CPPFLAGS) -o $@ $<
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxoflint: $(LINTFILES)
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof
f61c94c27c8fcea295c259f65d3142546072c2b0jabiertxof