1# bgq = IBM Blue Gene/Q, multiple compiler options, native MPI, ALCF FFTW2
2
3SHELL = /bin/bash
4.SUFFIXES: .cpp .u
5
6# ---------------------------------------------------------------------
7# build rules and dependencies
8# do not edit this section
9# select which compiler by editing Makefile.bgq.details
10
11include ../MAKE/MACHINES/bgq.make.details
12
13include Makefile.package.settings
14include Makefile.package
15
16EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
17EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
18EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
19EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS)
20EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS)
21
22# Path to src files
23
24vpath %.cpp ..
25vpath %.h ..
26
27# Link target
28
29$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS)
30	$(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@
31	$(SIZE) $@
32
33# Library targets
34
35$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS)
36	@rm -f ../$(ARLIB)
37	$(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ)
38	@rm -f $(ARLIB)
39	@ln -s ../$(ARLIB) $(ARLIB)
40
41$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS)
42	$(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \
43		$(OBJ) $(EXTRA_LIB) $(LIB)
44	@rm -f $(SHLIB)
45	@ln -s ../$(SHLIB) $(SHLIB)
46
47# Compilation rules
48
49%.o:%.cpp
50	$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $<
51
52# Individual dependencies
53
54depend : fastdep.exe $(SRC)
55	@./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1
56
57fastdep.exe: ../DEPEND/fastdep.c
58	cc -O -o $@ $<
59
60sinclude .depend
61