make example

PROJECT = 10.10.alarm                                                                                                                                                 

CFLAG = -Wall -g -I ../include
CXXFLAG = -Wall -g
LFLAG = -Wall -g

 

LDFLAGS=-Wl,-rpath,/opt/mysql/lib/mysql,-R,/opt/libmylib/bin # 指定运行时动态库加载绝对路径


CC = gcc
CXX = g++
LNK = gcc

EXE = $(PROJECT)
OBJDIR = ./obj

# precompiled header setting
PCH_H = pch.h # precompiled header file
PCH   = $(OBJDIR)/pch.h.gch # precompiled header file output

SRCS = 10.10.c ../lib/error.c
OBJS = $(OBJDIR)/10.10.o    $(OBJDIR)/error.o
SYSLIB =

CP = cp -v
RM = rm -f


.SUFFIXES:
.SUFFIXES: .o .c .cxx


# The meaning of "$<":                                                                                                                       
# BSD Pmake: the implied source
# GNU make: the first prerequisite

#.c.o:
#   $(CC) $(CFLAG) -c $<

#.c.o:
#   $(CC) $(CFLAG) -c $<

#.cpp.o:
#   $(CXX) $(CXXFLAG) -c $<


all: $(PCH) $(EXE)

#                 $>                    $^
# BSD Pmake     all sources     not defined
# GNU make      not defined     all prerequisites
# Both interpret "$@" as target

$(EXE): $(OBJS)
    $(LNK) $(LFLAG) -o $@ $> $^ $(LIBS)

# precompiled header file
# $(OBJS): $(PCH)
$(OBJDIR)/%.o : ./%.c
    $(CC) -c $(CFLAGS) -o $@ $< $(INC) $(INC1)

$(OBJDIR)/%.o : ../lib/%.c
    $(CC) -c $(CFLAGS) -o $@ $< $(INC) $(INC1)


$(PCH): $(PCH_H) | $(OBJDIR)
    $(CC) $(CFLAG) $> $^ -o $@

$(OBJDIR):
    mkdir $@

clean:
    $(RM) $(PCH) $(OBJS)
    rm -rf obj
# For Both UNIX-like OS and Microsoft Windows (MinGW/Cygwin)
    $(RM) $(EXE) $(EXE).exe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值