File: Makefile.kernel

package info (click to toggle)
open-vm-tools 1%3A8.4.2-261024-1
  • links: PTS, VCS
  • area: contrib
  • in suites: squeeze
  • size: 20,368 kB
  • ctags: 30,043
  • sloc: ansic: 164,785; sh: 10,713; cpp: 6,525; makefile: 3,386
file content (76 lines) | stat: -rw-r--r-- 2,777 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/make -f
##########################################################
# Copyright (C) 2007 VMware, Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation version 2 and no later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
#
##########################################################

vm_product_defines = $(if $(findstring tools,$(1)), -DVMX86_TOOLS,)
CC_OPTS += $(call vm_product_defines, $(PRODUCT))

INCLUDE += -I.
INCLUDE += -I$(SRCROOT)/include
INCLUDE += -I$(SRCROOT)/linux
INCLUDE += -I$(SRCROOT)/common

EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/epoll.c,   -DVMW_HAVE_EPOLL, )
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/setnice.c, -DVMW_HAVE_SET_USER_NICE, )

# This test is inverted.
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/sk_filter.c,, -DVMW_HAVE_NEW_SKFILTER )


MODPOST_VMCI_SYMVERS := $(wildcard $(MODULEBUILDDIR)/VMwareVMCIModule.symvers)

obj-m += $(DRIVER).o

$(DRIVER)-y := $(subst $(SRCROOT)/, , $(patsubst %.c, %.o, $(wildcard $(SRCROOT)/linux/*.c)))

#
# In open-vm-tools, need to compile the common sources from the shared directory.
#
DRIVERLOG   := driverLog.o
$(DRIVER)-y += $(DRIVERLOG)

VSOCK_PATH  := $(shell cd $(SRCROOT) && pwd)
ifdef OVT_SOURCE_DIR
DRIVERLOG_PATH := $(OVT_SOURCE_DIR)/modules/linux/shared
else
DRIVERLOG_PATH := $(VSOCK_PATH)/shared
endif

$(addprefix $(VSOCK_PATH)/,$(DRIVERLOG)): $(VSOCK_PATH)/%.o: $(DRIVERLOG_PATH)/%.c
	$(Q)$(rule_cc_o_c)

clean:
	rm -rf $(wildcard $(DRIVER).mod.c $(DRIVER).ko .tmp_versions \
	       Module.symvers Module.markers modules.order \
	       $(foreach dir,./ linux/ \
	       ,$(addprefix $(dir),.*.cmd .*.o.flags *.o)))

#
# The VSock kernel module uses symbols from the VMCI kernel module. Copy the
# Module.symvers file here so that the Vsock module knows about the VMCI version. This is not done for tar builds because the tools install takes care of it.
#
prebuild::
ifneq ($(MODULEBUILDDIR),)
ifeq ($(MODPOST_VMCI_SYMVERS),)
	$(shell echo >&2 "Building VMCI Sockets without VMCI module symbols.")
else
	$(shell echo >&2 "Building VMCI Sockets with VMCI module symbols.")
	cp -f $(MODPOST_VMCI_SYMVERS) $(SRCROOT)/Module.symvers
endif
endif