# generated by makefile_builder.pl using [cur_dir -t all msg -t clean msg -t install msg]
# search file from current folder to parent folders
# cutoff at 14th parent folder
search_cutoff := ../../../
define search-file
	$(if $(filter $(search_cutoff)%,$1),,$(if $(wildcard $1),$1,$(call search-file,../$1)))
endef

include $(call search-file,arch.mk)
include $(call search-file,path.mk)
include $(call search-file,lib.mk)

include ../../.config

current_dir := $(shell pwd)

#### Package Info ###############################
PKG := libubox
PKG_NAME := $(PKG)
PKG_SOURCE_DATE:=2021-05-16
PKG_VERSION := b14c4688
#b14c4688612c05c78ce984d7bde633bce8703b1e

##PATH
BUILD_DIR:=$(current_dir)/$(PKG)-$(PKG_SOURCE_DATE)-$(PKG_VERSION)
ifeq ($(ELBOX_PROGS_GPL_LIB_JSONC_0_15),y)
LIBJSON_DIR:=$(TOPDIR)/progs.gpl/libjson-c-0.15/build
endif
install_lib:=$(BUILD_DIR)/libubox.so $(BUILD_DIR)/libblobmsg_json.so $(BUILD_DIR)/libjson_script.so

TARGET_CFLAGS:=-O2 -I$(LIBJSON_DIR) -DJSONC
TARGET_LDFLAGS:= -L$(LIBJSON_DIR)

CMAKE_OPTS:= \
	-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG"  \
	-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG"  -DCMAKE_EXE_LINKER_FLAGS:STRING=""\
	-DCMAKE_MODULE_LINKER_FLAGS:STRING="-L$(CC_PATH)/usr/lib -L$(CC_PATH)/lib -L$(LIBJSON_DIR)" \
	-DCMAKE_CXX_COMPILER_LAUNCHER="-L$(CC_PATH)/usr/lib -L$(CC_PATH)/lib -L$(LIBJSON_DIR)" \
	-DCMAKE_SHARED_LINKER_FLAGS:STRING="-L$(CC_PATH)/usr/lib -L$(CC_PATH)/lib -L$(LIBJSON_DIR)" \
	-DCMAKE_FIND_ROOT_PATH="$(CC_PATH);$(LIBJSON_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=$(TARGET) -DCMAKE_PREFIX_PATH=$(TARGET) \
	-DCMAKE_SKIP_RPATH=TRUE -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_EXPORT_PACKAGE_REGISTRY=FALSE -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE \
	-DCMAKE_FIND_USE_PACKAGE_REGISTRY=FALSE -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=TRUE -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=FALSE \
	-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=TRUE -DBUILD_LUA=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_SKIP_RPATH=FALSE -DCMAKE_MACOSX_RPATH=1 \
	-DCMAKE_INSTALL_RPATH="$(TARGET)/lib"

targets :=

############################# section all #############################
targets += all
# file and directory selectors

all: prepare
	$(call color_print,Compiling objects in $(current_dir) ...,green)
	(cd $(BUILD_DIR); \
	CFLAGS="$(TARGET_CFLAGS)" CXXFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" \
	cmake $(CMAKE_OPTS) $(BUILD_DIR) )
	CFLAGS="$(TARGET_CFLAGS)" CPPFLAGS="$(TARGET_CFLAGS)" CXXFLAGS="" LDFLAGS="$(TARGET_LDFLAGS)" \
	make -j1 -C $(BUILD_DIR) ; \
	if [ ! -d "$(BUILD_DIR)/include" ]; then \
		mkdir -p $(BUILD_DIR)/include $(BUILD_DIR)/include/libubox $(BUILD_DIR)/lib; \
		find $(BUILD_DIR) -name  "*.h" | xargs -I {} cp {} $(BUILD_DIR)/include/libubox; \
		find $(BUILD_DIR) -name  "*.so" | xargs -I {} cp {} $(BUILD_DIR)/lib; \
	fi

############################# section prepare #############################
targets += prepare
# file and directory selectors

prepare: 
	$(call color_print,prepare objects in $(current_dir) ...,green)
	if [ ! -d "$(LIBJSON_DIR)" ]; then \
		make -C $(TOPDIR)/progs.gpl/libjson-c-0.15 all ;\
	fi
	if [ ! -d "$(BUILD_DIR)" ]; then \
		xzcat libubox-2021-05-16-b14c4688.tar.xz | tar -xf -;\
	fi


############################# section strip_file #############################
targets += strip_file

strip_file:
	$(call color_print,Strip files in $(current_dir) ...,green)
	-@$(STRIP) $(install_lib)

############################# section install #############################
targets += install
# file and directory selectors

install: strip_file
	$(call color_print,Installing objects in $(current_dir) ...,green)
	$(call create_install_paths,$(TARGET)/lib)	
	$(call install_files,,$(TARGET)/lib,$(install_lib))

############################# section clean #############################
targets += clean
# file and directory selectors

clean:
	$(call color_print,Cleaning objects in $(current_dir) ...,green)
	@rm -rf $(install_lib) $(BUILD_DIR)/include $(BUILD_DIR)/include/libubox $(BUILD_DIR)/lib
	$(Q)rm -rf $(BUILD_DIR)

.PHONY: $(targets)
