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