zoukankan      html  css  js  c++  java
  • 转:一个多目录结构C程序的Makefile

    来源: ChinaUnix博客  

    一个多目录结构的C程序Makefile,代码存在main init input output exit目录。

    CC = gcc

    RDIR = Rels
    MAIN_DIR = main/Rels
    INIT_DIR = init/Rels
    INPUT_DIR = input/Rels
    OUTPUT_DIR = output/Rels
    EXIT_DIR = exit/Rels

    OBJ_FILES = $(MAIN_DIR)/main.o
    $(INIT_DIR)/init1.o $(INIT_DIR)/init2.o $(INIT_DIR)/init3.o $(INIT_DIR)/init4.o
    $(INPUT_DIR)/input1.o $(INPUT_DIR)/input2.o $(INPUT_DIR)/input3.o $(INPUT_DIR)/input4.o
    $(OUTPUT_DIR)/output1.o $(OUTPUT_DIR)/output2.o $(OUTPUT_DIR)/output3.o $(OUTPUT_DIR)/output4.o
    $(EXIT_DIR)/exit1.o $(EXIT_DIR)/exit2.o $(EXIT_DIR)/exit3.o $(EXIT_DIR)/exit4.o

    #build dest
    $(RDIR)/dest : $(RDIR) $(MAIN_DIR) $(INIT_DIR) $(INPUT_DIR) $(OUTPUT_DIR) $(EXIT_DIR) $(OBJ_FILES)
    $(CC) $(OBJ_FILES) -o $@

    # make directry
    $(MAIN_DIR):
    mkdir $(MAIN_DIR)

    $(RDIR):
    mkdir $(RDIR)

    $(INIT_DIR):
    mkdir $(INIT_DIR)

    $(INPUT_DIR):
    mkdir $(INPUT_DIR)
    $(OUTPUT_DIR):
    mkdir $(OUTPUT_DIR)
    $(EXIT_DIR):
    mkdir $(EXIT_DIR)

    #compile object
    $(MAIN_DIR)/main.o :main/main.c
    $(CC) -c $

    #clean all
    clean:
    rm -r -f $(RDIR)
    rm -r -f $(INIT_DIR)
    rm -r -f $(INPUT_DIR)
    rm -r -f $(OUTPUT_DIR)
    rm -r -f $(EXIT_DIR)

    本文来自ChinaUnix

  • 相关阅读:
    tarjan algorithm
    最小生成树
    Manacher's Algorithm (马拉车算法)
    KMP
    Trie(字典树)
    Hash
    GDB调试
    图论
    扫描线
    STL
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/3680826.html
Copyright © 2011-2022 走看看