ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/services/agps/Config.in b/package/services/agps/Config.in
new file mode 100644
index 0000000..c95cdd4
--- /dev/null
+++ b/package/services/agps/Config.in
@@ -0,0 +1,38 @@
+# AGPS configuration
+
+menu "Configuration"
+	depends on PACKAGE_agps
+
+config AGPS_PREBUILT
+	bool "agps prebuilt"
+	default y
+	help
+		use prebuilt agps image
+
+if !AGPS_PREBUILT
+
+config AGPS_PREBUILT_OVERRIDE
+	bool "prebuilt override"
+	default n
+	help
+		Force prebuilt override - when enabled, the build process
+		will also copy the output image to the prebuilt directory even if
+		it exists. As a byproduct, the package will be compiled from scratch
+		even if there are no changes in the sources, as the package
+		directory is always updated.
+
+
+config AGPS_LOCAL_CODE
+	bool "compile local code(dev only)"
+	default n
+	help
+		agps local_code
+
+config AGPS_DEBUG_MODE
+	bool "debug_mode"
+	default y
+	help
+		agps debug_mode
+
+endif
+endmenu
diff --git a/package/services/agps/Makefile b/package/services/agps/Makefile
new file mode 100644
index 0000000..29a017b
--- /dev/null
+++ b/package/services/agps/Makefile
@@ -0,0 +1,178 @@
+#
+# Copyright (C) 2010-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+define Package/agps/config
+	source "$(SOURCE)/Config.in"
+endef
+
+ifeq ($(CONFIG_USE_GLIBC),y)
+toolchain:=-glibc
+endif
+
+PKG_NAME:=agps
+
+PKG_VERSION:=2024-12-16
+PKG_REV_LONG:=4c3466fa8ddd7941d82ecf33e26ed8603227e205
+branch:=v2102
+branch_prefix:=-$(branch)
+
+GCC_MAJOR := $(shell echo $(CONFIG_GCC_VERSION) | cut -d. -f1)
+ifneq ($(GCC_MAJOR),)
+ifeq ($(shell [ $(GCC_MAJOR) -gt 12 ] && echo 1 || echo 0), 1)
+    $(info GCC_MAJOR is greater than 12)
+	branch_prefix:=-$(branch)-gcc$(GCC_MAJOR)
+else
+    $(info GCC_MAJOR is not greater than 12)
+endif
+endif
+
+PKG_REV:=$(shell echo $(PKG_REV_LONG) | cut -c1-7)
+PKG_TAG:=$(PKG_NAME)$(branch_prefix)$(toolchain)-v$(PKG_VERSION)-r$(PKG_REV)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_TAG)
+
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=ssh://$(USER)@source.asrmicro.com:29418/platform/vendor/asr/lbs/agps -b $(branch)
+PKG_SOURCE_SUBDIR:=$(PKG_TAG)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE:=$(PKG_TAG).tar.gz
+
+
+PREBUILT_FNAME:=prebuilt-$(PKG_TAG)
+PREBUILT_FPATH:=$(CURDIR)/prebuilt/$(PREBUILT_FNAME).tar.gz
+
+ifeq ($(CONFIG_AGPS_LOCAL_CODE),y)
+USE_SOURCE_DIR:=$(MRVLDIR)/agps
+PKG_INSTALL:=1
+endif
+
+PKG_MAINTAINER:=Hui Zhang <huizhang@asrmicro.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/agps
+  CATEGORY:=service
+  DEPENDS:=+zlib +libmbedtls +libstdcpp +librt +liblog \
+	   +libuci +libubus +libunwind
+  SUBMENU:=ASR AGPS
+  SUBMENUDEP:=TARGET_mmp
+  TITLE:=ASR agps daemon
+endef
+
+define Package/agps/description
+  ASR AGPS support
+endef
+
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_TAG)
+
+CMAKE_OPTIONS += \
+	-DPXA_1826=ON \
+	-DOPT_MBEDTLSL=ON \
+	$(if $(CONFIG_AGPS_DEBUG_MODE),-DOPT_DEBUG_MODE=ON ,-DOPT_DEBUG_MODE=OFF)
+
+ifneq ($(CONFIG_AGPS_PREBUILT),)
+
+define Download
+endef
+define Build/Prepare
+	$(if $(wildcard $(PREBUILT_FPATH)),,@echo "Error: $(PREBUILT_FPATH) not found"; false)
+endef
+define Build/Configure
+endef
+define Build/Compile
+endef
+define Build/Install
+	$(INSTALL_DIR) $(PKG_INSTALL_DIR)
+	echo "Unpacking prebuilt..." && \
+	$(TAR) -zxvf $(PREBUILT_FPATH) -C $(TMP_DIR) && \
+	$(CP) $(TMP_DIR)/$(PREBUILT_FNAME)/* $(PKG_INSTALL_DIR) && \
+	rm -rf $(TMP_DIR)/$(PREBUILT_FNAME);
+endef
+
+else
+ifeq ($(CONFIG_AGPS_LOCAL_CODE),y)
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+define Build/Configure
+	(cd $(PKG_BUILD_DIR); \
+		CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
+		CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
+		LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
+		cmake \
+			-DCMAKE_SYSTEM_NAME=Linux \
+			-DCMAKE_SYSTEM_VERSION=1 \
+			-DCMAKE_SYSTEM_PROCESSOR=$(ARCH) \
+			-DCMAKE_BUILD_TYPE=Release \
+			-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
+			-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
+			-DCMAKE_C_COMPILER="$(CMAKE_C_COMPILER)" \
+			-DCMAKE_C_COMPILER_ARG1="$(CMAKE_C_COMPILER_ARG1)" \
+			-DCMAKE_CXX_COMPILER="$(CMAKE_CXX_COMPILER)" \
+			-DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_CXX_COMPILER_ARG1)" \
+			-DCMAKE_EXE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \
+			-DCMAKE_MODULE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \
+			-DCMAKE_SHARED_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \
+			-DCMAKE_AR="$(CMAKE_AR)" \
+			-DCMAKE_NM="$(CMAKE_NM)" \
+			-DCMAKE_RANLIB="$(CMAKE_RANLIB)" \
+			-DCMAKE_FIND_ROOT_PATH="$(STAGING_DIR);$(TOOLCHAIN_DIR)" \
+			-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=BOTH \
+			-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
+			-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
+			-DCMAKE_STRIP=: \
+			-DCMAKE_INSTALL_PREFIX=/usr \
+			-DDL_LIBRARY=$(STAGING_DIR) \
+			-DCMAKE_PREFIX_PATH=$(STAGING_DIR) \
+			$(CMAKE_OPTIONS) \
+		$(USE_SOURCE_DIR) \
+	)
+
+endef
+ifeq ($(PKG_USE_NINJA),1)
+define Build/Compile
+	+$(NINJA) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) $(1)
+endef
+else
+define Build/Compile
+	+$(MAKE_VARS) \
+	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
+		$(MAKE_FLAGS)  \
+		$(1);
+endef
+endif
+define Build/Clean
+	rm -rf $(PKG_BUILD_DIR)
+endef
+endif
+endif
+
+define Prebuilt/Pack
+	echo "Packing prebuilt..." && \
+	mkdir -p $(TMP_DIR)/$(PREBUILT_FNAME) && \
+	cd $(TMP_DIR) && \
+	$(CP) $(PKG_INSTALL_DIR)/* ./$(PREBUILT_FNAME) && \
+	$(CP) $(PKG_BUILD_DIR)/daemon/agps ./$(PREBUILT_FNAME)/usr/bin/agps_symbol && \
+	$(CP) $(PKG_BUILD_DIR)/daemon/agps ./$(PREBUILT_FNAME)/usr/bin/agps && \
+	$(STRIP) ./$(PREBUILT_FNAME)/usr/bin/agps && \
+	$(TAR) czf $(PREBUILT_FNAME).tar.gz $(PREBUILT_FNAME) && \
+	mv $(TMP_DIR)/$(PREBUILT_FNAME).tar.gz $(PREBUILT_FPATH) && \
+	rm -rf $(TMP_DIR)/$(PREBUILT_FNAME);
+endef
+
+define Package/agps/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(CP) $(PKG_INSTALL_DIR)/usr/bin/agps $(1)/usr/bin/agps
+	$(STRIP) $(1)/usr/bin/agps
+	$(if $(wildcard $(PREBUILT_FPATH)),$(if $(CONFIG_AGPS_PREBUILT_OVERRIDE),@echo "WARNING: prebuilt override!"; $(call Prebuilt/Pack)),$(call Prebuilt/Pack))
+endef
+
+$(eval $(call BuildPackage,agps))
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-glibc-v2024-08-29-r5db4306.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-glibc-v2024-08-29-r5db4306.tar.gz
new file mode 100644
index 0000000..7513965
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-glibc-v2024-08-29-r5db4306.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-glibc-v2024-11-05-rb858c21.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-glibc-v2024-11-05-rb858c21.tar.gz
new file mode 100644
index 0000000..9141549
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-glibc-v2024-11-05-rb858c21.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-08-29-r5db4306.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-08-29-r5db4306.tar.gz
new file mode 100644
index 0000000..5fe0504
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-08-29-r5db4306.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-10-23-r1bc995e.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-10-23-r1bc995e.tar.gz
new file mode 100644
index 0000000..4f3ed2f
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-10-23-r1bc995e.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-11-05-rb858c21.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-11-05-rb858c21.tar.gz
new file mode 100644
index 0000000..cca86d6
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-11-05-rb858c21.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-11-12-rc000f5b.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-11-12-rc000f5b.tar.gz
new file mode 100644
index 0000000..07ac1d2
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-11-12-rc000f5b.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-12-16-r4c3466f.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-12-16-r4c3466f.tar.gz
new file mode 100644
index 0000000..46940f1
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-gcc13-v2024-12-16-r4c3466f.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-v2022-10-07-r5d87671.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-v2022-10-07-r5d87671.tar.gz
new file mode 100644
index 0000000..f45c27c
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-v2022-10-07-r5d87671.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-v2024-03-22-rdbfb344.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-v2024-03-22-rdbfb344.tar.gz
new file mode 100644
index 0000000..4dfee52
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-v2024-03-22-rdbfb344.tar.gz
Binary files differ
diff --git a/package/services/agps/prebuilt/prebuilt-agps-v2102-v2024-08-29-r5db4306.tar.gz b/package/services/agps/prebuilt/prebuilt-agps-v2102-v2024-08-29-r5db4306.tar.gz
new file mode 100644
index 0000000..d8506a0
--- /dev/null
+++ b/package/services/agps/prebuilt/prebuilt-agps-v2102-v2024-08-29-r5db4306.tar.gz
Binary files differ