Makefile: build flags as a target. (#163)
* Makefile: build flags as a target. * Makefile: proper BUILD_FLAGS generation routine Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
This commit is contained in:
		
							parent
							
								
									3c2711102c
								
							
						
					
					
						commit
						2ab6f82ddf
					
				| @ -12,6 +12,3 @@ include			$(TARGET_DIR)/target.mk | |||||||
| 
 | 
 | ||||||
| include			$(PROJECT_ROOT)/make/toolchain.mk | include			$(PROJECT_ROOT)/make/toolchain.mk | ||||||
| include			$(PROJECT_ROOT)/make/rules.mk | include			$(PROJECT_ROOT)/make/rules.mk | ||||||
| 
 |  | ||||||
| $(OBJ_DIR)/app.o:   .FORCE |  | ||||||
| .PHONY: .FORCE |  | ||||||
| @ -13,6 +13,13 @@ DEPS = $(OBJECTS:.o=.d) | |||||||
| 
 | 
 | ||||||
| $(shell mkdir -p $(OBJ_DIR)) | $(shell mkdir -p $(OBJ_DIR)) | ||||||
| 
 | 
 | ||||||
|  | BUILD_FLAGS_SHELL=\
 | ||||||
|  | 	echo -n "$(CFLAGS)" > $(OBJ_DIR)/BUILD_FLAGS.tmp; \
 | ||||||
|  | 	diff $(OBJ_DIR)/BUILD_FLAGS $(OBJ_DIR)/BUILD_FLAGS.tmp > /dev/null \
 | ||||||
|  | 		&& ( echo "CFLAGS ok"; rm $(OBJ_DIR)/BUILD_FLAGS.tmp) \
 | ||||||
|  | 		|| ( echo "CFLAGS has been changed"; mv $(OBJ_DIR)/BUILD_FLAGS.tmp $(OBJ_DIR)/BUILD_FLAGS ) | ||||||
|  | $(info $(shell $(BUILD_FLAGS_SHELL))) | ||||||
|  | 
 | ||||||
| all: $(OBJ_DIR)/$(PROJECT).elf $(OBJ_DIR)/$(PROJECT).hex $(OBJ_DIR)/$(PROJECT).bin | all: $(OBJ_DIR)/$(PROJECT).elf $(OBJ_DIR)/$(PROJECT).hex $(OBJ_DIR)/$(PROJECT).bin | ||||||
| 
 | 
 | ||||||
| $(OBJ_DIR)/$(PROJECT).elf: $(OBJECTS) | $(OBJ_DIR)/$(PROJECT).elf: $(OBJECTS) | ||||||
| @ -28,15 +35,15 @@ $(OBJ_DIR)/$(PROJECT).bin: $(OBJ_DIR)/$(PROJECT).elf | |||||||
| 	@echo "\tBIN\t" $@ | 	@echo "\tBIN\t" $@ | ||||||
| 	@$(BIN) $< $@ | 	@$(BIN) $< $@ | ||||||
| 
 | 
 | ||||||
| $(OBJ_DIR)/%.o: %.c | $(OBJ_DIR)/%.o: %.c $(OBJ_DIR)/BUILD_FLAGS | ||||||
| 	@echo "\tCC\t" $@ | 	@echo "\tCC\t" $@ | ||||||
| 	@$(CC) $(CFLAGS) -c $< -o $@ | 	@$(CC) $(CFLAGS) -c $< -o $@ | ||||||
| 
 | 
 | ||||||
| $(OBJ_DIR)/%.o: %.s | $(OBJ_DIR)/%.o: %.s $(OBJ_DIR)/BUILD_FLAGS | ||||||
| 	@echo "\tASM\t" $@ | 	@echo "\tASM\t" $@ | ||||||
| 	@$(AS) $(CFLAGS) -c $< -o $@ | 	@$(AS) $(CFLAGS) -c $< -o $@ | ||||||
| 
 | 
 | ||||||
| $(OBJ_DIR)/%.o: %.cpp | $(OBJ_DIR)/%.o: %.cpp $(OBJ_DIR)/BUILD_FLAGS | ||||||
| 	@echo "\tCPP\t" $@ | 	@echo "\tCPP\t" $@ | ||||||
| 	@$(CPP) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ | 	@$(CPP) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ | ||||||
| 
 | 
 | ||||||
| @ -54,7 +61,12 @@ upload: $(OBJ_DIR)/upload | |||||||
| 
 | 
 | ||||||
| debug: flash | debug: flash | ||||||
| 	set -m; st-util -n --semihosting & echo $$! > st-util.PID | 	set -m; st-util -n --semihosting & echo $$! > st-util.PID | ||||||
| 	arm-none-eabi-gdb -ex "target extended-remote 127.0.0.1:4242" $(OBJ_DIR)/$(PROJECT).elf; kill `cat st-util.PID`; rm st-util.PID | 	arm-none-eabi-gdb \
 | ||||||
|  | 		-ex "target extended-remote 127.0.0.1:4242" \
 | ||||||
|  | 		-ex "set confirm off" \
 | ||||||
|  | 		$(OBJ_DIR)/$(PROJECT).elf; \
 | ||||||
|  | 	kill `cat st-util.PID`; \
 | ||||||
|  | 	rm st-util.PID | ||||||
| 
 | 
 | ||||||
| clean: | clean: | ||||||
| 	@echo "\tCLEAN\t" | 	@echo "\tCLEAN\t" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 あく
						あく