diff --git a/.gitignore b/.gitignore index 0910d07e5..e139f56e7 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ local/ include/config.h include/dmtcp.h include/stamp-h1 +dmtcp/manpages/*.gz dmtcp/src/dmtcp_checkpoint dmtcp/src/dmtcp_launch dmtcp/src/dmtcp_command @@ -63,3 +64,5 @@ build/ mpi-proxy-split/mpi-wrappers/p2p-deterministic.h mpi-proxy-split/mpi-wrappers/mana_p2p_update_logs + +manpages/*.gz diff --git a/Makefile.in b/Makefile.in index d71824b3d..dace9f0a9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -46,7 +46,7 @@ default: display-build-env add-git-hooks mana_prereqs all: default mana: dmtcp - cd mpi-proxy-split && $(MAKE) install && $(MAKE) -j tests + cd mpi-proxy-split && $(MAKE) $(INSTALL_FLAGS) && $(MAKE) -j tests dmtcp: cd dmtcp && $(MAKE) @@ -63,8 +63,9 @@ create-dirs: install: all create-dirs cd dmtcp && make DESTDIR=$(DESTDIR) $(INSTALL_FLAGS) - cd mpi-proxy-split && make DESTDIR=$(DESTDIR) $(INSTALL_FLAGS) - cd manpages && make DESTDIR=$(DESTDIR) $(INSTALL_FLAGS) + cd mpi-proxy-split && make DESTDIR=$(prefix) $(INSTALL_FLAGS) + cd manpages && make DESTDIR=$(prefix) $(INSTALL_FLAGS) + $(INSTALL) bin/mana* $(bindir) uninstall: cd dmtcp && make DESTDIR=$(DESTDIR) $(UNINSTALL_FLAGS) diff --git a/manpages/Makefile.in b/manpages/Makefile.in index 52f4a8940..8c8a96acb 100644 --- a/manpages/Makefile.in +++ b/manpages/Makefile.in @@ -1,6 +1,7 @@ mandir=@mandir@ PANDOC=@PANDOC@ -INSTALL_DATA = @INSTALL_DATA@ +INSTALL=@INSTALL@ +INSTALL_DATA=@INSTALL_DATA@ MANPAGES = mana.1.gz @@ -14,7 +15,7 @@ default: ${MANPAGES} fi %.1.gz: %.1 - gzip --force --keep $< + gzip --force < $< > $<.gz install: ${MANPAGES} $(INSTALL) -d $(DESTDIR)$(mandir)/man1 diff --git a/mpi-proxy-split/Makefile b/mpi-proxy-split/Makefile index 38c3b0283..444c8edc7 100644 --- a/mpi-proxy-split/Makefile +++ b/mpi-proxy-split/Makefile @@ -45,6 +45,11 @@ endif ifndef DMTCP_ROOT DMTCP_ROOT=${MANA_ROOT}/dmtcp endif + +ifeq ($(DESTDIR),) + DESTDIR=${shell readlink -f ${MANA_ROOT}} +endif + DMTCP_INCLUDE=${DMTCP_ROOT}/include JALIB_INCLUDE=${DMTCP_ROOT}/jalib @@ -56,11 +61,9 @@ override CXXFLAGS += -fPIC -I${DMTCP_INCLUDE} -I${JALIB_INCLUDE} \ # ${WRAPPERS_SRCDIR}/libmpiwrappers.a ia a prerequisite for libmana.so # Always do 'make default' or 'make install' -- not 'make libmana.so' default: ${MANA_COORD_OBJS} - make -C ${WRAPPERS_SRCDIR} libmpiwrappers.a + @make -C ${WRAPPERS_SRCDIR} + @make -C ${LOWER_HALF_SRCDIR} @make libmana.so - @make -C ${LOWER_HALF_SRCDIR} lh_proxy - @make -C ${LOWER_HALF_SRCDIR} lh_proxy_default_address - @make -C ${WRAPPERS_SRCDIR} libmpistub.so # ${WRAPPERS_SRCDIR}/libmpiwrappers.a made in install/default before libmana.so libmana.so: ${LIBOBJS} ${WRAPPERS_SRCDIR}/libmpiwrappers.a @@ -113,13 +116,11 @@ ${MANA_ROOT}/bin/mana_p2p_update_logs: ${WRAPPERS_SRCDIR}/mana_p2p_update_logs.c # which is a prerequisite for ${MANA_ROOT}/lib/dmtcp/libmana.so # Always do 'make default' or 'make install' -- not 'make libmana.so' # MANA_COORD_OBJS needed for 'make mana' at top level. -install: ${MANA_COORD_OBJS} - make -C ${WRAPPERS_SRCDIR} libmpiwrappers.a - make ${MANA_ROOT}/lib/dmtcp/libmana.so - make ${MANA_ROOT}/lib/dmtcp/libmpistub.so - make ${MANA_ROOT}/bin/lh_proxy - make ${MANA_ROOT}/bin/gethostbyname_proxy - make ${MANA_ROOT}/bin/mana_p2p_update_logs + +install: default + $(INSTALL) libmana.so $(DESTDIR)/lib/dmtcp/ + make -C ${WRAPPERS_SRCDIR} DESTDIR=$(DESTDIR) install + make -C ${LOWER_HALF_SRCDIR} DESTDIR=$(DESTDIR) install tidy: rm -f *~ .*.swp dmtcp_restart_script*.sh ckpt_*.dmtcp @@ -128,7 +129,7 @@ tidy: clean: tidy rm -f ${LIBOBJS} ${MANA_COORD_OBJS} rm -f libmana.so - rm -f ${MANA_ROOT}/lib/dmtcp/libmana.so + rm -f ${DESTDIR}/lib/dmtcp/libmana.so @cd ${LOWER_HALF_SRCDIR} && make clean @cd ${WRAPPERS_SRCDIR} && make clean diff --git a/mpi-proxy-split/Makefile_config.in b/mpi-proxy-split/Makefile_config.in index dbf4ad7bf..477d501ee 100644 --- a/mpi-proxy-split/Makefile_config.in +++ b/mpi-proxy-split/Makefile_config.in @@ -4,6 +4,7 @@ MANA_USE_LH_FIXED_ADDRESS = @MANA_USE_LH_FIXED_ADDRESS@ CFLAGS = @CFLAGS@ CXXFLAGS = @CXXFLAGS@ +INSTALL = @INSTALL@ ifeq ($(findstring cori,$(PLATFORM)),cori) IS_CORI = 1 diff --git a/mpi-proxy-split/lower-half/Makefile b/mpi-proxy-split/lower-half/Makefile index a373aa64d..5a2ed380f 100644 --- a/mpi-proxy-split/lower-half/Makefile +++ b/mpi-proxy-split/lower-half/Makefile @@ -22,6 +22,10 @@ ifndef PLUGIN_ROOT PLUGIN_ROOT=.. endif +ifeq ($(DESTDIR),) + DESTDIR=${shell readlink -f ${MANA_ROOT}} +endif + DMTCP_INCLUDE=${DMTCP_ROOT}/include JALIB_INCLUDE=${DMTCP_ROOT}/jalib PLUGIN_INCLUDE=${PLUGIN_ROOT} @@ -34,20 +38,20 @@ PROXY_LD_FLAGS=-static -Wl,--wrap -Wl,__munmap -Wl,--wrap -Wl,shmat -Wl,--wrap - TEXTSEG_ADDR_FLAG=-Wl,-Ttext-segment=E000000 -default: ${PROXY_BIN} ${PROXY_BIN_DEFADDR} ${STATIC_GETHOSTBYNAME} +default: ${STATIC_GETHOSTBYNAME} ${PROXY_BIN} ${PROXY_BIN_DEFADDR} # We should remove the special case for Cori, once we know this works on Cori. ifeq ($(findstring cori,$(PLATFORM)),cori) STATIC_GETHOSTBYNAME= + GETHOSTBYNAME_PROXY= else ifeq ($(findstring gert,$(PLATFORM)),gert) STATIC_GETHOSTBYNAME= + GETHOSTBYNAME_PROXY= else STATIC_GETHOSTBYNAME=gethostbyname-static/gethostbyname_static.o -${STATIC_GETHOSTBYNAME}: gethostbyname-static/gethostbyname_static.c \ - gethostbyname-static/gethostbyname_proxy.c - cd gethostbyname-static && make gethostbyname_static.o - cd gethostbyname-static && make gethostbyname_proxy - cp -f gethostbyname-static/gethostbyname_proxy ${MANA_ROOT}/bin/ + GETHOSTBYNAME_PROXY=gethostbyname-static/gethostbyname_proxy +${STATIC_GETHOSTBYNAME}: + @make -C gethostbyname-static gethostbyname_static.o install endif .c.o: @@ -79,12 +83,12 @@ ${PROXY_BIN}: ${PROXY_OBJS} ${LIBPROXY}.a ${STATIC_GETHOSTBYNAME} ${PROXY_BIN_DEFADDR}: ${PROXY_OBJS} ${LIBPROXY}.a ${STATIC_GETHOSTBYNAME} if ${MPICC} -v 2>&1 | grep -q 'MPICH version'; then \ - rm -f tmp.sh; \ + rm -f tmp1.sh; \ ${MPICC} -show ${PROXY_LD_FLAGS} -o $@ -Wl,-start-group \ $^ ${MPI_LD_FLAG} -lrt -lpthread -lc -Wl,-end-group | \ - sed -e 's^-lunwind ^ ^'> tmp.sh; \ - sh tmp.sh; \ - rm -f tmp.sh; \ + sed -e 's^-lunwind ^ ^'> tmp1.sh; \ + sh tmp1.sh; \ + rm -f tmp1.sh; \ else \ ${MPICC} ${PROXY_LD_FLAGS} -o $@ -Wl,-start-group \ $^ ${MPI_LD_FLAG} -lrt -lpthread -lc -Wl,-end-group; \ @@ -93,8 +97,8 @@ ${PROXY_BIN_DEFADDR}: ${PROXY_OBJS} ${LIBPROXY}.a ${STATIC_GETHOSTBYNAME} ${LIBPROXY}.a: ${LIBPROXY_OBJS} ar cr $@ $^ -install: ${PROXY_BIN} ${PROXY_BIN_DEFADDR} ${STATIC_GETHOSTBYNAME} - cp -f $^ ${MANA_ROOT}/bin/ +install: ${PROXY_BIN} ${PROXY_BIN_DEFADDR} ${GETHOSTBYNAME_PROXY} + $(INSTALL) $^ $(DESTDIR)/bin tidy: rm -f *~ .*.swp dmtcp_restart_script*.sh ckpt_*.dmtcp @@ -102,8 +106,8 @@ tidy: clean: tidy rm -f ${PROXY_BIN} ${PROXY_BIN_DEFADDR} ${LIBPROXY}.a ${PROXY_OBJS} ${LIBPROXY_OBJS} - rm -f ${MANA_ROOT}/bin/${PROXY_BIN} - rm -f ${MANA_ROOT}/bin/${PROXY_BIN_DEFADDR} + rm -f ${DESTDIR}/bin/${PROXY_BIN} + rm -f ${DESTDIR}/bin/${PROXY_BIN_DEFADDR} if test -d gethostbyname-static; then \ cd gethostbyname-static && make clean; \ fi diff --git a/mpi-proxy-split/lower-half/gethostbyname-static/Makefile b/mpi-proxy-split/lower-half/gethostbyname-static/Makefile index 80ad07a64..740ec16c7 100644 --- a/mpi-proxy-split/lower-half/gethostbyname-static/Makefile +++ b/mpi-proxy-split/lower-half/gethostbyname-static/Makefile @@ -1,5 +1,19 @@ +include ../../Makefile_config CFLAGS=-g3 -O0 +# Modify if your MANA_ROOT is located elsewhere. +ifndef MANA_ROOT + MANA_ROOT=../../.. +endif +# Modify if your DMTCP_ROOT is located elsewhere. +ifndef DMTCP_ROOT + DMTCP_ROOT=${MANA_ROOT}/dmtcp +endif + +ifeq ($(DESTDIR),) + DESTDIR=${MANA_ROOT} +endif + # getaddrinfo ntp-wwv.nist.gov time: sin_port: 9472; sin_addr: 132.163.97.5 test: a.out ./a.out localhost @@ -19,13 +33,12 @@ gethostbyname_proxy: gethostbyname_proxy.c clean: rm -f a.out *.o gethostbyname_proxy - rm -f ${MANA_ROOT}/bin/gethostbyname_proxy + rm -f ${DESTDIR}/bin/gethostbyname_proxy dist: clean dir=`basename $$PWD` && cd .. && tar zcvf ./$$dir.tar.gz ./$$dir dir=`basename $$PWD` && ls -l ../$$dir.tar.gz -install: - make gethostbyname_proxy - cp -f gethostbyname_proxy ../../../bin/ +install: gethostbyname_proxy + $(INSTALL) $< $(DESTDIR)/bin diff --git a/mpi-proxy-split/mpi-wrappers/Makefile b/mpi-proxy-split/mpi-wrappers/Makefile index 556b5d86f..8d4e2ea4e 100644 --- a/mpi-proxy-split/mpi-wrappers/Makefile +++ b/mpi-proxy-split/mpi-wrappers/Makefile @@ -29,6 +29,11 @@ endif ifndef DMTCP_ROOT DMTCP_ROOT=${MANA_ROOT}/dmtcp endif + +ifeq ($(DESTDIR),) + DESTDIR=${MANA_ROOT} +endif + DMTCP_INCLUDE=${DMTCP_ROOT}/include JALIB_INCLUDE=${DMTCP_ROOT}/jalib @@ -136,22 +141,22 @@ tidy: rm -f *~ .*.swp dmtcp_restart_script*.sh ckpt_*.dmtcp rm -rf ckpt_rank_* -install: libmpistub.so mana_p2p_update_logs - cp -f libmpistub.so ${MANA_ROOT}/lib/dmtcp/ - cd ${MANA_ROOT}/lib/dmtcp && \ +install: default + $(INSTALL) libmpistub.so $(DESTDIR)/lib/dmtcp + cd $(DESTDIR)/lib/dmtcp && \ ln -sf libmpistub.so libmpich_intel.so.3.0.1 && \ ln -sf libmpich_intel.so.3.0.1 libmpich_intel.so.3 && \ ln -sf libmpistub.so libmpich_gnu_82.so.3.0.1 && \ ln -sf libmpich_gnu_82.so.3.0.1 libmpich_gnu_82.so.3 - cd ${MANA_ROOT}/lib/dmtcp && \ + cd $(DESTDIR)/lib/dmtcp && \ ln -sf libmpistub.so libpmi.so.0.5.0 && \ ln -sf libpmi.so.0.5.0 libpmi.so.0 - cp -f mana_p2p_update_logs ${MANA_ROOT}/bin/ + $(INSTALL) mana_p2p_update_logs $(DESTDIR)/bin clean: tidy rm -f ${LIBWRAPPER_OBJS} rm -f ${LIBNAME}.a libmpistub.so - rm -f ${MANA_ROOT}/lib/dmtcp/libmpistub.so + rm -f ${DESTDIR}/lib/dmtcp/libmpistub.so rm -f mpi_stub_wrappers.c rm -f p2p-deterministic.h rm -f mpi_unimplemented_wrappers.cpp @@ -159,7 +164,7 @@ clean: tidy rm -f libmpich_intel.so.3.0.1 libmpich_intel.so.3 rm -f libmpich_gnu_82.so.3.0.1 libmpich_gnu_82.so.3 rm -f libpmi.so.3.0.1 libpmi.so.0 - cd ${MANA_ROOT}/lib/dmtcp && rm -f libmpich_gnu_82.so.* \ + cd ${DESTDIR}/lib/dmtcp && rm -f libmpich_gnu_82.so.* \ libmpich_intel.so.* libpmi.so.* distclean: clean