- 顶层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))
- 里层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'