VirtualBox

Changeset 77389 in vbox


Ignore:
Timestamp:
Feb 20, 2019 3:34:01 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
128940
Message:

linux module makefile tinkering & cleaning up.

Location:
trunk/src/VBox
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/Makefile

    r76553 r77389  
    2525
    2626KBUILD_VERBOSE =
     27 ifeq ($(KBUILD_VERBOSE),)
     28VBOX_QUIET    := @
     29VBOX_QUIET_SH := @
     30 else
     31VBOX_QUIET    :=
     32VBOX_QUIET_SH := set -x;
     33 endif
    2734
    2835vboxguest:
    2936        @echo "=== Building 'vboxguest' module ==="
    30         @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
    31         @if [ -f vboxguest/vboxguest.ko ]; then \
     37        $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
     38        $(VBOX_QUIET_SH)if [ -f vboxguest/vboxguest.ko ]; then \
    3239            cp vboxguest/vboxguest.ko .; \
    3340         else \
     
    3744
    3845vboxsf: vboxguest
    39         @if [ -d vboxsf ]; then \
     46        $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
    4047            if [ -f vboxguest/Module.symvers ]; then \
    4148                cp vboxguest/Module.symvers vboxsf; \
     
    5259
    5360vboxvideo:
    54         @if [ -d vboxvideo ]; then \
     61        $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
    5562            if [ -f vboxguest/Module.symvers ]; then \
    5663                cp vboxguest/Module.symvers vboxvideo; \
     
    6976
    7077install:
    71         @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
    72         @if [ -d vboxsf ]; then \
     78        $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
     79        $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
    7380            $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
    7481        fi
    75         @if [ -d vboxvideo ]; then \
     82        $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
    7683            $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
    7784        fi
    7885
    7986clean:
    80         @$(MAKE) -C vboxguest clean
    81         @if [ -d vboxsf ]; then \
     87        $(VBOX_QUIET)$(MAKE) -C vboxguest clean
     88        $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
    8289            $(MAKE) -C vboxsf clean; \
    8390        fi
    84         @if [ -d vboxvideo ]; then \
     91        $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
    8592            $(MAKE) -C vboxvideo clean; \
    8693        fi
     
    8895
    8996check:
    90         @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check
     97        $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check
    9198
    9299load:
    93         @/sbin/rmmod vboxvideo || true
    94         @/sbin/rmmod vboxvfs || true
    95         @/sbin/rmmod vboxsf || true
    96         @/sbin/rmmod vboxguest || true
    97         @/sbin/insmod vboxguest.ko
    98         @if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
    99         @if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi
     100        $(VBOX_QUIET)/sbin/rmmod vboxvideo || true
     101        $(VBOX_QUIET)/sbin/rmmod vboxvfs || true
     102        $(VBOX_QUIET)/sbin/rmmod vboxsf || true
     103        $(VBOX_QUIET)/sbin/rmmod vboxguest || true
     104        $(VBOX_QUIET)/sbin/insmod vboxguest.ko
     105        $(VBOX_QUIET)if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
     106        $(VBOX_QUIET)if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi
    100107
    101108.PHONY: vboxguest vboxsf vboxvideo all install clean check load
  • trunk/src/VBox/Additions/linux/sharedfolders/Makefile.module

    r77303 r77389  
    1818#
    1919
     20# Find the directory of this makefile.
     21VBOXSF_DIR := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
     22
    2023# Linux kbuild sets this to our source directory if we are called from there
    2124obj ?= $(CURDIR)
     
    2326
    2427MOD_NAME = vboxsf
    25 MOD_OBJS   = \
     28MOD_OBJS = \
    2629        vfsmod.o \
    2730        dirops.o \
     
    3740        VBoxGuestR0LibSharedFolders.o
    3841ifeq ($(BUILD_TARGET_ARCH),x86)
    39 MOD_OBJS  += \
     42MOD_OBJS += \
    4043        divdi3.o \
    4144        moddi3.o \
     
    4649endif
    4750
    48 MOD_INCL = \
    49     $(addprefix -I$(KBUILD_EXTMOD),/ /include /r0drv/linux) \
    50     $(addprefix -I$(KBUILD_EXTMOD)/vboxsf,/ /include /r0drv/linux)
     51MOD_INCL = -I$(VBOXSF_DIR) -I$(VBOXSF_DIR)include -I$(VBOXSF_DIR)r0drv/linux -I`pwd` -I`pwd`
    5152
    52 ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxsf),)
    53  MANGLING := $(KBUILD_EXTMOD)/vboxsf/include/VBox/VBoxGuestMangling.h
    54 else
    55  MANGLING := $(KBUILD_EXTMOD)/include/VBox/VBoxGuestMangling.h
    56 endif
    57 
    58 MOD_DEFS   = -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 \
    59             -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST -DIN_GUEST_R0
     53MOD_DEFS   = -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST -DIN_GUEST_R0
    6054# our module does not export any symbol
    6155MOD_DEFS  += -DRT_NO_EXPORT_SYMBOL
     
    6963 MOD_CFLAGS =
    7064else
    71  MOD_CFLAGS = -Wno-declaration-after-statement -fshort-wchar -include $(MANGLING) -fno-pie
     65 MOD_CFLAGS = -Wno-declaration-after-statement -fshort-wchar -include $(VBOXSF_DIR)/include/VBox/VBoxGuestMangling.h -fno-pie
    7266
    7367# special hack for Fedora Core 6 2.6.18 (fc6), rhel5 2.6.18 (el5),
     
    9690
    9791include $(obj)/Makefile.include.footer
     92
  • trunk/src/VBox/Installer/linux/Makefile.include.footer

    r76712 r77389  
    1818#
    1919
     20#
     21# Note! The MOD_XXX variables are ours and does not directly influence the
     22#       kernel build system.  When adding more variables, please prefix them
     23#       with VBOX_ so we can tell more easily who's variable it is.
     24#
     25
    2026# override is required by the Debian guys
    2127override MODULE = $(MOD_NAME)
     
    2834# Compiler options
    2935#
    30 ifndef INCL
    31  INCL    := $(addprefix -I,$(KERN_INCL) $(EXTRA_INCL))
    32  ifndef KBUILD_EXTMOD
    33   KBUILD_EXTMOD := $(shell pwd)
    34  endif
    35  INCL    += $(MOD_INCL)
    36  export INCL
    37 endif
     36VBOX_INCL := $(addprefix -I,$(KERN_INCL) $(EXTRA_INCL)) $(MOD_INCL)
     37
    3838KFLAGS   := -D__KERNEL__ -DMODULE -DRT_WITHOUT_PRAGMA_ONCE $(MOD_DEFS)
    3939ifeq ($(BUILD_TYPE),debug)
     
    4646endif
    4747
    48 ifeq ($(KERN_VERSION), 24)
     48ifeq ($(KERN_VERSION),24)
    4949#
    5050# 2.4
     
    5757
    5858ifeq ($(BUILD_TARGET_ARCH),amd64)
    59  KFLAGS  += -mcmodel=kernel
     59 KFLAGS += -mcmodel=kernel
    6060endif
    6161
    62 CFLAGS := -O2 -DVBOX_LINUX_2_4 $(MOD_CFLAGS) $(INCL) $(KFLAGS) $(MOD_EXTRA) $(KDEBUG)
     62CFLAGS := -O2 -DVBOX_LINUX_2_4 $(MOD_CFLAGS) $(VBOX_INCL) $(KFLAGS) $(MOD_EXTRA) $(KDEBUG)
    6363MODULE_EXT := o
    6464
    6565# 2.4 Module linking
    66 $(MODULE).o: $(OBJS)
     66$(MODULE).$(MODULE_EXT): $(OBJS)
    6767        $(LD) -o $@ -r $(OBJS)
    6868
    6969.PHONY: $(MODULE)
    7070all: $(MODULE)
    71 $(MODULE): $(MODULE).o
     71$(MODULE): $(MODULE).$(MODULE_EXT)
    7272
    7373install: $(MODULE)
     
    8383#
    8484# 2.6 and later
     85## @todo XXX does not work for 2.6.5 and earlier (see KBUILD_EXTMOD in header).
    8586#
    8687
     
    9091
    9192# build defs
    92 EXTRA_CFLAGS += $(MOD_CFLAGS) $(INCL) $(KFLAGS) $(MOD_EXTRA) $(KDEBUG)
     93EXTRA_CFLAGS += $(MOD_CFLAGS) $(VBOX_INCL) $(KFLAGS) $(MOD_EXTRA) $(KDEBUG)
    9394
    9495.PHONY: $(MODULE)
  • trunk/src/VBox/Installer/linux/Makefile.include.header

    r77059 r77389  
    152152MODULE_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KERN_VER)/$(INSTALL_MOD_DIR)
    153153
     154#
     155# The KBUILD_EXTMOD variable is used by 2.6.6 and later when build external
     156# modules (see https://lwn.net/Articles/79984/).  It will be set to SUBDIRS
     157# or M by the linux kernel makefile.  We fake it here for older kernels.
     158#
     159## @todo Drop this KBUILD_EXTMOD glue once it has been removed from all our makefiles (see sharedfolders).
     160ifndef KBUILD_EXTMOD
     161 ifndef CURDIR # for make < v3.79
     162  CURDIR := $(shell pwd)
     163 endif
     164 KBUILD_EXTMOD := $(CURDIR)
     165endif
     166
    154167# debug - show guesses.
    155168ifdef DEBUG
     
    161174$(warning dbg: KERN_VERSION     = $(KERN_VERSION))
    162175$(warning dbg: MODULE_DIR       = $(MODULE_DIR))
     176$(warning dbg: KBUILD_EXTMOD    = $(KBUILD_EXTMOD))
     177$(warning dbg: VBOX_ROOT_DIR    = $(VBOX_ROOT_DIR))
    163178 endif
    164179endif
     180
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette