openwrt lib库makefile

  1. 顶层Makefile
    #huaiye
    include $(TOPDIR)/rules.mk
    
    PKG_NAME:=libcommon
    
    
    include $(INCLUDE_DIR)/package.mk
    
    define Package/libcommon
    	CATEGORY:=xxx
    	TITLE:=common library
    	VERSION:=v0.1
    	DEPENDS:=
    endef
    
    
    	
    define Package/libcommon/description
    endef
    
    # The linker can identify unused sections of a binary when each symbol is stored
    # in a separate section. This mostly removes unused linker sections and reduces
    # the size by ~3% on mipsel.
    
    TARGET_CFLAGS  += -ffunction-sections -fdata-sections
    TARGET_LDFLAGS += -Wl,--gc-sections
    
    # Link-time optimization allows to move parts of the optimization from the single
    # source file to the global source view. This is done by emitting the GIMPLE
    # representation in each object file and analyzing it again during the link step.
    
    TARGET_CFLAGS  += -flto
    TARGET_LDFLAGS += -fuse-linker-plugin
    TARGET_CFLAGS += -fPIC
    
    TARGET_CFLAGS += \
    	-Wall -W -std=gnu99 -fno-strict-aliasing -MD -MP \
    	-I$(STAGING_DIR)/usr/include/libnl-tiny \
    	-I$(STAGING_DIR)/usr/include \
    	-I$(STAGING_DIR)/include \
    	-I$(TOOLCHAIN_DIR)/usr/include \
    	-I$(TOOLCHAIN_DIR)/include/fortify \
    	-I$(TOOLCHAIN_DIR)/include \
    	-D_GNU_SOURCE
    
    define Build/Compile
    	$(MAKE) -C $(PKG_BUILD_DIR) \
    		$(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)"
    endef
    
    
    define Build/InstallDev
    	$(INSTALL_DIR) $(1)/usr/include/
    	$(CP)	$(PKG_BUILD_DIR)/*.h $(1)/usr/include/
    	$(INSTALL_DIR) $(1)/usr/lib
    	$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME).so $(1)/usr/lib/
    endef
    
    
    define Package/libcommon/install
    	$(INSTALL_DIR) $(1)/lib
    	$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME).so $(1)/lib/
    endef
    
    
    $(eval $(call BuildPackage,libcommon))
    

     

  2. 里层Makefile
    OUTPUT_NAME=libcommon.so
    OBJECTS =common_file.o common_network.o common_time.o
    
    all: $(OBJECTS)
    	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -shared -o $(OUTPUT_NAME)
    
    clean:
    	@echo Make clean in 'pwd'

     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值