Makefile示例
将编译指令封装起来,然后调用make,解读Makefile,简化开发。
一个简单的示例:
CLDFLAGS += -lcrypto -llua -lpthread
DEPT := ipq40xx
MODE :=
VER = 1.3.6
TOPDIR          = $(PWD)
SOURCE_DIR      = $(TOPDIR)/src
BUILD_DIR       = $(TOPDIR)/build_dir
OUTPUT_FOLDER   = output
OUTPUT_DIR      = $(BUILD_DIR)/$(OUTPUT_FOLDER)
CCFLAGS         += -I$(OUTPUT_DIR) -O2 -Wall -Werror
CLDFLAGS        += -L$(OUTPUT_DIR)
DEPT           ?= linux 
#SDK_TAR_DIR    := /home/ubuntu/demo-SDK/sdk-tar/$(DEPT)
SDK_TAR_DIR    := $(PWD)
ifdef TOOL_DIR
    TARGET_CROSS  :=  $(TOOL_DIR)/$(TOOL_PREFIX)
    TARGET_CONFIGURE_OPTS  =                \
        CC=$(TARGET_CROSS)gcc       \
        AR=$(TARGET_CROSS)ar        \
        LD=$(TARGET_CROSS)ld        \
        STRIP=$(TARGET_CROSS)strip 
endif
all:
	make clean
	make env
	#$(MAKE) -C $(BUILD_DIR) CC="$(CC)" AR="$(AR)" LD="$(LD)" MODE="$(MODE)"  CLDFLAGS="$(CLDFLAGS)" CCFLAGS="$(CCFLAGS)"
	$(MAKE) -C $(BUILD_DIR) $(TARGET_CONFIGURE_OPTS) MODE="$(MODE)" CLDFLAGS="$(CLDFLAGS)" CCFLAGS="$(CCFLAGS)"
	make tar
	make save
env:
	mkdir -p $(OUTPUT_DIR)
	cp -r $(SOURCE_DIR)/* $(BUILD_DIR)/
tar:
	cd $(BUILD_DIR) && tar cvf demo-sdk-$(DEPT)-$(VER)-beta-`date +%Y%m%d_%H%M%S`.tar \
		$(OUTPUT_FOLDER) demo-kit demo-main 
save:
	mkdir -p $(SDK_TAR_DIR)
	cp -r $(BUILD_DIR)/*.tar $(SDK_TAR_DIR)
clean:
	rm -rf $(BUILD_DIR)/*
.PHONY: all env tar clean
或者另外一种简单的形式:
SOFTVER?=1.0.0
define Package/base-files/install
define Package/base-files/install
	echo soft_ver:$(SOFTVER) Build `date +%Y%m%d` Rel. `date +%H%M%S`> ./files/etc/softversion
	$(CP) ./files/* $(1)/
输出的结果:
cat etc/softversion
soft_ver:V1.0.0 Build 20230925 Rel. 172745
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号