makefiles: turn the 'install' command into a variable

(Suggestion made by Sébastien Hinderer during review.)
master
Gabriel Scherer 2018-03-29 14:24:51 +02:00
parent e08bb1057a
commit afcd29eb0c
12 changed files with 132 additions and 122 deletions

View File

@ -274,6 +274,10 @@ MAXSAVED=boot/Saved/Saved.prev/Saved.prev/Saved.prev/Saved.prev/Saved.prev
COMPLIBDIR=$(LIBDIR)/compiler-libs
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_BINDIR=$(DESTDIR)$(BINDIR)
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
INSTALL_COMPLIBDIR=$(DESTDIR)$(COMPLIBDIR)
@ -587,17 +591,14 @@ install-flexdll:
cat stdlib/camlheader flexdll/flexlink.exe > \
"$(INSTALL_BINDIR)/flexlink.exe"
ifneq "$(filter-out mingw,$(TOOLCHAIN))" ""
install -m $(MDATA) flexdll/default$(filter-out _i386,_$(ARCH)).manifest \
$(INSTALL_DATA) flexdll/default$(filter-out _i386,_$(ARCH)).manifest \
"$(INSTALL_BINDIR)/"
endif
if test -n "$(wildcard flexdll/flexdll_*.$(O))" ; then \
$(MKDIR) "$(INSTALL_FLEXDLLDIR)" ; \
install -m $(MDATA) flexdll/flexdll_*.$(O) "$(INSTALL_FLEXDLLDIR)" ; \
$(INSTALL_DATA) flexdll/flexdll_*.$(O) "$(INSTALL_FLEXDLLDIR)" ; \
fi
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
# Installation
.PHONY: install
install:
@ -605,16 +606,16 @@ install:
$(MKDIR) "$(INSTALL_LIBDIR)"
$(MKDIR) "$(INSTALL_STUBLIBDIR)"
$(MKDIR) "$(INSTALL_COMPLIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
VERSION \
"$(INSTALL_LIBDIR)"
$(MAKE) -C byterun install
install -m $(MPROG) ocaml "$(INSTALL_BINDIR)/ocaml$(EXE)"
install -m $(MPROG) ocamlc "$(INSTALL_BINDIR)/ocamlc.byte$(EXE)"
$(INSTALL_PROG) ocaml "$(INSTALL_BINDIR)/ocaml$(EXE)"
$(INSTALL_PROG) ocamlc "$(INSTALL_BINDIR)/ocamlc.byte$(EXE)"
$(MAKE) -C stdlib install
install -m $(MPROG) lex/ocamllex "$(INSTALL_BINDIR)/ocamllex.byte$(EXE)"
install -m $(MPROG) yacc/ocamlyacc$(EXE) "$(INSTALL_BINDIR)/ocamlyacc$(EXE)"
install -m $(MDATA) \
$(INSTALL_PROG) lex/ocamllex "$(INSTALL_BINDIR)/ocamllex.byte$(EXE)"
$(INSTALL_PROG) yacc/ocamlyacc$(EXE) "$(INSTALL_BINDIR)/ocamlyacc$(EXE)"
$(INSTALL_DATA) \
utils/*.cmi utils/*.cmt utils/*.cmti utils/*.mli \
parsing/*.cmi parsing/*.cmt parsing/*.cmti parsing/*.mli \
typing/*.cmi typing/*.cmt typing/*.cmti typing/*.mli \
@ -622,12 +623,12 @@ install:
driver/*.cmi driver/*.cmt driver/*.cmti driver/*.mli \
toplevel/*.cmi toplevel/*.cmt toplevel/*.cmti toplevel/*.mli \
"$(INSTALL_COMPLIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
compilerlibs/ocamlcommon.cma compilerlibs/ocamlbytecomp.cma \
compilerlibs/ocamltoplevel.cma $(BYTESTART) $(TOPLEVELSTART) \
"$(INSTALL_COMPLIBDIR)"
install -m $(MPROG) expunge "$(INSTALL_LIBDIR)/expunge$(EXE)"
install -m $(MDATA) \
$(INSTALL_PROG) expunge "$(INSTALL_LIBDIR)/expunge$(EXE)"
$(INSTALL_DATA) \
toplevel/topdirs.cmi \
toplevel/topdirs.cmt toplevel/topdirs.cmti \
toplevel/topdirs.mli \
@ -655,7 +656,7 @@ ifeq "$(UNIX_OR_WIN32)" "win32"
$(MAKE) install-flexdll; \
fi
endif
install -m $(MDATA) config/Makefile "$(INSTALL_LIBDIR)/Makefile.config"
$(INSTALL_DATA) config/Makefile "$(INSTALL_LIBDIR)/Makefile.config"
if test -f ocamlopt; then $(MAKE) installopt; else \
cd "$(INSTALL_BINDIR)"; \
$(LN) ocamlc.byte$(EXE) ocamlc$(EXE); \
@ -666,24 +667,24 @@ endif
.PHONY: installopt
installopt:
$(MAKE) -C asmrun install
install -m $(MPROG) ocamlopt "$(INSTALL_BINDIR)/ocamlopt.byte$(EXE)"
$(INSTALL_PROG) ocamlopt "$(INSTALL_BINDIR)/ocamlopt.byte$(EXE)"
$(MAKE) -C stdlib installopt
install -m $(MDATA) \
$(INSTALL_DATA) \
middle_end/*.cmi \
middle_end/*.cmt middle_end/*.cmti \
middle_end/*.mli \
"$(INSTALL_COMPLIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
middle_end/base_types/*.cmi \
middle_end/base_types/*.cmt middle_end/base_types/*.cmti \
middle_end/base_types/*.mli \
"$(INSTALL_COMPLIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
asmcomp/*.cmi \
asmcomp/*.cmt asmcomp/*.cmti \
asmcomp/*.mli \
"$(INSTALL_COMPLIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
compilerlibs/ocamloptcomp.cma $(OPTSTART) \
"$(INSTALL_COMPLIBDIR)"
if test -n "$(WITH_OCAMLDOC)"; then \
@ -700,25 +701,25 @@ installopt:
fi
$(MAKE) -C tools installopt
if test -f ocamlopt.opt -a -f flexdll/flexlink.opt ; then \
install -m $(MPROG) \
$(INSTALL_PROG) \
flexdll/flexlink.opt "$(INSTALL_BINDIR)/flexlink$(EXE)" ; \
fi
.PHONY: installoptopt
installoptopt:
install -m $(MPROG) ocamlc.opt "$(INSTALL_BINDIR)/ocamlc.opt$(EXE)"
install -m $(MPROG) ocamlopt.opt "$(INSTALL_BINDIR)/ocamlopt.opt$(EXE)"
install -m $(MPROG) \
$(INSTALL_PROG) ocamlc.opt "$(INSTALL_BINDIR)/ocamlc.opt$(EXE)"
$(INSTALL_PROG) ocamlopt.opt "$(INSTALL_BINDIR)/ocamlopt.opt$(EXE)"
$(INSTALL_PROG) \
lex/ocamllex.opt "$(INSTALL_BINDIR)/ocamllex.opt$(EXE)"
cd "$(INSTALL_BINDIR)"; \
$(LN) ocamlc.opt$(EXE) ocamlc$(EXE); \
$(LN) ocamlopt.opt$(EXE) ocamlopt$(EXE); \
$(LN) ocamllex.opt$(EXE) ocamllex$(EXE)
install -m $(MDATA) \
$(INSTALL_DATA) \
utils/*.cmx parsing/*.cmx typing/*.cmx bytecomp/*.cmx \
driver/*.cmx asmcomp/*.cmx \
"$(INSTALL_COMPLIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
compilerlibs/ocamlcommon.cmxa compilerlibs/ocamlcommon.$(A) \
compilerlibs/ocamlbytecomp.cmxa compilerlibs/ocamlbytecomp.$(A) \
compilerlibs/ocamloptcomp.cmxa compilerlibs/ocamloptcomp.$(A) \
@ -726,12 +727,12 @@ installoptopt:
$(OPTSTART:.cmo=.cmx) $(OPTSTART:.cmo=.$(O)) \
"$(INSTALL_COMPLIBDIR)"
if test -f ocamlnat$(EXE) ; then \
install -m $(MPROG) \
$(INSTALL_PROG) \
ocamlnat$(EXE) "$(INSTALL_BINDIR)/ocamlnat$(EXE)"; \
install -m $(MDATA) \
$(INSTALL_DATA) \
toplevel/opttopdirs.cmi \
"$(INSTALL_LIBDIR)"; \
install -m $(MDATA) \
$(INSTALL_DATA) \
compilerlibs/ocamlopttoplevel.cmxa \
compilerlibs/ocamlopttoplevel.$(A) \
$(OPTTOPLEVELSTART:.cmo=.cmx) $(OPTTOPLEVELSTART:.cmo=.$(O)) \
@ -743,7 +744,7 @@ installoptopt:
# Installation of the *.ml sources of compiler-libs
.PHONY: install-compiler-sources
install-compiler-sources:
install -m $(MDATA) \
$(INSTALL_DATA) \
utils/*.ml parsing/*.ml typing/*.ml bytecomp/*.ml driver/*.ml \
toplevel/*.ml middle_end/*.ml middle_end/base_types/*.ml \
asmcomp/*.ml \

View File

@ -27,6 +27,10 @@ LINKEDFILES=misc.c freelist.c major_gc.c minor_gc.c memory.c alloc.c array.c \
# compiled on the platform where make depend is run
sources := $(LINKEDFILES)
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
ifeq "$(UNIX_OR_WIN32)" "win32"
@ -133,14 +137,11 @@ libasmrun_pic.$(A): $(PICOBJS)
libasmrun_shared.$(SO): $(PICOBJS)
$(MKDLL) -o $@ $^ $(NATIVECCLIBS)
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
.PHONY: install
install:
install -m $(MDATA) $(TARGETS_A) "$(INSTALL_LIBDIR)"
$(INSTALL_DATA) $(TARGETS_A) "$(INSTALL_LIBDIR)"
if test -n "$(TARGETS_SO)"; then \
install -m $(MPROG) $(TARGETS_SO) "$(INSTALL_LIBDIR)"; \
$(INSTALL_PROG) $(TARGETS_SO) "$(INSTALL_LIBDIR)"; \
fi
$(LINKEDFILES): %.c: ../byterun/%.c

View File

@ -15,6 +15,10 @@
include ../config/Makefile
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_BINDIR=$(DESTDIR)$(BINDIR)
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
INSTALL_INCDIR=$(INSTALL_LIBDIR)/caml
@ -114,18 +118,15 @@ ld.conf: ../config/Makefile
echo "$(STUBLIBDIR)" > $@
echo "$(LIBDIR)" >> $@
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
.PHONY: install
install:
install -m $(MPROG) $(PROGRAMS) "$(INSTALL_BINDIR)"
install -m $(MDATA) $(LIBRARIES) "$(INSTALL_LIBDIR)"
$(INSTALL_PROG) $(PROGRAMS) "$(INSTALL_BINDIR)"
$(INSTALL_DATA) $(LIBRARIES) "$(INSTALL_LIBDIR)"
if test -n "$(DYNLIBRARIES)"; then \
install -m $(MPROG) $(DYNLIBRARIES) "$(INSTALL_LIBDIR)"; \
$(INSTALL_PROG) $(DYNLIBRARIES) "$(INSTALL_LIBDIR)"; \
fi
mkdir -p "$(INSTALL_INCDIR)"
install -m $(MDATA) caml/*.h "$(INSTALL_INCDIR)"
$(INSTALL_DATA) caml/*.h "$(INSTALL_INCDIR)"
# If primitives contain duplicated lines (e.g. because the code is defined
# like

View File

@ -27,6 +27,10 @@ CAMLLEX=$(CAMLRUN) ../boot/ocamllex
CAMLDEP=$(CAMLRUN) ../tools/ocamldep
DEPFLAGS=$(INCLUDES)
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_BINDIR=$(DESTDIR)$(BINDIR)
INCLUDES=\
@ -96,9 +100,6 @@ all: ocamldebug$(EXE)
ocamldebug$(EXE): $(OBJS) $(OTHEROBJS)
$(CAMLC) $(LINKFLAGS) -o ocamldebug$(EXE) -linkall $(OTHEROBJS) $(OBJS)
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
install:
install -m $(MPROG) ocamldebug$(EXE) "$(INSTALL_BINDIR)/ocamldebug$(EXE)"

View File

@ -40,8 +40,9 @@ COMPILECMD=(progn \
(byte-compile-file "caml-font.el") \
(byte-compile-file "camldebug.el"))
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
install:
@if test "$(EMACSDIR)" = ""; then \
@ -67,7 +68,7 @@ install-el:
simple-install:
@echo "Installing in $(EMACSDIR)..."
if test -d $(EMACSDIR); then : ; else mkdir -p $(EMACSDIR); fi
install -m $(MDATA) $(FILES) $(EMACSDIR)
$(INSTALL_DATA) $(FILES) $(EMACSDIR)
if [ -z "$(NOCOMPILE)" ]; then \
cd $(EMACSDIR); $(EMACS) --batch --eval '$(COMPILECMD)'; \
fi
@ -77,7 +78,7 @@ ocamltags: ocamltags.in
chmod a+x ocamltags
install-ocamltags: ocamltags
install -m $(MDATA) ocamltags $(SCRIPTDIR)/ocamltags
$(INSTALL_DATA) ocamltags $(SCRIPTDIR)/ocamltags
# This is for testing purposes
compile-only:

View File

@ -72,11 +72,12 @@ OCAMLDOC_LIBCMI=odoc_info.cmi
OCAMLDOC_LIBCMXA=odoc_info.cmxa
OCAMLDOC_LIBA=odoc_info.$(A)
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)/ocamldoc
INSTALL_BINDIR=$(DESTDIR)$(BINDIR)
#MANO: man ocamldoc
INSTALL_MANODIR=$(DESTDIR)$(MANDIR)/man3
OCAMLDOC_LIBMLIS=odoc_info.mli
@ -289,23 +290,20 @@ odoc_see_lexer.ml: odoc_see_lexer.mll
# TODO: it may be good to split the following rule in several ones, e.g.
# install-programs, install-doc, install-libs
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
.PHONY: install
install:
$(MKDIR) "$(INSTALL_BINDIR)"
$(MKDIR) "$(INSTALL_LIBDIR)"
$(MKDIR) "$(INSTALL_MANODIR)"
install -m $(MPROG) $(OCAMLDOC) "$(INSTALL_BINDIR)/$(OCAMLDOC)$(EXE)"
install -m $(MDATA) \
$(INSTALL_PROG) $(OCAMLDOC) "$(INSTALL_BINDIR)/$(OCAMLDOC)$(EXE)"
$(INSTALL_DATA) \
ocamldoc.hva *.cmi $(OCAMLDOC_LIBCMA) \
"$(INSTALL_LIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
$(OCAMLDOC_LIBMLIS) $(OCAMLDOC_LIBCMIS) $(OCAMLDOC_LIBCMTS) \
"$(INSTALL_LIBDIR)"
if test -d stdlib_man; then \
install -m $(MDATA) stdlib_man/* "$(INSTALL_MANODIR)"; \
$(INSTALL_DATA) stdlib_man/* "$(INSTALL_MANODIR)"; \
else : ; fi
# Note: at the moment, $(INSTALL_MANODIR) is created even if the doc has
@ -319,12 +317,12 @@ installopt:
installopt_really:
$(MKDIR) "$(INSTALL_BINDIR)"
$(MKDIR) "$(INSTALL_LIBDIR)"
install -m $(MPROG) \
$(INSTALL_PROG) \
$(OCAMLDOC_OPT) "$(INSTALL_BINDIR)/$(OCAMLDOC_OPT)$(EXE)"
install -m $(MDATA) \
$(INSTALL_DATA) \
$(OCAMLDOC_LIBMLIS) $(OCAMLDOC_LIBCMIS) $(OCAMLDOC_LIBCMTS) \
"$(INSTALL_LIBDIR)"
install -m $(MDATA) \
$(INSTALL_DATA) \
ocamldoc.hva *.cmx $(OCAMLDOC_LIBA) $(OCAMLDOC_LIBCMXA) \
"$(INSTALL_LIBDIR)"

View File

@ -76,35 +76,36 @@ $(LIBNAME).cmxs: $(LIBNAME).cmxa lib$(CLIBNAME).$(A)
lib$(CLIBNAME).$(A): $(COBJS)
$(MKLIB) -oc $(CLIBNAME) $(COBJS) $(LDOPTS)
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
INSTALL_STUBLIBDIR=$(DESTDIR)$(STUBLIBDIR)
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
install::
if test -f dll$(CLIBNAME)$(EXT_DLL); then \
install -m $(MPROG) \
$(INSTALL_PROG) \
dll$(CLIBNAME)$(EXT_DLL) \
"$(INSTALL_STUBLIBDIR)/"; \
fi
install -m $(MDATA) lib$(CLIBNAME).$(A) "$(INSTALL_LIBDIR)/"
$(INSTALL_DATA) lib$(CLIBNAME).$(A) "$(INSTALL_LIBDIR)/"
cd "$(INSTALL_LIBDIR)"; $(RANLIB) lib$(CLIBNAME).$(A)
install -m $(MDATA) \
$(INSTALL_DATA) \
$(LIBNAME).cma $(CMIFILES) $(CMIFILES:.cmi=.mli) \
$(CMIFILES:.cmi=.cmti) \
"$(INSTALL_LIBDIR)/"
if test -n "$(HEADERS)"; then \
install -m $(MDATA) $(HEADERS) "$(INSTALL_LIBDIR)/caml/"; \
$(INSTALL_DATA) $(HEADERS) "$(INSTALL_LIBDIR)/caml/"; \
fi
installopt:
install -m $(MDATA) \
$(INSTALL_DATA) \
$(CAMLOBJS_NAT) $(LIBNAME).cmxa $(LIBNAME).$(A) \
"$(INSTALL_LIBDIR)/"
cd "$(INSTALL_LIBDIR)"; $(RANLIB) $(LIBNAME).a
if test -f $(LIBNAME).cmxs; then \
install -m $(MPROG) $(LIBNAME).cmxs "$(INSTALL_LIBDIR)/"; \
$(INSTALL_PROG) $(LIBNAME).cmxs "$(INSTALL_LIBDIR)/"; \
fi
partialclean:

View File

@ -88,21 +88,22 @@ dynlink.cmx: dynlink.cmi natdynlink.ml
extract_crc: dynlink.cma extract_crc.cmo
$(OCAMLC) -o extract_crc dynlink.cma extract_crc.cmo
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
install:
install -m $(MDATA) \
$(INSTALL_DATA) \
dynlink.cmi dynlink.cmti dynlink.cma dynlink.mli \
"$(INSTALL_LIBDIR)"
install -m $(MPROG) \
$(INSTALL_PROG) \
extract_crc "$(INSTALL_LIBDIR)/extract_crc$(EXE)"
installopt:
if $(NATDYNLINK); then \
install -m $(MDATA) \
$(INSTALL_DATA) \
$(NATOBJS) dynlink.cmxa dynlink.$(A) \
"$(INSTALL_LIBDIR)" && \
cd "$(INSTALL_LIBDIR)" && $(RANLIB) dynlink.$(A); \

View File

@ -112,34 +112,35 @@ partialclean:
clean: partialclean
rm -f dllthreads*$(EXT_DLL) *.$(A) *.$(O)
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
THREADS_LIBDIR=$(INSTALL_LIBDIR)/$(LIBNAME)
INSTALL_STUBLIBDIR=$(DESTDIR)$(STUBLIBDIR)
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
INSTALL_THREADSLIBDIR=$(INSTALL_LIBDIR)/$(LIBNAME)
INSTALL_STUBLIBDIR=$(DESTDIR)$(STUBLIBDIR)
install:
if test -f dllthreads$(EXT_DLL); then \
install -m $(MPROG) \
$(INSTALL_PROG) \
dllthreads$(EXT_DLL) "$(INSTALL_STUBLIBDIR)/dllthreads$(EXT_DLL)"; \
fi
install -m $(MDATA) libthreads.$(A) "$(INSTALL_LIBDIR)"
$(INSTALL_DATA) libthreads.$(A) "$(INSTALL_LIBDIR)"
cd "$(INSTALL_LIBDIR)"; $(RANLIB) libthreads.$(A)
mkdir -p "$(THREADS_LIBDIR)"
install -m $(MDATA) \
mkdir -p "$(INSTALL_THREADSLIBDIR)"
$(INSTALL_DATA) \
$(CMIFILES) $(CMIFILES:.cmi=.cmti) threads.cma \
"$(THREADS_LIBDIR)"
install -m $(MDATA) $(MLIFILES) "$(INSTALL_LIBDIR)"
install -m $(MDATA) threads.h "$(INSTALL_LIBDIR)/caml"
"$(INSTALL_THREADSLIBDIR)"
$(INSTALL_DATA) $(MLIFILES) "$(INSTALL_LIBDIR)"
$(INSTALL_DATA) threads.h "$(INSTALL_LIBDIR)/caml"
installopt:
install -m $(MDATA) libthreadsnat.$(A) "$(INSTALL_LIBDIR)"
$(INSTALL_DATA) libthreadsnat.$(A) "$(INSTALL_LIBDIR)"
cd "$(INSTALL_LIBDIR)"; $(RANLIB) libthreadsnat.$(A)
install -m $(MDATA) \
$(INSTALL_DATA) \
$(THREADS_NCOBJS) threads.cmxa threads.$(A) \
"$(THREADS_LIBDIR)"
cd "$(THREADS_LIBDIR)" && $(RANLIB) threads.$(A)
"$(INSTALL_THREADSLIBDIR)"
cd "$(INSTALL_THREADSLIBDIR)" && $(RANLIB) threads.$(A)
.SUFFIXES: .ml .mli .cmo .cmi .cmx

View File

@ -109,22 +109,23 @@ clean: partialclean
rm -f libvmthreads.a dllvmthreads.so *.o
rm -f stdlib.mli marshal.mli unix.mli
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
INSTALL_STUBLIBDIR=$(DESTDIR)$(STUBLIBDIR)
CMIFILES=thread.cmi mutex.cmi condition.cmi event.cmi threadUnix.cmi
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
install:
if test -f dllvmthreads.so; then \
install -m $(MPROG) dllvmthreads.so "$(INSTALL_STUBLIBDIR)"; \
$(INSTALL_PROG) dllvmthreads.so "$(INSTALL_STUBLIBDIR)"; \
fi
mkdir -p "$(INSTALL_LIBDIR)/vmthreads"
install -m $(MDATA) libvmthreads.a "$(INSTALL_LIBDIR)/vmthreads"
$(INSTALL_DATA) libvmthreads.a "$(INSTALL_LIBDIR)/vmthreads"
cd "$(INSTALL_LIBDIR)/vmthreads"; $(RANLIB) libvmthreads.a
install -m $(MDATA) \
$(INSTALL_DATA) \
$(CMIFILES) $(CMIFILES:.cmi=.mli) $(CMIFILES:.cmi=.cmti) \
threads.cma stdlib.cma unix.cma \
"$(INSTALL_LIBDIR)/vmthreads"

View File

@ -83,26 +83,27 @@ allopt-noprof:
allopt-prof: stdlib.p.cmxa std_exit.p.cmx
rm -f std_exit.p.cmi
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
.PHONY: install
install::
install -m $(MDATA) \
$(INSTALL_DATA) \
stdlib.cma std_exit.cmo *.cmi *.cmt *.cmti *.mli *.ml camlheader_ur \
"$(INSTALL_LIBDIR)"
install -m $(MDATA) target_camlheader "$(INSTALL_LIBDIR)/camlheader"
$(INSTALL_DATA) target_camlheader "$(INSTALL_LIBDIR)/camlheader"
ifeq "$(RUNTIMED)" "true"
install::
install -m $(MDATA) target_camlheaderd $(INSTALL_LIBDIR)
$(INSTALL_DATA) target_camlheaderd $(INSTALL_LIBDIR)
endif
ifeq "$(RUNTIMEI)" "true"
install::
install -m $(MDATA) target_camlheaderi $(INSTALL_LIBDIR)
$(INSTALL_DATA) target_camlheaderi $(INSTALL_LIBDIR)
endif
.PHONY: installopt
@ -110,7 +111,7 @@ installopt: installopt-default installopt-$(PROFILINGTARGET)
.PHONY: installopt-default
installopt-default:
install -m $(MDATA) \
$(INSTALL_DATA) \
stdlib.cmxa stdlib.$(A) std_exit.$(O) *.cmx \
"$(INSTALL_LIBDIR)"
cd "$(INSTALL_LIBDIR)"; $(RANLIB) stdlib.$(A)
@ -120,7 +121,7 @@ installopt-noprof:
.PHONY: installopt-prof
installopt-prof:
install -m $(MDATA) \
$(INSTALL_DATA) \
stdlib.p.cmxa stdlib.p.$(A) std_exit.p.cmx std_exit.p.$(O) \
"$(INSTALL_LIBDIR)"
cd "$(INSTALL_LIBDIR)"; $(RANLIB) stdlib.p.$(A)

View File

@ -15,6 +15,11 @@
MAKEFLAGS := -r -R
include ../config/Makefile
INSTALL=install
INSTALL_DATA=$(INSTALL) -m u+rw,g+rw,o+r
INSTALL_PROG=$(INSTALL) -m u+rwx,g+rwx,o+rx
INSTALL_BINDIR:=$(DESTDIR)$(BINDIR)
INSTALL_LIBDIR:=$(DESTDIR)$(LIBDIR)
INSTALL_COMPLIBDIR:=$(DESTDIR)$(COMPLIBDIR)
@ -142,16 +147,13 @@ $(call byte_and_opt,ocamloptp,$(ocamlcp_cmos) ocamloptp.cmo,)
opt:: profiling.cmx
MDATA=u+rw,g+rw,o+r
MPROG=u+rwx,g+rwx,o+rx
install::
install -m $(MDATA) \
$(INSTALL_DATA) \
profiling.cmi profiling.cmo profiling.cmt profiling.cmti \
"$(INSTALL_LIBDIR)"
installopt::
install -m $(MDATA) \
$(INSTALL_DATA) \
profiling.cmx profiling.$(O) \
"$(INSTALL_LIBDIR)"
@ -195,7 +197,7 @@ lexer299.ml: lexer299.mll
$(CAMLLEX) lexer299.mll
#install::
# install -m $(MPROG) ocaml299to3 "$(INSTALL_BINDIR)/ocaml299to3$(EXE)"
# $(INSTALL_PROG) ocaml299to3 "$(INSTALL_BINDIR)/ocaml299to3$(EXE)"
clean::
rm -f ocaml299to3 lexer299.ml
@ -211,7 +213,7 @@ lexer301.ml: lexer301.mll
$(CAMLLEX) lexer301.mll
#install::
# install -m $(MPROG) scrapelabels "$(INSTALL_LIBDIR)"
# $(INSTALL_PROG) scrapelabels "$(INSTALL_LIBDIR)"
clean::
rm -f scrapelabels lexer301.ml
@ -229,7 +231,7 @@ addlabels: addlabels.cmo
$(ADDLABELS_IMPORTS) addlabels.cmo
#install::
# install -m $(MPROG) addlabels "$(INSTALL_LIBDIR)"
# $(INSTALL_PROG) addlabels "$(INSTALL_LIBDIR)"
ifeq ($(UNIX_OR_WIN32),unix)
LN := ln -sf
@ -240,9 +242,9 @@ endif
install::
for i in $(install_files); \
do \
install -m $(MPROG) "$$i" "$(INSTALL_BINDIR)/$$i.byte$(EXE)" && \
$(INSTALL_PROG) "$$i" "$(INSTALL_BINDIR)/$$i.byte$(EXE)" && \
if test -f "$$i".opt; then \
install -m $(MPROG) "$$i.opt" "$(INSTALL_BINDIR)/$$i.opt$(EXE)" && \
$(INSTALL_PROG) "$$i.opt" "$(INSTALL_BINDIR)/$$i.opt$(EXE)" && \
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \
else \
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.byte$(EXE)" "$$i$(EXE)"); \
@ -286,9 +288,9 @@ $(call byte_and_opt,read_cmt,$(READ_CMT),)
install::
if test -f read_cmt.opt; then \
install -m $(MPROG) read_cmt.opt "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
$(INSTALL_PROG) read_cmt.opt "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
else \
install -m $(MPROG) read_cmt "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
$(INSTALL_PROG) read_cmt "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
fi
@ -336,7 +338,7 @@ OBJINFO=../compilerlibs/ocamlcommon.cma \
$(call byte_and_opt,ocamlobjinfo,$(OBJINFO),objinfo_helper$(EXE))
install::
install -m $(MPROG) \
$(INSTALL_PROG) \
objinfo_helper$(EXE) "$(INSTALL_LIBDIR)/objinfo_helper$(EXE)"
# Scan object files for required primitives
@ -379,7 +381,7 @@ $(call byte_and_opt,cmpbyt,$(CMPBYT),)
ifeq "$(RUNTIMEI)" "true"
install::
install -m $(MPROG) \
$(INSTALL_PROG) \
ocaml-instr-graph ocaml-instr-report \
"$(INSTALL_BINDIR)/"
endif