summaryrefslogtreecommitdiff
path: root/Build/source/am/script_links.am
blob: e12e09edc9cc26a1abc5a790af27bbdb76c6288e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
## am/script_links.am: Makefile fragment for lua/perl/shell script links.
##
## Copyright (C) 2011-2014 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
##
## Install/uninstall 'linked scripts' or win32 wrappers:
## Add the prerequisite uninstall-links to uninstall-hook and one or
##  or more of install-{perl,shell,sh}-scripts to install-data-hook
##
## The sh_scripts are special because they have no corresponding
##  win32 wrapper, whereas shell_scripts do have such wrappers.
##
## requires conditionals WIN32 and WIN32_WRAP
## requires $(scriptsdir): e.g., texmf/scripts/chktex
## appends to $(nodist_bin_SCRIPTS) and $(EXTRA_DIST)
##
## install-lua-scripts requires $(lua_scripts), e.g., pmx2pdf
## install-perl-scripts requires $(perl_scripts), e.g., deweb
## install-shell-scripts requires $(shell_scripts), e.g. htlatex
## install-sh-scripts requires $(sh_scripts), e.g. getafm
##
.PHONY: install-lua-links install-perl-links install-shell-links install-sh-links \
	install-links uninstall-links

all_scripts = $(lua_scripts) $(perl_scripts) $(shell_scripts)

if WIN32
if WIN32_WRAP
## We treat the WIN32 wrappers as SCRIPTS to avoid automatic build rules
wrappers = $(all_scripts:=.exe)
nodist_bin_SCRIPTS += $(wrappers)
runscript = $(top_srcdir)/../../texk/texlive/$(WIN_WRAPPER)/runscript.exe
$(wrappers): $(runscript)
	$(AM_V_GEN)$(LN_S) $(runscript) $@
endif WIN32_WRAP
endif WIN32

install-lua-links:
if !WIN32
	$(MAKE) $(AM_MAKEFLAGS) TYPE=lua EXT=lua install-links
endif !WIN32

install-perl-links:
if !WIN32
	$(MAKE) $(AM_MAKEFLAGS) TYPE=perl EXT=pl install-links
endif !WIN32

install-shell-links:
if !WIN32
	$(MAKE) $(AM_MAKEFLAGS) TYPE=shell EXT=sh install-links
endif !WIN32

install-sh-links:
if !WIN32
	$(MAKE) $(AM_MAKEFLAGS) TYPE=sh EXT=sh install-links
endif !WIN32

EXTRA_DIST += $(top_builddir)/../../build-aux/relpath

# We support native builds, multiplatform or not, as well as distro builds.
install-links:
	@relpath="$(top_srcdir)/../../build-aux/relpath"; \
	test -r $$relpath || { \
	  echo 'script_links.am:install-links: could not find relpath script'; \
	  exit 1; \
	}; \
	REL=`$(SHELL) $$relpath '$(DESTDIR)' '$(bindir)' '$(datarootdir)'`; \
	if test -z "$$REL"; then \
	  echo 'script_links.am:install_links: unable to compute relative path for linked $(TYPE) scripts' >&2; \
	  exit 1; \
	fi; \
	cd $(DESTDIR)$(bindir) && \
	  for f in $($(TYPE)_scripts); do \
	    rm -f $$f; \
	    if $(AM_V_P); then echo "creating link '$$f' -> '$$REL/$(scriptsdir)/$$f.$(EXT)'"; \
	      else echo "  LINK     $$f"; fi; \
	    $(LN_S) $$REL/$(scriptsdir)/$$f.$(EXT) $$f || exit 1; \
	  done  

uninstall-links:
if !WIN32
	@for f in $(all_scripts) $(sh_scripts); do \
	  echo "rm -f '$(DESTDIR)$(bindir)/$$f'"; \
	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
	done
endif !WIN32