Skip to content

Commit

Permalink
generate standalone Makefile for users to build examples
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelBrim committed Nov 21, 2022
1 parent 2a3c779 commit c4ac035
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 1 deletion.
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,7 @@ AC_CONFIG_FILES([Makefile
client/unifyfs-static.pc
examples/Makefile
examples/src/Makefile
examples/src/Makefile.examples
extras/Makefile
extras/unifyfs.conf
t/Makefile
Expand Down
7 changes: 6 additions & 1 deletion examples/src/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
makefiledir = $(datadir)/makefiles

makefile_DATA = Makefile.examples

testutil_headers = \
testutil.h \
testutil_rdwr.h
Expand Down Expand Up @@ -61,8 +65,9 @@ endif #HAVE_FORTRAN

endif #HAVE_GOTCHA

CLEANFILES = $(libexec_PROGRAMS)
CLEANFILES = Makefile.examples $(libexec_PROGRAMS)

EXTRA_DIST = Makefile.examples.in

# Common compile/link flag definitions

Expand Down
62 changes: 62 additions & 0 deletions examples/src/Makefile.examples.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
UNIFYFS_INSTALL = @prefix@

MPICC ?= mpicc

UNIFYFS_CFG = $(UNIFYFS_INSTALL)/bin/unifyfs-config
UNIFYFS_PKGCFG = PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(UNIFYFS_INSTALL)/lib/pkgconfig pkg-config

GOTCHA_PROGRAMS = \
app-btio-gotcha \
app-mpiio-gotcha \
app-tileio-gotcha \
checkpoint-restart-gotcha \
multi-write-gotcha \
read-gotcha \
read-data-gotcha \
simul-gotcha \
transfer-gotcha \
write-gotcha \
writeread-gotcha \
write-transfer-gotcha

STATIC_PROGRAMS += \
app-btio-static \
app-mpiio-static \
app-tileio-static \
checkpoint-restart-static \
multi-write-static \
read-static \
read-data-static \
simul-static \
transfer-static \
write-static \
writeread-static \
write-transfer-static

LIBS += -lm -lrt

.PHONY: default all clean gotcha static

default: all

all: gotcha static

clean:
$(RM) *.o
$(RM) $(GOTCHA_PROGRAMS)
$(RM) $(STATIC_PROGRAMS)

gotcha: $(GOTCHA_PROGRAMS)

static: $(STATIC_PROGRAMS)

testutil.o: testutil.c
$(MPICC) $(CPPFLAGS) $(CFLAGS) `$(UNIFYFS_PKGCFG) --cflags unifyfs-api` -c -o testutil.o testutil.c

%-gotcha: %.c testutil.o
$(MPICC) $(CPPFLAGS) $(CFLAGS) `$(UNIFYFS_PKGCFG) --cflags unifyfs-api` -c -o $<.o $<
$(MPICC) -o $@ $<.o testutil.o $(LDFLAGS) `$(UNIFYFS_PKGCFG) --libs unifyfs` $(LIBS)

%-static: %.c testutil.o
$(MPICC) $(CPPFLAGS) $(CFLAGS) `$(UNIFYFS_PKGCFG) --cflags unifyfs-static` -c -o $<.o $<
$(MPICC) $(LDFLAGS) `$(UNIFYFS_PKGCFG) --libs-only-L unifyfs-static` -o $@ $<.o testutil.o `$(UNIFYFS_PKGCFG) --libs-only-other --libs-only-l unifyfs-static` $(LIBS)

0 comments on commit c4ac035

Please sign in to comment.