728x90
반응형
![맨 위로 올라가기](https://tistory4.daumcdn.net/tistory/5482790/skin/images/ivmovetop.png)
Make
Makfile 을 간단하게 작성해보려고 한다.
우선 실습을 위한 디렉터리 구조와 빌드에 필요한 파일 등을 생성해보려고 한다.
├── build
├── include
├── obj
└── src
우선 간략하게 다음과 같은 구조의 디렉토리를 생성한다.
#include <module1.h>
#include <module2.h>
void main(void)
{
module1();
module2();
}
#include <stdio.h>
void module1(void)
{
printf("Module1\n");
}
#include <stdio.h>
void module2(void)
{
printf("Module2\n");
}
void module1(void);
void module2(void);
PROJECT_DIR = ~/makeDir
INCLUDE = -I $(PROJECT_DIR)/include/
SRC_DIR = $(PROJECT_DIR)/src
OBJ_DIR = $(PROJECT_DIR)/obj
BUILD_DIR = $(PROJECT_DIR)/build
CC = gcc
CFLAGS = -O3
TARGET = main
SRCS = $(notdir $(wildcard $(SRC_DIR)/*.c))
OBJS = $(patsubst %.o,$(OBJ_DIR)/%.o, $(SRCS:.c=.o))
#OBJS = $(patsubst %.c, $OBJ_DIR)/%.o, $(SRCS))
all: main
$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c
$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
$(TARGET) : $(OBJS)
$(CC) $(CFLAGS) $(OBJS) -o $(TARGET)
.PHONY: clean all
clean:
rm f $(OBJS) $(TARGET)
#rm -f $(OBJS) $(TARGET)
728x90
반응형
'Firmware & Embedded > ARM' 카테고리의 다른 글
Code Formatter Profile (0) | 2024.01.06 |
---|---|
STM32 - Clock Configuration (0) | 2024.01.05 |
Creation and Process of Object Files (0) | 2023.12.31 |
Chipset 의 이해 (0) | 2023.12.23 |
HAL(Hardware Abstraction Layer) (0) | 2023.12.21 |