# SPDX-License-Identifier: LicenseRef-Unisoc-General-1.0 # # Copyright 2016-2023 Unisoc (Shanghai) Technologies Co., Ltd # # Licensed under the Unisoc General Software License, version 1.0 (the License); # you may not use this file except in compliance with the License. You may obtain a copy of the License at # # https://www.unisoc.com/en_us/license/UNISOC_GENERAL_LICENSE_V1.0-EN_US # # Software distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OF ANY KIND, either express or implied. # See the Unisoc General Software License, version 1.0 for more details. ifeq ($(MAKECMDGOALS), ubuntu) include ./config endif CXXFLAGS = -Wall -Werror=uninitialized -g -O1 -std=c++11 -DBUILD_ON_YOCTO # unused function recycling CXXFLAGS += -fdata-sections -ffunction-sections -Wl,-gc-sections CXXFLAGS += -DUNISOC_MACHINE=\"${UNISOC_MACHINE}\" CXXFLAGS += ${DUAL_DATA_SET_FLAG} CXXFLAGS += ${NETCON_DEBUG_FLAG} CXXFLAGS += ${MXL_NDA_FLAG} CXXFLAGS += ${BRIDGE_MODE_SET_FLAG} CXXFLAGS += ${MULTI_SIM_FLAGS} CXXFLAGS += ${NETCON_SUPPORT_RTL8367} SRC_DIR = core \ uweb \ udhcp \ core/dhcp \ core/signal \ core/connectivity ifneq ($(MAKECMDGOALS), ubuntu) SYS_ROOT = $(WORKDIR)/recipe-sysroot endif INCLUDE_DIRS = -I$(SYS_ROOT)/usr/include \ -I$(SYS_ROOT)/usr/include/dbus-1.0 \ -I$(SYS_ROOT)/usr/include/libudbus \ -I$(SYS_ROOT)/usr/include/libnl3 \ INCLUDE_DIRS += -I ./include/ INCLUDE_DIRS += -I ./uweb INCLUDE_DIRS += -I ./core/dhcp INCLUDE_DIRS += -I ./udhcp INCLUDE_DIRS += -I ./core/connectivity ifeq ($(CONFIG_WIFI),y) SRC_DIR += core/wifi \ core/wifi/station \ core/wifi/station/dbus \ core/rfkill CXXFLAGS += -DHAVE_WIFI INCLUDE_DIRS += -I ./core/wifi INCLUDE_DIRS += -I ./core/wifi/station INCLUDE_DIRS += -I ./core/wifi/station/dbus INCLUDE_DIRS += -I ./core/rfkill endif ifeq ($(CONFIG_SOFTAP),y) SRC_DIR += core/wifi SRC_DIR += core/wifi/softap CXXFLAGS += -DHAVE_SOFTAP INCLUDE_DIRS += -I ./core/wifi/softap INCLUDE_DIRS += -I ./core/wifi endif ifeq ($(CONFIG_BLUETOOTH),y) SRC_DIR += core/bluetooth core/rfkill CXXFLAGS += -DHAVE_BT INCLUDE_DIRS += -I ./core/bluetooth INCLUDE_DIRS += -I ./core/rfkill endif ifeq ($(CONFIG_TELEPHONY),y) SRC_DIR += core/telephony \ core/telephony/ofono CXXFLAGS += -DHAVE_TELE INCLUDE_DIRS += -I ./core/telephony INCLUDE_DIRS += -I ./core/telephony/ofono ifeq ($(CONFIG_SLICE),y) SRC_DIR += core/telephony/slice CXXFLAGS += -DHAVE_SLICE INCLUDE_DIRS += -I ./core/telephony/slice endif endif ifeq ($(CONFIG_DIAL),y) SRC_DIR += core/dial CXXFLAGS += -DHAVE_DIAL INCLUDE_DIRS += -I ./core/dial endif ifeq ($(CONFIG_ETHERNET),y) SRC_DIR += core/ethernet CXXFLAGS += -DHAVE_ETH INCLUDE_DIRS += -I ./core/ethernet ifeq (RTL8367_SUPPORT, $(findstring RTL8367_SUPPORT,$(CXXFLAGS))) SRC_DIR += core/ethernet/rtl8367 INCLUDE_DIRS += -I ./core/ethernet/rtl8367 endif endif ifeq ($(CONFIG_USB),y) SRC_DIR += core/usb CXXFLAGS += -DHAVE_USB INCLUDE_DIRS += -I ./core/usb endif ifeq ($(CONFIG_GPS),y) SRC_DIR += core/gps CXXFLAGS += -DHAVE_GPS INCLUDE_DIRS += -I ./core/gps endif ifeq ($(CONFIG_DNS),y) SRC_DIR += core/dns CXXFLAGS += -DHAVE_DNS INCLUDE_DIRS += -I ./core/dns endif ifeq ($(CONFIG_TRAFFICSTATS),y) SRC_DIR += core/trafficstats CXXFLAGS += -DHAVE_TRAFFICSTATS INCLUDE_DIRS += -I core/trafficstats endif ifeq ($(CONFIG_TSN),y) SRC_DIR += core/tsn CXXFLAGS += -DHAVE_TSN INCLUDE_DIRS += -I core/tsn endif ifeq ($(CONFIG_PDP_AUTO_CONNECT),y) CXXFLAGS += -DPDP_AUTO_CONNECT endif vpath %.cpp $(SRC_DIR) CXXFLAGS += $(INCLUDE_DIRS) LIBS = -lsrmi -ludbus -lresolv -lnl-genl-3 -lnl-3 ifeq ($(QT_SUPPORT_FLAGS), true) INCLUDE_DIRS += -I$(SYS_ROOT)/usr/include/QtCore LIBS += -lQt5Core CXXFLAGS += -DQT_SUPPORT endif ifeq ($(MAKECMDGOALS), ubuntu) INCLUDE_DIRS += -I$(SYS_ROOT)/usr/include/srmi INCLUDE_DIRS += -I /usr/lib/aarch64-linux-gnu/dbus-1.0/include/dbus/ CXXFLAGS += -DBUILD_ON_UBUNTU INCLUDE_DIRS += -I /usr/include/aarch64-linux-gnu/qt5/ LIBS += -lQt5Core CXXFLAGS += -DQT_SUPPORT endif ifneq ($(MAKECMDGOALS), ubuntu) LIBS += -linput-uevent endif CUR_DIR = $(shell pwd) SRCS = $(foreach dir,$(SRC_DIR),$(wildcard $(dir)/*.cpp)) OBJ = $(patsubst %.cpp,%.o,$(SRCS)) $(GEN_FILE):$(wildcard $(CUR_DIR)/uidl/ofono/*.xml) $(CUR_DIR)/uidl/gen_ofono_client.sh $(CUR_DIR)/uidl $(CUR_DIR)/uidl/ofono $(CUR_DIR)/uidl/ofono/out/client OUT_DIR = $(CUR_DIR)/out OBJ_DIR = $(OUT_DIR)/obj BIN_DIR = $(OUT_DIR)/bin LIB_DIR = $(OUT_DIR)/lib OBJS = $(notdir $(OBJ)) OBJS_WITH_DIR = $(addprefix $(OBJ_DIR)/,$(OBJS)) DEP := $(OBJS_WITH_DIR:.o=.d) TARGET = $(BIN_DIR)/netcond all: $(TARGET) DBUS_CONF ubuntu: all cp $(TARGET) /usr/bin $(TARGET):$(OBJS_WITH_DIR) $(CXX) $(CXXFLAGS) $^ -o $@ $(LIBS) $(OBJ_DIR)/%.o:%.cpp DIRS $(CXX) $(CXXFLAGS) -c -fPIC $< -o $@ install: cp $(BIN_DIR)/$(TARGET) $(INSTALL_MOD_PATH)/bin clean: rm -rf $(OBJ_DIR) $(BIN_DIR) $(LIB_DIR) $(GEN_FILE) -include $(DEP) ################################################################# DIRS: @$(call CREATE_DIR,$(OUT_DIR)) @$(call CREATE_DIR,$(OBJ_DIR)) @$(call CREATE_DIR,$(BIN_DIR)) @$(call CREATE_DIR,$(LIB_DIR)) define CREATE_DIR if [ ! -d $(1) ];\ then\ mkdir -p $(1);\ fi endef DBUS_CONF: -cp core/netcon_dbus.conf ${WORKDIR}