mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-26 08:51:08 +00:00
162 lines
4.8 KiB
PHP
162 lines
4.8 KiB
PHP
|
LIB_DIR = $(REP_DIR)/src/lib/wifi
|
||
|
LIB_INC_DIR = $(LIB_DIR)/include
|
||
|
|
||
|
SHARED_LIB = yes
|
||
|
|
||
|
# FIXME should we *really* add dde_kit to this shared library?
|
||
|
LIBS += dde_kit libc-setjmp libc
|
||
|
|
||
|
LD_OPT += --version-script=$(LIB_DIR)/symbol.map
|
||
|
|
||
|
SRC_CC += dummies.cc init.cc lxcc_emul.cc pci_driver.cc timer.cc irq.cc \
|
||
|
work.cc nic.cc socket_call.cc scheduler.cc event.cc
|
||
|
|
||
|
SRC_C += lxc_emul.c socket.c
|
||
|
|
||
|
CC_WARN =
|
||
|
CC_OPT += -fno-builtin-toupper
|
||
|
|
||
|
CC_C_OPT += -include $(LIB_INC_DIR)/lx_emul.h
|
||
|
CC_C_OPT += -Wall -Wno-unused-variable -Wno-unused-function -Wno-uninitialized
|
||
|
CC_C_OPT += -Wno-unused-but-set-variable -Wno-pointer-sign -Wno-cast-qual
|
||
|
CC_CXX_OPT += -Wall -fpermissive
|
||
|
|
||
|
WIFI_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/lib/wifi
|
||
|
DRIVERS_DIR := $(WIFI_CONTRIB_DIR)/drivers
|
||
|
WIFI_DIR := $(WIFI_CONTRIB_DIR)/net
|
||
|
|
||
|
#
|
||
|
# The order of include-search directories is important, we need to look into
|
||
|
# 'contrib' before falling back to our custom 'lx_emul.h' header.
|
||
|
#
|
||
|
INC_DIR += $(LIB_INC_DIR)
|
||
|
INC_DIR += $(WIFI_CONTRIB_DIR)/include $(WIFI_CONTRIB_DIR)/include/uapi \
|
||
|
INC_DIR += $(LIB_DIR)
|
||
|
|
||
|
CC_OPT += -U__linux__ -D __KERNEL__ -DCONFIG_PCI
|
||
|
#CC_OPT += -DCONFIG_INET
|
||
|
CC_OPT += -DCONFIG_NET -DCONFIG_NET_NS -DCONFIG_WLAN #-D__MAC80211_DRIVER_TRACE
|
||
|
|
||
|
# needed for firmware loading
|
||
|
CC_OPT += -DCONFIG_FW_LOADER
|
||
|
|
||
|
# bling bling
|
||
|
CC_OPT += -DCONFIG_LEDS_TRIGGERS -DCONFIG_MAC80211_LEDS
|
||
|
|
||
|
# mesh
|
||
|
CC_OPT += -DCONFIG_MAC80211_MESH
|
||
|
|
||
|
# power management
|
||
|
CC_OPT += -DCONFIG_PM -DCONFIG_PM_SLEEP
|
||
|
|
||
|
# rfkill
|
||
|
CC_OPT += -DCONFIG_RFKILL
|
||
|
# choose default pid algorithm
|
||
|
CC_OPT += -DCONFIG_MAC80211_RC_PID -DCONFIG_MAC80211_RC_DEFAULT=\"pid\"
|
||
|
|
||
|
#
|
||
|
# Suffix of global 'module_init' function
|
||
|
#
|
||
|
MOD_SUFFIX =
|
||
|
CC_OPT += -DMOD_SUFFIX=$(MOD_SUFFIX)
|
||
|
|
||
|
SRC_C += lib/ctype.c
|
||
|
SRC_C += lib/crc32.c
|
||
|
|
||
|
# crypto
|
||
|
SRC_C += $(addprefix crypto/, $(notdir $(wildcard $(WIFI_CONTRIB_DIR)/crypto/*.c)))
|
||
|
|
||
|
# net
|
||
|
SRC_C += net/core/datagram.c
|
||
|
SRC_C += net/core/rtnetlink.c
|
||
|
SRC_C += net/core/skbuff.c
|
||
|
SRC_C += net/core/sock.c
|
||
|
SRC_C += net/ethernet/eth.c
|
||
|
SRC_C += net/netlink/af_netlink.c
|
||
|
SRC_C += net/netlink/genetlink.c
|
||
|
SRC_C += net/packet/af_packet.c
|
||
|
|
||
|
# netlink
|
||
|
SRC_C += lib/average.c
|
||
|
SRC_C += lib/nlattr.c
|
||
|
SRC_C += lib/rbtree.c
|
||
|
|
||
|
# wifi mac80211
|
||
|
SRC_C += $(addprefix net/mac80211/, $(notdir $(wildcard $(WIFI_DIR)/mac80211/*.c)))
|
||
|
|
||
|
# wifi rfkill
|
||
|
SRC_C += $(addprefix net/rfkill/, $(notdir $(wildcard $(WIFI_DIR)/rfkill/*.c)))
|
||
|
INC_DIR += $(WIFI_DIR)/rfkill
|
||
|
|
||
|
# wifi cfg80211
|
||
|
SRC_C += $(addprefix net/wireless/, $(notdir $(wildcard $(WIFI_DIR)/wireless/*.c)))
|
||
|
INC_DIR += $(WIFI_DIR)/wireless
|
||
|
|
||
|
# led driver
|
||
|
SRC_C += $(addprefix drivers/leds/, $(notdir $(wildcard $(DRIVERS_DIR)/leds/*.c)))
|
||
|
CC_OPT += -DCONFIG_LEDS_TRIGGERS
|
||
|
|
||
|
CC_OPT += -D__CHECK_ENDIAN__
|
||
|
|
||
|
# iwlwifi driver
|
||
|
DRV_DIR_IWLWIFI := drivers/net/wireless/iwlwifi
|
||
|
SRC_C += $(addprefix $(DRV_DIR_IWLWIFI)/, $(notdir $(wildcard $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLWIFI)/*.c)))
|
||
|
SRC_C += $(addprefix $(DRV_DIR_IWLWIFI)/dvm/, $(notdir $(wildcard $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLWIFI)/dvm/*.c)))
|
||
|
SRC_C += $(addprefix $(DRV_DIR_IWLWIFI)/mvm/, $(notdir $(wildcard $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLWIFI)/mvm/*.c)))
|
||
|
SRC_C += $(addprefix $(DRV_DIR_IWLWIFI)/pcie/, $(notdir $(wildcard $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLWIFI)/pcie/*.c)))
|
||
|
INC_DIR += $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLWIFI)
|
||
|
CC_OPT += -DCONFIG_IWLMVM -DCONFIG_IWLDVM
|
||
|
CC_OPT += -DCONFIG_IWLWIFI_DEBUG
|
||
|
|
||
|
# iwlegacy driver
|
||
|
DRV_DIR_IWLEGACY := drivers/net/wireless/iwlegacy
|
||
|
SRC_C += $(addprefix $(DRV_DIR_IWLEGACY)/, $(notdir $(wildcard $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLEGACY)/*.c)))
|
||
|
INC_DIR += $(WIFI_CONTRIB_DIR)/$(DRV_DIR_IWLEGACY)
|
||
|
CC_OPT += -DCONFIG_IWL3945 -DCONFIG_IWL4965
|
||
|
CC_OPT += -DCONFIG_IWLEGACY_DEBUG
|
||
|
|
||
|
#
|
||
|
# Determine the header files included by the contrib code. For each
|
||
|
# of these header files we create a symlink to 'lx_emul.h'.
|
||
|
#
|
||
|
GEN_INCLUDES := $(shell grep -rh "^\#include .*\/" $(WIFI_CONTRIB_DIR) |\
|
||
|
sed "s/^\#include [^<\"]*[<\"]\([^>\"]*\)[>\"].*/\1/" |\
|
||
|
sort | uniq)
|
||
|
#
|
||
|
# Filter out original Linux headers that exist in the contrib directory
|
||
|
#
|
||
|
NO_GEN_INCLUDES := $(shell cd $(WIFI_CONTRIB_DIR)/; find include -name "*.h" |\
|
||
|
sed "s/.\///" | sed "s/.*include\///")
|
||
|
GEN_INCLUDES := $(filter-out $(NO_GEN_INCLUDES),$(GEN_INCLUDES))
|
||
|
|
||
|
#
|
||
|
# Put Linux headers in 'GEN_INC' dir, since some include use "../../" paths use
|
||
|
# three level include hierarchy
|
||
|
#
|
||
|
GEN_INC := $(shell pwd)/include/include/include
|
||
|
|
||
|
$(shell mkdir -p $(GEN_INC))
|
||
|
|
||
|
|
||
|
GEN_INCLUDES := $(addprefix $(GEN_INC)/,$(GEN_INCLUDES))
|
||
|
INC_DIR += $(GEN_INC)
|
||
|
|
||
|
#
|
||
|
# Make sure to create the header symlinks prior building
|
||
|
#
|
||
|
$(SRC_C:.c=.o) $(SRC_CC:.cc=.o): $(GEN_INCLUDES)
|
||
|
|
||
|
$(GEN_INCLUDES):
|
||
|
$(VERBOSE)mkdir -p $(dir $@)
|
||
|
$(VERBOSE)ln -s $(LIB_INC_DIR)/lx_emul.h $@
|
||
|
|
||
|
vpath %.c $(DRIVERS_DIR)
|
||
|
vpath %.c $(WIFI_CONTRIB_DIR)/drivers/net/wireless/
|
||
|
vpath %.c $(WIFI_DIR)
|
||
|
vpath %.c $(WIFI_CONTRIB_DIR)
|
||
|
vpath %.c $(LIB_DIR)
|
||
|
vpath %.cc $(LIB_DIR)
|
||
|
vpath %.cc $(LIB_DIR)/signal
|
||
|
|
||
|
# vi: set ft=make :
|