69,382
社区成员
发帖
与我相关
我的任务
分享
CUR_DIR = $(shell pwd)
SRC = $(CUR_DIR)/src
INCLUDES = $(CUR_DIR)/include
CFLAGS = -I$(INCLUDES) -Wall -g -std=c99
VPATH = $(SRC)
#%.o : %.c
# $(CC) -c $(CFLAGS) $< -o $(OBJ_DIR)/$@
all: main
main: shrink_space.o main.o
main.o: shrink_space.o
clean:
$(RM) *.o
$(RM) main
echo "#include <stdio.h>" > tmp.c; cc -M tmp.c
echo "#include <stdio.h>" > tmp.c; cc -MM tmp.c
TARGET = foo
my-dir = $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
obj-path = $(addprefix $(OUTPUT_PATH)/,$(addsuffix .o,$(basename $(notdir $1))))
dep-path = $(addprefix $(OUTPUT_PATH)/,$(addsuffix .d,$(basename $(notdir $1))))
CFLAGS := -I$(INCLUDES)
LOCAL_PATH := $(my-dir)
OUTPUT_PATH := $(LOCAL_PATH)/out
LOCL_CFLAGS := -Wall -g -std=c99
LOCAL_SOURCE := $(wildcard $(LOCAL_PATH)/src/*.c $(LOCAL_PATH)/src/*/*.c $(LOCAL_PATH)/src/*/*/*.c)
LOCAL_OBJECTS := $(call obj-path,$(LOCAL_SOURCE))
.PHONY : all clean
all:$(TARGET)
include $(wildcard $(OUTPUT_PATH)/*.d)
define make-object
$2 : $1
gcc -c $(CFALGS) $(LOCL_CFLAGS) -MMD -MT $$@ -MF $3 -o $$@ $$<
endef
$(foreach file,$(LOCAL_SOURCE),\
$(eval $(call make-object,$(file),$(call obj-path,$(file)),$(call dep-path,$(file)))))
$(TARGET):$(LOCAL_OBJECTS)
gcc -o $@ $(LOCAL_OBJECTS)
clean:
rm -rf $(OUTPUT_PATH)/* $(TARGET)
######################################################################
# makefile 模版
#
######################################################################
###################项目路径和程序名称#################################
DIR=$(shell pwd)
BIN_DIR=$(DIR)/bin
LIB_DIR=$(DIR)/lib
SRC_DIR=$(DIR)/src
INCLUDE_DIR=$(DIR)/include
OBJ_DIR=$(DIR)/obj
DEPS_DIR=$(DIR)/deps
#PROGRAM=$(BIN_DIR)/test
PROGRAM=$(BIN_DIR)/test
###################OBJ文件及路径############################################
EXTENSION=cpp
OBJS=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))
DEPS=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))
###################include头文件路径##################################
INCLUDE=\
-I$(INCLUDE_DIR)
###################lib文件及路径######################################
###################编译选项及编译器###################################
CC=g++
CFLAGS=-Wall -W -g
LDFLAGS=
###################编译目标###########################################
.PHONY: all clean rebuild
all:$(OBJS)
@echo $(DEPS_DIR)
$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
$(DEPS_DIR)/%.d: $(SRC_DIR)/%.$(EXTENSION)
$(CC) -MM $(INCLUDE) $(CFLAGS) $< | sed -e 1's,^,$(OBJ_DIR)/,' > $@
sinclude $(DEPS)
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.$(EXTENSION)
$(CC) $< -o $@ -c $(CFLAGS) $(INCLUDE)
rebuild: clean all
clean:
rm -rf $(OBJS) $(PROGRAM)
###
#########
############ ####
############# #######
#### #### ######
### ### ##
## ## ##
## ### ###
### ### ####
#######################
######################
#####################
###
#
## ##
#########################
#########################
#########################
#########################
## ##
##
###
####
####
#########################
########################
#######################
#####################
##
### ##
##### ####
##### #######
##### ##########
##### ##############
##### ############### ##
###### ##############
##############
########
######
######
###### ##
######
###
##
## ##
######################### #####
######################### ######
######################### ######
######################### #####
##
##########
#################
####################
######################
##### #####
### ###
## ###
# ##
## ###
### ## #
#########################################
#########################################
#########################################
#########################################
##
########
###############
##################
#####################
#### ## ####
## ## ##
## ## ##
## ## ##
## ## ###
# ## ###
## ## ######
### ###########
## ##########
########
###
#########
############ ####
############# #######
#### #### ######
### ### ##
## ## ##
## ### ###
### ### ####
#######################
######################
#####################
###
#
###### ###
###### ########
#### ###########
### #############
## ###### ##
## ###### ##
## ###### ##
## ###### ###
## ###### ###
## ####### ###
############# ######
########### ######
#######
####
#######
#########
### ####
###
##### ####### #
###### ########### #
##### ############ #
### ### #### ##
##### ####
###################
#################
#############
##########
##
##
############################
##############################
##############################
##### ##
#### ##
##
###
#
## #
#########################################
#########################################
#########################################
#########################################
## ##
##
###
####
####
#########################
########################
#######################
#####################
##
###
#########
############ ####
############# #######
#### #### ######
### ### ##
## ## ##
## ### ###
### ### ####
#######################
######################
#####################
###
#
## ##
#########################
#########################
#########################
#########################
## ##
##
###
####
####
#########################
########################
#######################
#####################
##
## #
#########################################
#########################################
#########################################
#########################################
## ######
#########
#############
########## ### ##
## ########## #####
########## ###
####### ##
######
###
##
###### ###
###### ########
#### ###########
### #############
## ###### ##
## ###### ##
## ###### ##
## ###### ###
## ###### ###
## ####### ###
############# ######
########### ######
#######
# # # # #
# # ## # # #
# # # # # # #
# # # # # #
####### # # # #
# # # ## #
# # # # #
### ###### ####### # ##### #####
# # # # # # # # # #
# # # # # # # #
# # # ##### # # ##### ###
# # # # ####### # #
# # # # # # # #
### ###### ####### # # ##### #
####### # # # # # # # #####
# # # # # ## # # # # #
# # # # # # # # # # #
# ####### # # # # # ### #####
# # # ####### # # # # # #
# # # # # # ## # # # #
# # # # # # # # # #####
CUR_DIR = $(shell pwd)
SRC = $(CUR_DIR)/src
INCLUDES = $(CUR_DIR)/include
BUILD = $(CUR_DIR)/build
CFLAGS = -I$(INCLUDES) -Wall -g -std=c99
VPATH = $(SRC)
all: main
main: shrink_space.o main.o
$(CC) $(CFLAGS) $(addprefix $(BUILD)/, *) -o $@
main.o: shrink_space.o
%.o : %.c
$(CC) -c $(CFLAGS) $< -o $(BUILD)/$@
clean:
$(RM) $(BUILD)/*.o
$(RM) main
CUR_DIR = $(shell pwd)
SRC = $(CUR_DIR)/src
INCLUDES = $(CUR_DIR)/include
CFLAGS = -I$(INCLUDES) -Wall -g -std=c99
VPATH = $(SRC)
all: main
main: shrink_space.o main.o
main.o: shrink_space.o
clean:
$(RM) *.o
$(RM) main
CC = gcc
CFLAGS = -o
OBJECTS = SMBIOS.o \
Biosinfo.o
all: biosinfo
biosinfo: $(OBJECTS)
$(CC) $(addprefix ./libs/, $^) -o biosinfo // 使用./libs下的*.o
clean:
rm -f *.o
rm -f biosinfo
%.o: %.c
$(CC) -c -O3 $< -o ./libs/$(notdir $@) // 把 *.o 放到./libs下
CUR_DIR = $(shell pwd)
SRC = $(CUR_DIR)/src
INCLUDES = $(CUR_DIR)/include
OBJDIR = $(CUR_DIR)/obj
CFLAGS = -I$(INCLUDES) -Wall -g -std=c99
VPATH = $(SRC)
#%.o : %.c
# $(CC) -c $(CFLAGS) $< -o $(OBJ_DIR)/$@
all: main
main: $(OBJDIR)/shrink_space.o $(OBJDIR)/main.o
$(OBJDIR)/main.o: $(OBJDIR)/shrink_space.o
clean:
$(RM) $(OBJDIR)/*.o
$(RM) main
CUR_DIR = $(shell pwd)
SRC = $(CUR_DIR)/src
INCLUDES = $(CUR_DIR)/include
OBJDIR = $(CUR_DIR)/obj
CFLAGS = -I$(INCLUDES) -Wall -g -std=c99
VPATH = $(SRC)
#%.o : %.c
# $(CC) -c $(CFLAGS) $< -o $(OBJ_DIR)/$@
all: main mymv//引用上面的例子,这里加rm就好了,或者mv
main: $(OBJDIR)/shrink_space.o $(OBJDIR)/main.o
$(OBJDIR)/main.o: $(OBJDIR)/shrink_space.o
clean:
$(RM) $(OBJDIR)/*.o
$(RM) main
mymv:
$(MV) *.o $(OBJDIR)/*.o