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