Skip to content

Commit

Permalink
Overhauls how 'make install' works.
Browse files Browse the repository at this point in the history
Now Easel only installs miniapps and their man pages.  It no longer
installs .h headers or libeasel.a. We've really never used it that
way.

Variable substitutions in man pages (EASEL_VERSION, etc) are now done
by ./configure, not by outmoded sedition script. Updated man page
headers and trailers, made consistent with HMMER style.

'make install' is now always verbose; quiet beautifications removed.

Removed 'make dist'.

Removed ifneq's from Makefiles. Aiming to have a checkout of github
master branch act identically to a tarball, which means we won't
remove any directories or modify any files when we make a release
tarball. This makes the ifneq checks for documentation/, etc obsolete.

Removed LICENSE.sh and LICENSE.tag.
  • Loading branch information
cryptogenomicon committed Apr 3, 2018
1 parent 5813702 commit bece21e
Show file tree
Hide file tree
Showing 33 changed files with 897 additions and 915 deletions.
1 change: 1 addition & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ contributors include:

Free Software Foundation, Inc. configure
(various authors) autoconf macros in m4/
FreeBSD easel.c::esl_strsep()
Stephen Moshier esl_sse.c,esl_vmx.c
Julien Pommier esl_sse.c,esl_vmx.c
Sun Microsystems, Inc. esl_stats.c::esl_erfc()
Expand Down
5 changes: 0 additions & 5 deletions LICENSE.sh.in

This file was deleted.

7 changes: 0 additions & 7 deletions LICENSE.tag

This file was deleted.

91 changes: 13 additions & 78 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,10 @@ check: ${ALL_UTESTS} .FORCE
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} check
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} check

# `make dcheck`: run developer testsuite, save output in testsuite/dcheck.report
dcheck:
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} dcheck

pdf:
${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} pdf

Expand Down Expand Up @@ -586,39 +590,24 @@ ${ALL_EXAMPLES}: libeasel.a



# install: installs libeasel.a in ${libdir}/
# installs Easel headers in ${includedir}/
# installs miniapp binaries in ${bindir}/
# install: miniapp binaries in ${bindir}/
# - we don't install headers or libeasel.a; we never use it that way.
# instead, easel is included as a subdir of hmmer, infernal projects)
# - always verbose, no quiet beautification
#
install:
${INSTALL} -d ${DESTDIR}${bindir}
${INSTALL} -d ${DESTDIR}${libdir}
${INSTALL} -d ${DESTDIR}${includedir}
${INSTALL} -m 0644 libeasel.a ${DESTDIR}${libdir}/
for file in ${HDRS}; do\
${INSTALL} -m 0644 ${srcdir}/$$file ${DESTDIR}${includedir}/ ;\
done
${INSTALL} -m 0644 esl_config.h ${DESTDIR}${includedir}/
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} install
${INSTALL} -d ${DESTDIR}${man1dir}
${MAKE} -C miniapps install

# "make uninstall" reverses the steps of "make install"
#
uninstall:
-rm -f ${DESTDIR}${libdir}/libeasel.a
for file in ${HDRS}; do\
rm -f ${DESTDIR}${includedir}/$$file;\
done
rm -f ${DESTDIR}${includedir}/esl_config.h
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} uninstall
${MAKE} -C miniapps uninstall


# "make clean" removes almost everything except configuration files
#
clean:
#Use 'ifneq' instead of 'test -e' because the '+@' in QUIET_SUBDIR0 can't
#be passed to the shell. Note that ifneq breaks if indented.
ifneq (,$(wildcard ./documentation/.))
${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} clean
endif
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} clean
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} clean
${QUIET}-rm -f ${ALL_OBJS} libeasel.a
Expand All @@ -637,72 +626,18 @@ ifndef V
endif


distclean: clean
#See above for explanation of 'ifneq' usage
ifneq (,$(wildcard ./documentation/.))
distclean: clean
${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} distclean
endif
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} distclean
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} distclean
${QUIET}-rm -f esl_config.h decoy_config.h
${QUIET}-rm -rf autom4te.cache
${QUIET}-rm -f LICENSE.sh
${QUIET}-rm -f Makefile

gitclean: distclean
${QUIET}-rm -f configure


# 'make REPOSITORY=... dist' : create a new distribution tarball
#
dist:
# Make sure we pointed the make dist to a subversion repository
@if test x${REPOSITORY} = 'x'; then\
echo "REPOSITORY isn't set; use make REPOSITORY=... dist";\
exit 1;\
fi
# Delete any old versions of the same release
@if test -d ../${BASENAME}-${RELEASE}; then rm -rf ../${BASENAME}-${RELEASE}; fi
@if test -e ../${BASENAME}-${RELEASE}.tar; then rm -f ../${BASENAME}-${RELEASE}.tar; fi
@if test -e ../${BASENAME}-${RELEASE}.tar.Z; then rm -f ../${BASENAME}-${RELEASE}.tar.Z; fi
@if test -e ../${BASENAME}-${RELEASE}.tar.gz; then rm -f ../${BASENAME}-${RELEASE}.tar.gz; fi
# Export the release from Subversion control
svn export ${REPOSITORY} ../${BASENAME}-${RELEASE}
# Make the configure script from configure.ac
(cd ../${BASENAME}-${RELEASE}; autoconf)
# We'll need some basic Makefiles
(cd ../${BASENAME}-${RELEASE}/; ./configure)
# Set file permissions.
find ../${BASENAME}-${RELEASE} -type f -exec chmod +r {} \;
# Compile the PDF documentation and move it to top level dir
(cd ../${BASENAME}-${RELEASE}/documentation/; make pdf)
mv ../${BASENAME}-${RELEASE}/documentation/current.pdf ../${BASENAME}-${RELEASE}/Userguide.pdf
# Attach license stamps by replacing LICENSE keyword everywhere
find ../${BASENAME}-${RELEASE} -type f -exec devkit/sedition-pp LICENSE LICENSE.tag {} \;
# Other keyword replacements
devkit/sedition RELEASE ${RELEASE} RELEASEDATE ${RELEASEDATE} COPYRIGHT ${COPYRIGHT} ../${BASENAME}-${RELEASE}/00README
devkit/sedition RELEASE ${RELEASE} ../${BASENAME}-${RELEASE}/INSTALL
# Cleanup
(cd ../${BASENAME}-${RELEASE}/; make implode)
(cd ../${BASENAME}-${RELEASE}/; make distclean)
# Packaging
(cd ..; tar cvf ${BASENAME}-${RELEASE}.tar ${BASENAME}-${RELEASE})
(cd ..; ${COMPRESS} ${BASENAME}-${RELEASE}.tar)



# `make dcheck`: run developer testsuite, save output in testsuite/dcheck.report
dcheck:
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} dcheck

# The "implode" target is used when we've got Easel as a subdirectory
# of a larger project, like Infernal or HMMER, and we're building a
# distribution for that larger project. We remove any "personal
# information" from Easel. Eventually that'd include our bug tracking,
# for instance, but right now there's nothing to do.
implode:
-rm -f 00CHECKLIST
-rm -f LICENSE.tag

TAGS:
./makeTAGS.sh
Expand Down
Loading

0 comments on commit bece21e

Please sign in to comment.