Skip to content
Snippets Groups Projects
Commit 271f11ce authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

MNT: Use a generic install routine for exeinstall, hdrinstall, libinstall,

tclinstall, etc etc. Clean up rules.mk
parent 6cab1637
No related branches found
No related tags found
No related merge requests found
...@@ -42,150 +42,90 @@ master-install-script: ...@@ -42,150 +42,90 @@ master-install-script:
exit 4 ; \ exit 4 ; \
fi; fi;
@${MAKE} all @${MAKE} all
@${MAKE} install-non-src-files
install-non-src-files:
@${MAKE} exeinstall @${MAKE} exeinstall
@${MAKE} install-non-src-exe-files
install-non-src-exe-files:
@${MAKE} hdrinstall @${MAKE} hdrinstall
@${MAKE} libinstall @${MAKE} libinstall
@${MAKE} tclinstall @${MAKE} tclinstall
@${MAKE} pyinstall @${MAKE} pyinstall
@${MAKE} datainstall @${MAKE} datainstall
tclinstall: # Generic routine used to install
@echo " " # XFILES, PYFILES, SCRIPTS, etc etc
@echo "Installing tcl scripts" # Expects four arguments:
@if [ ! -d ${dest_TCLDIR} ] ; then \ # - $1: Label, just used to print a descriptive message
${MKDIR} -p ${dest_TCLDIR} ; \ # - $2: Destination directory for installation
${CHMOD} g+w ${dest_TCLDIR} ; \ # - $3: Permission mask to apply to all installed files (e.g. 0755)
fi # - $4: Space-separated list of target files/directories to install
@install_yn=no; \ define _x_install =
for tclfile in ${TCLFILES} verylongdummyname ; do \ echo Installing $(1)
if [ -f $$tclfile ] ; then \ if [ ! -d $(2) ] ; then \
install_yn=yes; \ ${MKDIR} -p $(2) ; \
echo ${INSTALL} -m 0775 $$tclfile ${dest_TCLDIR}/ ; \ ${CHMOD} g+w $(2) ; \
${INSTALL} -m 0775 $$tclfile ${dest_TCLDIR}/ ; \
elif [ -d $$tclfile ]; then \
echo ${CP} -r $$tclfile ${dest_TCLDIR}/ ; \
${CP} -r $$tclfile ${dest_TCLDIR}/ ; \
fi; \
done; \
if [ $$install_yn = "yes" ] ; then \
( cd ${dest_TCLDIR} ; echo 'auto_mkindex . *.tcl' | ${TCLSH} ) \
fi fi
for target in $(4) verylongdummyname ; do \
if [ -f $$target ] ; then \
echo ${INSTALL} -m $(3) $$target $(2)/ ; \
${INSTALL} -m $(3) $$target $(2)/ ; \
elif [ -d $$target ]; then \
echo ${CP} -r $$target $(2)/ ; \
${CP} -r $$target $(2)/ ; \
find $(2)/$$target -type d -exec chmod $(3) {} \; ; \
find $(2)/$$target -type f -exec chmod $(3) {} \; ; \
fi; \
done;
endef
# Installs PYFILES into $FSLDIR/etc/fsl/python/$PROJNAME/
pyinstall: pyinstall:
@echo " " @$(call _x_install,"python scripts",${dest_PYDIR}/${PROJNAME}/,0644,${PYFILES})
@echo "Installing python scripts"
@if [ ! -d ${dest_PYDIR}/${PROJNAME} ] ; then \
${MKDIR} -p ${dest_PYDIR}/${PROJNAME} ; \
${CHMOD} g+w ${dest_PYDIR}/${PROJNAME} ; \
fi
@install_yn=no; \
for pyfile in ${PYFILES} verylongdummyname ; do \
if [ -f $$pyfile ] ; then \
install_yn=yes; \
${INSTALL} -m 0775 $$pyfile ${dest_PYDIR}/${PROJNAME}/ ; \
echo ${INSTALL} -m 0775 $$pyfile ${dest_PYDIR}/${PROJNAME}/ ; \
fi \
done;
# Installs AFILES and SOFILES into $FSLDIR/lib/
libinstall:
@$(call _x_install,"library files",${dest_LIBDIR},0644,${AFILES} ${SOFILES})
# Installs HFILES into $FSLDIR/include/$PROJNAME/
hdrinstall:
@$(call _x_install,"header files",${dest_INCDIR}/${PROJNAME}/,0644,${HFILES})
# Installs DATAFILES into $FSLDIR/data/$PROJNAME/
datainstall:
@$(call _x_install,"data files",${dest_DATAIR}/${PROJNAME}/,0644,${DATAFILES})
# Installs:
# - XFILES into $FSLDIR/bin/
# - SCRIPTS into $FSLDIR/bin/
exeinstall: exeinstall:
@echo " " @$(call _x_install,"binaries",${dest_BINDIR}/,0755,${XFILES})
@echo "Installing stable binaries" @$(call _x_install,"scripts",${dest_BINDIR}/,0755,${SCRIPTS})
@if [ ! -d ${dest_BINDIR} ] ; then \
${MKDIR} -p ${dest_BINDIR} ; \
${CHMOD} g+w ${dest_BINDIR} ; \ # Installs:
fi # - TCLFILES into $FSLDIR/tcl/
@for exefile in ${XFILES} ${SCRIPTS} verylongdummyname ; do \ # - RUNTCLS into $FSLDIR/bin/
if [ -f $$exefile ] ; then \ tclinstall:
${INSTALL} -m 0775 $$exefile ${dest_BINDIR}/ ; \ @$(call _x_install,"tcl scripts",${dest_TCLDIR}/,0755,${TCLFILES})
echo ${INSTALL} -m 0775 $$exefile ${dest_BINDIR}/ ; \ @# make sure that $FSLDIR/bin/ exists
fi \ @$(call _x_install,"tcl scripts",${dest_BINDIR}/,0755,)
done @# create RUNTCLS links
@for lntarget in ${RUNTCLS} verylongdummyname ; do \ @for lntarget in ${RUNTCLS} verylongdummyname ; do \
if [ $$lntarget != verylongdummyname ] ; then \ if [ $$lntarget != verylongdummyname ] ; then \
if [ `uname` = Darwin -o X`uname | grep CYGWIN`X != XX ] ; then \ if [ `uname` = Darwin -o X`uname | grep CYGWIN`X != XX ] ; then \
lntarget=$${lntarget}_gui ; \ lntarget=$${lntarget}_gui ; \
fi ; \ fi ; \
cd ${dest_BINDIR} ; ${RM} -f /tmp/fslgrot $$lntarget ; \ cd ${dest_BINDIR} ; ${RM} -f $$lntarget ; \
ln -s Runtcl $$lntarget ; \ ln -s Runtcl $$lntarget ; \
echo ln -s Runtcl $$lntarget ; \ echo ln -s Runtcl $$lntarget ; \
fi \ fi \
done done
@for lntarget in ${RUNAVWS} verylongdummyname ; do \ @# index installed TCL files
if [ $$lntarget != verylongdummyname ] ; then \ @install_yn=no;
cd ${dest_BINDIR} ; ${RM} -f /tmp/fslgrot $$lntarget ; \ @for tclfile in ${TCLFILES} verylongdummyname ; do \
ln -s runavw $$lntarget ; \ if [ -e $$tclfile ] ; then \
echo ln -s runavw $$lntarget ; \ install_yn=yes; \
fi \
done
libinstall:
@echo " "
@echo "Installing stable library archives"
@if [ ! -d ${dest_LIBDIR} ] ; then \
${MKDIR} -p ${dest_LIBDIR} ; \
${CHMOD} g+w ${dest_LIBDIR} ; \
fi
@for libfile in ${AFILES} ${SOFILES} verylongdummyname ; do \
if [ -f $$libfile ] ; then \
${INSTALL} -m 0664 $$libfile ${dest_LIBDIR} ; \
echo ${INSTALL} -m 0664 $$libfile ${dest_LIBDIR} ; \
if [ `uname` = Darwin -o X`uname | grep CYGWIN`X != XX ] ; then \
${RANLIB} ${dest_LIBDIR}/$$libfile ; \
fi ; \
fi \
done
hdrinstall:
@echo " "
@echo "Installing stable header files"
@if [ ! -d ${dest_INCDIR} ] ; then \
${MKDIR} -p ${dest_INCDIR} ; \
${CHMOD} g+w ${dest_INCDIR} ; \
fi
@if [ ! -d ${dest_INCDIR}/${PROJNAME} ] ; then \
${MKDIR} -p ${dest_INCDIR}/${PROJNAME} ; \
${CHMOD} g+w ${dest_INCDIR}/${PROJNAME} ; \
fi
@for hdrfile in ${HFILES} verylongdummyname ; do \
if [ -f $$hdrfile ] ; then \
echo ${INSTALL} -m 0664 $$hdrfile ${dest_INCDIR}/${PROJNAME}/ ; \
${INSTALL} -m 0664 $$hdrfile ${dest_INCDIR}/${PROJNAME}/ ; \
elif [ -d $$hdrfile ]; then \
echo ${CP} -r $$hdrfile ${dest_INCDIR}/${PROJNAME}/ ; \
${CP} -r $$hdrfile ${dest_INCDIR}/${PROJNAME}/ ; \
find ${dest_INCDIR}/${PROJNAME}/ -type d -exec chmod 0755 {} \; ; \
find ${dest_INCDIR}/${PROJNAME}/ -type f -exec chmod 0644 {} \; ; \
fi; \
done
datainstall:
@echo " "
@echo "Installing data files"
@if [ ! -d ${dest_DATADIR} ] ; then \
${MKDIR} -p ${dest_DATADIR} ; \
${CHMOD} g+w ${dest_DATADIR} ; \
fi
@if [ ! -d ${dest_DATADIR}/${PROJNAME} ] ; then \
${MKDIR} -p ${dest_DATADIR}/${PROJNAME} ; \
${CHMOD} g+w ${dest_DATADIR}/${PROJNAME} ; \
fi
@for datafile in ${DATAFILES} verylongdummyname ; do \
if [ -f $$datafile ] ; then \
echo ${INSTALL} -m 0664 $$datafile ${dest_DATADIR}/${PROJNAME}/ ; \
${INSTALL} -m 0664 $$datafile ${dest_DATADIR}/${PROJNAME}/ ; \
elif [ -d $$datafile ]; then \
echo ${CP} -r $$datafile ${dest_DATADIR}/${PROJNAME}/ ; \
${CP} -r $$datafile ${dest_DATADIR}/${PROJNAME}/ ; \
find ${dest_DATADIR}/${PROJNAME}/ -type d -exec chmod 0755 {} \; ; \
find ${dest_DATADIR}/${PROJNAME}/ -type f -exec chmod 0644 {} \; ; \
fi; \ fi; \
done done;
@if [ $$install_yn = "yes" ] ; then \
(cd ${dest_TCLDIR} ; echo 'auto_mkindex . *.tcl' | ${TCLSH} ) \
fi
include depend.mk include depend.mk
...@@ -30,6 +30,7 @@ HFILES = *.h # installed into $FSLDIR/include/$PROJNAME/ ...@@ -30,6 +30,7 @@ HFILES = *.h # installed into $FSLDIR/include/$PROJNAME/
AFILES = *.a # installed into $FSLDIR/lib/ AFILES = *.a # installed into $FSLDIR/lib/
SOFILES = *.so # installed into $FSLDIR/lib/ SOFILES = *.so # installed into $FSLDIR/lib/
XFILES = # installed into $FSLDIR/bin/ XFILES = # installed into $FSLDIR/bin/
FXFILES = # installed into $FSLDIR/bin/, only for internal builds
SCRIPTS = # installed into $FSLDIR/bin/ SCRIPTS = # installed into $FSLDIR/bin/
RUNTCLS = # link to Runtcl created in $FSLDIR/bin/ which assumes RUNTCLS = # link to Runtcl created in $FSLDIR/bin/ which assumes
# that <file>.tcl has been installed into # that <file>.tcl has been installed into
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment