zoukankan      html  css  js  c++  java
  • 通用多目录makefile的写法

    我的项目文件层次是:项目名称/include、output、src

    src/admin、stu、tch、common

    最外层的Makefile:

    DEBUG = y
    MYDEBUG = DEBUG
    ifeq ($(DEBUG),y)
    DEBFLAGS = -O -g -D$(MYDEBUG)
    else
    DEBFLAGS =
    endif

    PRJ_HOME := $(shell pwd)
    SOURCES := $(wildcard *.c)
    OBJECTS := ${SOURCES:%.c=%.o}
    INCPATH := -I$(PRJ_HOME)/include -I./

    export CFLAGS += $(INCPATH)  $(DEBFLAGS)
    export CC = gcc
    export OUTPUTDIR = $(PRJ_HOME)/output

    PROGRAM = system_stu
    VPATH = ${OUTPUTDIR}

    .PHONY : all
    all : ${PROGRAM}

    ${PROGRAM} : ${OBJECTS} oadmin ocommon ostu otch
     $(CC) -o $@ ${OUTPUTDIR}/*.o $(CFLAGS)
    %.o:%.c
     $(CC) -o ${OUTPUTDIR}/$@ -c $< $(CFLAGS)

    oadmin :
     @$(MAKE) -C src/admin/
    ocommon :
     @$(MAKE) -C src/common/
    ostu :
     @$(MAKE) -C src/stu/
    otch :
     @$(MAKE) -C src/tch/

    .PHONY : clean
    clean :
     $(RM) ${OUTPUTDIR}/*.o *.o ${PROGRAM} 

    子目录的Makefile:

    SOURCES := $(wildcard *.c)
    OBJECTS := ${SOURCES:%.c=%.o}
    VPATH = $(OUTPUTDIR)

    all : ${OBJECTS}
    %.o:%.c
     $(CC) -o ${OUTPUTDIR}/$@ -c $< $(CFLAGS)
    clean :

  • 相关阅读:
    垃圾邮件处理
    主成分分析
    逻辑回归实践
    特征选择
    逻辑回归
    15 手写数字识别-小数据集
    14 深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    11.分类与监督学习,朴素贝叶斯分类算法
  • 原文地址:https://www.cnblogs.com/lidabo/p/4521097.html
Copyright © 2011-2022 走看看