1## am/script_links.am: Makefile fragment for lua/perl/shell script links. 2## 3## Copyright (C) 2011-2014 Peter Breitenlohner <tex-live@tug.org> 4## You may freely use, modify and/or distribute this file. 5## 6## Install/uninstall 'linked scripts' or win32 wrappers: 7## Add the prerequisite uninstall-links to uninstall-hook and one or 8## or more of install-{perl,shell,sh}-scripts to install-data-hook 9## 10## The sh_scripts are special because they have no corresponding 11## win32 wrapper, whereas shell_scripts do have such wrappers. 12## 13## requires conditionals WIN32 and WIN32_WRAP 14## requires $(scriptsdir): e.g., texmf/scripts/chktex 15## appends to $(nodist_bin_SCRIPTS) and $(EXTRA_DIST) 16## 17## install-lua-scripts requires $(lua_scripts), e.g., pmx2pdf 18## install-perl-scripts requires $(perl_scripts), e.g., deweb 19## install-shell-scripts requires $(shell_scripts), e.g. htlatex 20## install-sh-scripts requires $(sh_scripts), e.g. getafm 21## 22.PHONY: install-lua-links install-perl-links install-shell-links install-sh-links \ 23 install-links uninstall-links 24 25all_scripts = $(lua_scripts) $(perl_scripts) $(shell_scripts) 26 27if WIN32 28if WIN32_WRAP 29## We treat the WIN32 wrappers as SCRIPTS to avoid automatic build rules 30wrappers = $(all_scripts:=.exe) 31nodist_bin_SCRIPTS += $(wrappers) 32runscript = $(top_srcdir)/../../texk/texlive/$(WIN_WRAPPER)/runscript.exe 33$(wrappers): $(runscript) 34 $(AM_V_GEN)$(LN_S) $(runscript) $@ 35endif WIN32_WRAP 36endif WIN32 37 38install-lua-links: 39if !WIN32 40 $(MAKE) $(AM_MAKEFLAGS) TYPE=lua EXT=lua install-links 41endif !WIN32 42 43install-perl-links: 44if !WIN32 45 $(MAKE) $(AM_MAKEFLAGS) TYPE=perl EXT=pl install-links 46endif !WIN32 47 48install-shell-links: 49if !WIN32 50 $(MAKE) $(AM_MAKEFLAGS) TYPE=shell EXT=sh install-links 51endif !WIN32 52 53install-sh-links: 54if !WIN32 55 $(MAKE) $(AM_MAKEFLAGS) TYPE=sh EXT=sh install-links 56endif !WIN32 57 58EXTRA_DIST += $(top_builddir)/../../build-aux/relpath 59 60# We support native builds, multiplatform or not, as well as distro builds. 61install-links: 62 @relpath="$(top_srcdir)/../../build-aux/relpath"; \ 63 test -r $$relpath || { \ 64 echo 'script_links.am:install-links: could not find relpath script'; \ 65 exit 1; \ 66 }; \ 67 REL=`$(SHELL) $$relpath '$(DESTDIR)' '$(bindir)' '$(datarootdir)'`; \ 68 if test -z "$$REL"; then \ 69 echo 'script_links.am:install_links: unable to compute relative path for linked $(TYPE) scripts' >&2; \ 70 exit 1; \ 71 fi; \ 72 cd $(DESTDIR)$(bindir) && \ 73 for f in $($(TYPE)_scripts); do \ 74 rm -f $$f; \ 75 if $(AM_V_P); then echo "creating link '$$f' -> '$$REL/$(scriptsdir)/$$f.$(EXT)'"; \ 76 else echo " LINK $$f"; fi; \ 77 $(LN_S) $$REL/$(scriptsdir)/$$f.$(EXT) $$f || exit 1; \ 78 done 79 80uninstall-links: 81if !WIN32 82 @for f in $(all_scripts) $(sh_scripts); do \ 83 echo "rm -f '$(DESTDIR)$(bindir)/$$f'"; \ 84 rm -f "$(DESTDIR)$(bindir)/$$f"; \ 85 done 86endif !WIN32 87 88