1CC          = @CC@
2AR          = @AR@
3LIBNAME     = @LIBNAME@
4RANLIB      = @RANLIB@
5srcdir      = @srcdir@
6CC_SHL      = @CC_SHL@
7SHLIBNAME   = @SHLIBNAME@
8
9INCLUDE_DIR = -I@MPI_INCLUDE_DIR@ -I../../include -I${srcdir}/../../mpi-io -I${srcdir}/../../adio/include -I../../adio/include
10CFLAGS      = -DHAVE_MPI_INFO_SRC @CFLAGS@ $(MPIOPROFILE) $(INCLUDE_DIR)
11
12top_builddir  = @master_topbuild_dir@
13LIBTOOL       = @LIBTOOL@
14C_COMPILE_SHL = $(CC_SHL)
15
16@VPATH@
17
18MPIO_OBJECTS = info_create.o info_dup.o info_get.o info_getnth.o \
19      info_set.o info_delete.o info_free.o info_getnks.o info_getvln.o \
20      info_c2f.o info_f2c.o
21
22MPIO_TMP_POBJECTS = info_create.p info_dup.p info_get.p info_getnth.p \
23      info_set.p info_delete.p info_free.p info_getnks.p info_getvln.p \
24      info_c2f.p info_f2c.p
25
26MPIO_REAL_POBJECTS = _info_create.o _info_dup.o _info_get.o _info_getnth.o \
27      _info_set.o _info_delete.o _info_free.o _info_getnks.o _info_getvln.o \
28      _info_c2f.o _info_f2c.o
29
30all: $(LIBNAME)
31	@if [ "@ENABLE_SHLIB@" != "none" ] ; then \
32	    $(MAKE) $(SHLIBNAME).la ;\
33	fi
34
35.SUFFIXES: $(SUFFIXES) .p .sp .lo
36
37.c.o:
38	$(CC) $(CFLAGS) -c $<
39
40.c.lo:
41	$(C_COMPILE_SHL) $(CFLAGS) -c $< -o _s$*.o
42	@mv -f _s$*.o $*.lo
43
44.c.p:
45	@cp $(srcdir)/$*.c _$*.c
46	$(CC) $(CFLAGS) -c _$*.c
47	@rm -f _$*.c
48
49.c.sp:
50	$(C_COMPILE_SHL) $(CFLAGS) -c $< -o _$*.lo
51
52profile: $(MPIO_REAL_POBJECTS)
53	$(AR) $(LIBNAME) $(MPIO_REAL_POBJECTS)
54	$(RANLIB) $(LIBNAME)
55	@if [ "@ENABLE_SHLIB@" != "none" ] ; then \
56	    $(MAKE) P$(SHLIBNAME).la ;\
57	fi
58	@rm -f _*.o
59
60$(LIBNAME): $(MPIO_OBJECTS)
61	$(AR) $(LIBNAME) $(MPIO_OBJECTS)
62	$(RANLIB) $(LIBNAME)
63
64MPIO_LOOBJECTS = $(MPIO_OBJECTS:.o=.lo)
65$(SHLIBNAME).la: $(MPIO_LOOBJECTS)
66	$(AR) $(SHLIBNAME).la $(MPIO_LOOBJECTS)
67
68# --------------------------------------------------------------------------
69# We use P$(SHLBNAME) simply to distinguish the regular lib build from the
70# profiling library build
71MPIO_LOPOBJECTS = $(MPIO_REAL_POBJECTS:.o=.lo)
72MPIO_TMP_LOPOBJECTS = ${MPIO_TMP_POBJECTS:.p=.sp}
73P$(SHLIBNAME).la: $(MPIO_TMP_LOPOBJECTS)
74	$(AR) $(SHLIBNAME).la $(MPIO_LOPOBJECTS)
75# --------------------------------------------------------------------------
76
77clean:
78	@rm -f *.o *.lo *.gcno *.gcda *.bb *.bbg
79	@rm -f ${srcdir}/*.gcno ${srcdir}/*.gcda
80	@rm -f ${srcdir}/*.bb ${srcdir}/*.bbg
81
82
83# Rules for the profiling objects
84info_create.o: infocreate.c
85	$(CC) $(CFLAGS) -c $(srcdir)/infocreate.c -o _info_create.o
86info_dup.o: infodup.c
87	$(CC) $(CFLAGS) -c $(srcdir)/infodup.c -o _info_dup.o
88info_get.o: infoget.c
89	$(CC) $(CFLAGS) -c $(srcdir)/infoget.c -o _info_get.o
90info_getnth.o: infogetnth.c
91	$(CC) $(CFLAGS) -c $(srcdir)/infogetnth.c -o _info_getnth.o
92info_set.o: infoset.c
93	$(CC) $(CFLAGS) -c $(srcdir)/infoset.c -o _info_set.o
94info_delete.o: infodelete.c
95	$(CC) $(CFLAGS) -c $(srcdir)/infodelete.c -o _info_delete.o
96info_free.o: infofree.c
97	$(CC) $(CFLAGS) -c $(srcdir)/infofree.c -o _info_free.o
98info_getnks.o: infogetnks.c
99	$(CC) $(CFLAGS) -c $(srcdir)/infogetnks.c -o _info_getnks.o
100info_getvln.o: infogetvln.c
101	$(CC) $(CFLAGS) -c $(srcdir)/infogetvln.c -o _info_getvln.o
102info_c2f.o: infoc2f.c
103	$(CC) $(CFLAGS) -c $(srcdir)/infoc2f.c -o _info_c2f.o
104info_f2c.o: infof2c.c
105	$(CC) $(CFLAGS) -c $(srcdir)/infof2c.c -o _info_f2c.o
106