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