openWrt编译package

来源:互联网 发布:刺客信条枭雄优化好 编辑:程序博客网 时间:2024/05/18 20:08
  • package目录里文件的放置结构,以cJSON_main为准
package/├── cJSON_main│   ├── Makefile│   └── src│       ├── bin│       ├── cJSON_main│       ├── include│       │   └── cJSON.h│       ├── Makefile│       ├── obj│       └── src│           ├── cJSON.c│           └── cJSON_main.c├── helloworld│   ├── Makefile│   └── src│       ├── helloworld.c│       └── Makefile├── Makefile└── zigbeeservice    ├── file    │   ├── cloud    │   ├── config_status    │   ├── iot.crt    │   ├── restar_service    │   ├── set_ap    │   ├── set_sta    │   ├── zha_config    │   ├── zha_start    │   ├── zigbeeserviceStart.sh    │   └── zigbeeserviceStop.sh    ├── Makefile    ├── si    │   ├── sdk--demo.IAB    │   ├── sdk--demo.IAD    │   ├── sdk--demo.IMB    │   ├── sdk--demo.IMD    │   ├── sdk--demo.PFI    │   ├── sdk--demo.PO    │   ├── sdk--demo.PR    │   ├── sdk--demo.PRI    │   ├── sdk--demo.PS    │   ├── sdk--demo.SearchResults    │   └── sdk--demo.WK3    └── src        ├── aes.c        ├── aes.h        ├── cJSON.c        ├── cJSON.h        ├── defines.h        ├── include        │   ├── alink_export_zigbee.h        │   ├── cJSON.h        │   ├── hal_types.h        │   ├── platform.h        │   ├── types.h        │   ├── uart.h        │   ├── user_api.h        │   ├── user_cb.h        │   ├── user_types.h        │   └── zigbeezap.h        ├── libshuncomzigbee.so        ├── Makefile        ├── mqtt.c        ├── mqtt.h        ├── ubus.c        ├── ubus.h        ├── zha_strategy.c        ├── zha_strategy.h        └── zigbeeservice.c
  • 外层Makefile
include $(TOPDIR)/rules.mkPKG_NAME:=cJSON_mainPKG_RELEASE:=1PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)include $(INCLUDE_DIR)/package.mkdefine Package/cJSON_main        SECTION:=utils        CATEGORY:=Utilities        TITLE:=cJSON_main -- prints a snarky messageendefdefine Package/cJSON_main/description        >>>>>>>>>It is walter`s cJSON_main package demo.<<<<<<<<<endefdefine Build/Prepare    echo "Here is Package/Prepare"    mkdir -p $(PKG_BUILD_DIR)    $(CP) ./src/* $(PKG_BUILD_DIR)/endef#define Build/Compile#   $(MAKE) -C $(PKG_BUILD_DIR) \#       $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -I$(LINUX_DIR)/include"#endefdefine Package/cJSON_main/install    echo "Here is Package/install"    $(INSTALL_DIR) $(1)/bin    $(INSTALL_BIN) $(PKG_BUILD_DIR)/cJSON_main $(1)/bin/endef$(eval $(call BuildPackage,cJSON_main))
  • 内层Makefile
CC:=gccCFLAGS:=-Iinclude CFLAGS+=-cTARGET:=./cJSON_mainDEPEND:=obj/cJSON_main.oDEPEND+=obj/cJSON.o$(TARGET):$(DEPEND)    $(CC) -o $@ $^ -lmobj/%.o:src/%.c    $(CC) -o $@ $(CFLAGS) $^ -Wallclean:    rm -fr $(DEPEND)