Makefile的例子:Sequential和OpenMP版本(make)

转载请注明出处:http://blog.csdn.net/c602273091

Sequential

这是没有加OpenMp版本的Makefile,使用的时候直接make就可以生成需要的文件,make clean就会把里面提到的该目录下的文件删除。

PROJ = matrix_mul
CC = g++

CFLAGS = -c -g -Wall -I/opt/local/include 
LDFLAGS = -L/opt/local/lib 
LIBS = -lcppunit -ldl
OBJS = $(patsubst %.cpp,%.o,$(wildcard *.cpp))

all: $(PROJ)

$(PROJ): $(OBJS)
        $(CC) $(LDFLAGS) $^ -o $@ $(LIBS) $(VAR)

%.o: %.cpp
        $(CC) $(CFLAGS) $< -o $@

%.o: %.cpp %.h
        $(CC) $(CFLAGS) $< -o $@

clean:
        rm -f $(PROJ) $(OBJS) $(TEST_CASES) *.xml

OpenMP

OpenMP版本的:生成了main这个执行文件,编译过程会把main需要的所有的c和h都加进去。

PROJ = main
CC = g++

CFLAGS = -c -g -Wall -I/opt/local/include -I$(HOME)/cppunit/include
LDFLAGS = -L/opt/local/lib -L$(HOME)/cppunit/lib
LIBS = -lcppunit -ldl
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
OMPFLAGS = -fopenmp
SIMDFLAGS = -msse2 -msse3 -mavx -O2 -lm

all: $(PROJ)

$(PROJ): $(OBJS)
        $(CC) $(OMPFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)

%.o : %.c
        $(CC) $(OMPFLAGS) $(CFLAGS) $< -o $@ $(SIMDFLAGS)

%.o : %.c %.h
        $(CC) $(OMPFLAGS)  $(CFLAGS) $< -o $@ $(SIMDFLAGS)

clean:
        rm -f $(PROJ) $(OBJS)
posted @ 2018-05-16 11:12  雪球球  阅读(228)  评论(0)    收藏  举报