728x90
반응형
맨 위로 올라가기
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

+ Recent posts