Skip to content

Add proper "make install" and clean up "--prefix" / "--with-systemwide" handling #4281

@solardiz

Description

@solardiz

We do have a make install, but it currently only (opportunistically) installs bash and zsh completions, and into directories unaffected by --prefix. The rest of its logic is somehow commented out:

install: strip shell-completion
#ifneq ($(prefix), ../run)
#       @echo Copying binaries to $(prefix)
#       $(MKDIR) $(prefix)
#       $(CP) -p -P -R ../run/*.{py,pl,rb} $(PROJ) $(prefix)
#       @echo Copying data and config files to $(prefix)
#       $(MKDIR) $(prefix)
#       $(CP) -p -P -R ../run/*.{chr,conf,lst} $(prefix)
#endif

Other than that, we already handle --prefix mostly similarly to how other typical autoconf'ed software does it:

dnl -DJOHN_SYSTEMWIDE
AC_ARG_WITH(systemwide, [AS_HELP_STRING([--with-systemwide],[install for all users])],,[with_systemwide=no])
AC_PREFIX_DEFAULT([../run])
dnl Handle --prefix -> JOHN_SYSTEMWIDE
dnl A prefix of /usr/local will mean execs in /usr/local/bin and the rest
dnl in /usr/local/share/john
AS_IF([test $prefix != "../run" && test $prefix != "NONE" ],
   [CFLAGS="$CFLAGS -DJOHN_SYSTEMWIDE -DJOHN_SYSTEMWIDE_EXEC='\"$prefix/bin\"' -DJOHN_SYSTEMWIDE_HOME='\"$prefix/share/john\"'"],
   [AS_IF([test $with_systemwide != no], [CFLAGS="$CFLAGS -DJOHN_SYSTEMWIDE"
   prefix=/usr/libexec/john])]
)

I think we should rework the logic around --with-systemwide, though. Do we know of existing users of the present logic?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions