build: Use "%D%" in Makefile fragments.
* doc/local.mk: Use "%D%" for the directory of the fragment relative to the base 'Makefile.am'. * emacs/local.mk: Likewise. * gnu/local.mk: Likewise. * nix/local.mk: Likewise.
This commit is contained in:
parent
cf5f2ad30c
commit
c0d2e7b197
84
doc/local.mk
84
doc/local.mk
|
@ -20,49 +20,49 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
info_TEXINFOS = doc/guix.texi
|
||||
info_TEXINFOS = %D%/guix.texi
|
||||
|
||||
DOT_FILES = \
|
||||
doc/images/bootstrap-graph.dot \
|
||||
doc/images/bootstrap-packages.dot \
|
||||
doc/images/coreutils-graph.dot \
|
||||
doc/images/coreutils-bag-graph.dot \
|
||||
doc/images/service-graph.dot \
|
||||
doc/images/shepherd-graph.dot
|
||||
%D%/images/bootstrap-graph.dot \
|
||||
%D%/images/bootstrap-packages.dot \
|
||||
%D%/images/coreutils-graph.dot \
|
||||
%D%/images/coreutils-bag-graph.dot \
|
||||
%D%/images/service-graph.dot \
|
||||
%D%/images/shepherd-graph.dot
|
||||
|
||||
DOT_VECTOR_GRAPHICS = \
|
||||
$(DOT_FILES:%.dot=%.eps) \
|
||||
$(DOT_FILES:%.dot=%.pdf)
|
||||
|
||||
EXTRA_DIST += \
|
||||
doc/htmlxref.cnf \
|
||||
doc/contributing.texi \
|
||||
doc/emacs.texi \
|
||||
doc/fdl-1.3.texi \
|
||||
%D%/htmlxref.cnf \
|
||||
%D%/contributing.texi \
|
||||
%D%/emacs.texi \
|
||||
%D%/fdl-1.3.texi \
|
||||
$(DOT_FILES) \
|
||||
$(DOT_VECTOR_GRAPHICS) \
|
||||
doc/images/coreutils-size-map.eps \
|
||||
doc/environment-gdb.scm \
|
||||
doc/package-hello.scm
|
||||
%D%/images/coreutils-size-map.eps \
|
||||
%D%/environment-gdb.scm \
|
||||
%D%/package-hello.scm
|
||||
|
||||
OS_CONFIG_EXAMPLES_TEXI = \
|
||||
doc/os-config-bare-bones.texi \
|
||||
doc/os-config-desktop.texi \
|
||||
doc/os-config-lightweight-desktop.texi
|
||||
%D%/os-config-bare-bones.texi \
|
||||
%D%/os-config-desktop.texi \
|
||||
%D%/os-config-lightweight-desktop.texi
|
||||
|
||||
# Bundle this file so that makeinfo finds it in out-of-source-tree builds.
|
||||
BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI)
|
||||
EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI)
|
||||
MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI)
|
||||
|
||||
doc/os-config-%.texi: gnu/system/examples/%.tmpl
|
||||
%D%/os-config-%.texi: gnu/system/examples/%.tmpl
|
||||
$(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
|
||||
cp "$<" "$@"
|
||||
|
||||
infoimagedir = $(infodir)/images
|
||||
dist_infoimage_DATA = \
|
||||
$(DOT_FILES:%.dot=%.png) \
|
||||
doc/images/coreutils-size-map.png
|
||||
%D%/images/coreutils-size-map.png
|
||||
|
||||
# Try hard to obtain an image size and aspect that's reasonable for inclusion
|
||||
# in an Info or PDF document.
|
||||
|
@ -86,13 +86,13 @@ DOT_OPTIONS = \
|
|||
$(AM_V_GEN)convert "$<" "$@-tmp.eps"; \
|
||||
mv "$@-tmp.eps" "$@"
|
||||
|
||||
# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake)
|
||||
# We cannot add new dependencies to `%D%/guix.pdf' & co. (info "(automake)
|
||||
# Extending"). Using the `-local' rules is imperfect, because they may be
|
||||
# triggered after the main rule. Oh, well.
|
||||
pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf)
|
||||
info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png)
|
||||
ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps) \
|
||||
$(top_srcdir)/doc/images/coreutils-size-map.eps
|
||||
$(top_srcdir)/%D%/images/coreutils-size-map.eps
|
||||
dvi-local: ps-local
|
||||
|
||||
## ----------- ##
|
||||
|
@ -106,25 +106,25 @@ dvi-local: ps-local
|
|||
# They are built in $(srcdir) like info manuals.
|
||||
|
||||
sub_commands_mans = \
|
||||
$(srcdir)/doc/guix-archive.1 \
|
||||
$(srcdir)/doc/guix-build.1 \
|
||||
$(srcdir)/doc/guix-challenge.1 \
|
||||
$(srcdir)/doc/guix-download.1 \
|
||||
$(srcdir)/doc/guix-edit.1 \
|
||||
$(srcdir)/doc/guix-environment.1 \
|
||||
$(srcdir)/doc/guix-gc.1 \
|
||||
$(srcdir)/doc/guix-hash.1 \
|
||||
$(srcdir)/doc/guix-import.1 \
|
||||
$(srcdir)/doc/guix-lint.1 \
|
||||
$(srcdir)/doc/guix-package.1 \
|
||||
$(srcdir)/doc/guix-publish.1 \
|
||||
$(srcdir)/doc/guix-pull.1 \
|
||||
$(srcdir)/doc/guix-refresh.1 \
|
||||
$(srcdir)/doc/guix-size.1 \
|
||||
$(srcdir)/doc/guix-system.1
|
||||
$(srcdir)/%D%/guix-archive.1 \
|
||||
$(srcdir)/%D%/guix-build.1 \
|
||||
$(srcdir)/%D%/guix-challenge.1 \
|
||||
$(srcdir)/%D%/guix-download.1 \
|
||||
$(srcdir)/%D%/guix-edit.1 \
|
||||
$(srcdir)/%D%/guix-environment.1 \
|
||||
$(srcdir)/%D%/guix-gc.1 \
|
||||
$(srcdir)/%D%/guix-hash.1 \
|
||||
$(srcdir)/%D%/guix-import.1 \
|
||||
$(srcdir)/%D%/guix-lint.1 \
|
||||
$(srcdir)/%D%/guix-package.1 \
|
||||
$(srcdir)/%D%/guix-publish.1 \
|
||||
$(srcdir)/%D%/guix-pull.1 \
|
||||
$(srcdir)/%D%/guix-refresh.1 \
|
||||
$(srcdir)/%D%/guix-size.1 \
|
||||
$(srcdir)/%D%/guix-system.1
|
||||
|
||||
dist_man1_MANS = \
|
||||
$(srcdir)/doc/guix.1 \
|
||||
$(srcdir)/%D%/guix.1 \
|
||||
$(sub_commands_mans)
|
||||
|
||||
gen_man = \
|
||||
|
@ -133,14 +133,14 @@ gen_man = \
|
|||
|
||||
HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
|
||||
|
||||
$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans)
|
||||
$(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans)
|
||||
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
|
||||
|
||||
# The 'case' ensures the man pages are only generated if the corresponding
|
||||
# source script (the first prerequisite) has been changed. The $(GOBJECTS)
|
||||
# prerequisite is solely meant to force these docs to be made only after all
|
||||
# Guile modules have been compiled.
|
||||
$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
|
||||
$(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
|
||||
-@case '$?' in \
|
||||
*$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \
|
||||
$(gen_man) --output="$@" "guix $*";; \
|
||||
|
@ -149,9 +149,9 @@ $(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
|
|||
|
||||
if BUILD_DAEMON
|
||||
|
||||
dist_man1_MANS += $(srcdir)/doc/guix-daemon.1
|
||||
dist_man1_MANS += $(srcdir)/%D%/guix-daemon.1
|
||||
|
||||
$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
|
||||
$(srcdir)/%D%/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
|
||||
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
|
||||
|
||||
endif
|
||||
|
|
|
@ -17,51 +17,51 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
AUTOLOADS = emacs/guix-autoloads.el
|
||||
AUTOLOADS = %D%/guix-autoloads.el
|
||||
|
||||
ELFILES = \
|
||||
emacs/guix-about.el \
|
||||
emacs/guix-backend.el \
|
||||
emacs/guix-base.el \
|
||||
emacs/guix-build-log.el \
|
||||
emacs/guix-buffer.el \
|
||||
emacs/guix-command.el \
|
||||
emacs/guix-devel.el \
|
||||
emacs/guix-emacs.el \
|
||||
emacs/guix-entry.el \
|
||||
emacs/guix-external.el \
|
||||
emacs/guix-geiser.el \
|
||||
emacs/guix-guile.el \
|
||||
emacs/guix-help-vars.el \
|
||||
emacs/guix-history.el \
|
||||
emacs/guix-hydra.el \
|
||||
emacs/guix-hydra-build.el \
|
||||
emacs/guix-hydra-jobset.el \
|
||||
emacs/guix-info.el \
|
||||
emacs/guix-init.el \
|
||||
emacs/guix-license.el \
|
||||
emacs/guix-list.el \
|
||||
emacs/guix-location.el \
|
||||
emacs/guix-messages.el \
|
||||
emacs/guix-pcomplete.el \
|
||||
emacs/guix-popup.el \
|
||||
emacs/guix-prettify.el \
|
||||
emacs/guix-profiles.el \
|
||||
emacs/guix-read.el \
|
||||
emacs/guix-ui.el \
|
||||
emacs/guix-ui-license.el \
|
||||
emacs/guix-ui-location.el \
|
||||
emacs/guix-ui-package.el \
|
||||
emacs/guix-ui-generation.el \
|
||||
emacs/guix-ui-system-generation.el \
|
||||
emacs/guix-utils.el
|
||||
%D%/guix-about.el \
|
||||
%D%/guix-backend.el \
|
||||
%D%/guix-base.el \
|
||||
%D%/guix-build-log.el \
|
||||
%D%/guix-buffer.el \
|
||||
%D%/guix-command.el \
|
||||
%D%/guix-devel.el \
|
||||
%D%/guix-emacs.el \
|
||||
%D%/guix-entry.el \
|
||||
%D%/guix-external.el \
|
||||
%D%/guix-geiser.el \
|
||||
%D%/guix-guile.el \
|
||||
%D%/guix-help-vars.el \
|
||||
%D%/guix-history.el \
|
||||
%D%/guix-hydra.el \
|
||||
%D%/guix-hydra-build.el \
|
||||
%D%/guix-hydra-jobset.el \
|
||||
%D%/guix-info.el \
|
||||
%D%/guix-init.el \
|
||||
%D%/guix-license.el \
|
||||
%D%/guix-list.el \
|
||||
%D%/guix-location.el \
|
||||
%D%/guix-messages.el \
|
||||
%D%/guix-pcomplete.el \
|
||||
%D%/guix-popup.el \
|
||||
%D%/guix-prettify.el \
|
||||
%D%/guix-profiles.el \
|
||||
%D%/guix-read.el \
|
||||
%D%/guix-ui.el \
|
||||
%D%/guix-ui-license.el \
|
||||
%D%/guix-ui-location.el \
|
||||
%D%/guix-ui-package.el \
|
||||
%D%/guix-ui-generation.el \
|
||||
%D%/guix-ui-system-generation.el \
|
||||
%D%/guix-utils.el
|
||||
|
||||
if HAVE_EMACS
|
||||
|
||||
dist_lisp_DATA = $(ELFILES)
|
||||
|
||||
nodist_lisp_DATA = \
|
||||
emacs/guix-config.el \
|
||||
%D%/guix-config.el \
|
||||
$(AUTOLOADS)
|
||||
|
||||
$(AUTOLOADS): $(ELFILES)
|
||||
|
|
1586
gnu/local.mk
1586
gnu/local.mk
File diff suppressed because it is too large
Load Diff
138
nix/local.mk
138
nix/local.mk
|
@ -21,7 +21,7 @@
|
|||
# Integration of the `guix-daemon' code taken from upstream Nix.
|
||||
#
|
||||
|
||||
BUILT_SOURCES += nix/libstore/schema.sql.hh
|
||||
BUILT_SOURCES += %D%/libstore/schema.sql.hh
|
||||
CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service etc/guix-daemon.conf
|
||||
|
||||
noinst_LIBRARIES = libformat.a libutil.a libstore.a
|
||||
|
@ -30,80 +30,80 @@ noinst_LIBRARIES = libformat.a libutil.a libstore.a
|
|||
AM_CXXFLAGS = -Wall -std=c++11
|
||||
|
||||
libformat_a_SOURCES = \
|
||||
nix/boost/format/free_funcs.cc \
|
||||
nix/boost/format/parsing.cc \
|
||||
nix/boost/format/format_implementation.cc
|
||||
%D%/boost/format/free_funcs.cc \
|
||||
%D%/boost/format/parsing.cc \
|
||||
%D%/boost/format/format_implementation.cc
|
||||
|
||||
libformat_headers = \
|
||||
nix/boost/throw_exception.hpp \
|
||||
nix/boost/format.hpp \
|
||||
nix/boost/assert.hpp \
|
||||
nix/boost/format/macros_default.hpp \
|
||||
nix/boost/format/format_fwd.hpp \
|
||||
nix/boost/format/format_class.hpp \
|
||||
nix/boost/format/exceptions.hpp \
|
||||
nix/boost/format/group.hpp \
|
||||
nix/boost/format/feed_args.hpp \
|
||||
nix/boost/format/internals_fwd.hpp \
|
||||
nix/boost/format/internals.hpp
|
||||
%D%/boost/throw_exception.hpp \
|
||||
%D%/boost/format.hpp \
|
||||
%D%/boost/assert.hpp \
|
||||
%D%/boost/format/macros_default.hpp \
|
||||
%D%/boost/format/format_fwd.hpp \
|
||||
%D%/boost/format/format_class.hpp \
|
||||
%D%/boost/format/exceptions.hpp \
|
||||
%D%/boost/format/group.hpp \
|
||||
%D%/boost/format/feed_args.hpp \
|
||||
%D%/boost/format/internals_fwd.hpp \
|
||||
%D%/boost/format/internals.hpp
|
||||
|
||||
libformat_a_CPPFLAGS = \
|
||||
-I$(top_srcdir)/nix
|
||||
|
||||
libutil_a_SOURCES = \
|
||||
nix/libutil/archive.cc \
|
||||
nix/libutil/affinity.cc \
|
||||
nix/libutil/serialise.cc \
|
||||
nix/libutil/util.cc \
|
||||
nix/libutil/xml-writer.cc \
|
||||
nix/libutil/hash.cc \
|
||||
nix/libutil/gcrypt-hash.cc
|
||||
%D%/libutil/archive.cc \
|
||||
%D%/libutil/affinity.cc \
|
||||
%D%/libutil/serialise.cc \
|
||||
%D%/libutil/util.cc \
|
||||
%D%/libutil/xml-writer.cc \
|
||||
%D%/libutil/hash.cc \
|
||||
%D%/libutil/gcrypt-hash.cc
|
||||
|
||||
libutil_headers = \
|
||||
nix/libutil/affinity.hh \
|
||||
nix/libutil/hash.hh \
|
||||
nix/libutil/serialise.hh \
|
||||
nix/libutil/xml-writer.hh \
|
||||
nix/libutil/util.hh \
|
||||
nix/libutil/archive.hh \
|
||||
nix/libutil/types.hh \
|
||||
nix/libutil/gcrypt-hash.hh \
|
||||
nix/libutil/md5.h \
|
||||
nix/libutil/sha1.h \
|
||||
nix/libutil/sha256.h \
|
||||
nix/libutil/sha512.h
|
||||
%D%/libutil/affinity.hh \
|
||||
%D%/libutil/hash.hh \
|
||||
%D%/libutil/serialise.hh \
|
||||
%D%/libutil/xml-writer.hh \
|
||||
%D%/libutil/util.hh \
|
||||
%D%/libutil/archive.hh \
|
||||
%D%/libutil/types.hh \
|
||||
%D%/libutil/gcrypt-hash.hh \
|
||||
%D%/libutil/md5.h \
|
||||
%D%/libutil/sha1.h \
|
||||
%D%/libutil/sha256.h \
|
||||
%D%/libutil/sha512.h
|
||||
|
||||
libutil_a_CPPFLAGS = \
|
||||
-I$(top_builddir)/nix \
|
||||
-I$(top_srcdir)/nix/libutil \
|
||||
-I$(top_srcdir)/%D%/libutil \
|
||||
$(libformat_a_CPPFLAGS)
|
||||
|
||||
libstore_a_SOURCES = \
|
||||
nix/libstore/gc.cc \
|
||||
nix/libstore/globals.cc \
|
||||
nix/libstore/misc.cc \
|
||||
nix/libstore/references.cc \
|
||||
nix/libstore/store-api.cc \
|
||||
nix/libstore/optimise-store.cc \
|
||||
nix/libstore/local-store.cc \
|
||||
nix/libstore/build.cc \
|
||||
nix/libstore/pathlocks.cc \
|
||||
nix/libstore/derivations.cc
|
||||
%D%/libstore/gc.cc \
|
||||
%D%/libstore/globals.cc \
|
||||
%D%/libstore/misc.cc \
|
||||
%D%/libstore/references.cc \
|
||||
%D%/libstore/store-api.cc \
|
||||
%D%/libstore/optimise-store.cc \
|
||||
%D%/libstore/local-store.cc \
|
||||
%D%/libstore/build.cc \
|
||||
%D%/libstore/pathlocks.cc \
|
||||
%D%/libstore/derivations.cc
|
||||
|
||||
libstore_headers = \
|
||||
nix/libstore/references.hh \
|
||||
nix/libstore/pathlocks.hh \
|
||||
nix/libstore/globals.hh \
|
||||
nix/libstore/worker-protocol.hh \
|
||||
nix/libstore/derivations.hh \
|
||||
nix/libstore/misc.hh \
|
||||
nix/libstore/local-store.hh \
|
||||
nix/libstore/store-api.hh
|
||||
%D%/libstore/references.hh \
|
||||
%D%/libstore/pathlocks.hh \
|
||||
%D%/libstore/globals.hh \
|
||||
%D%/libstore/worker-protocol.hh \
|
||||
%D%/libstore/derivations.hh \
|
||||
%D%/libstore/misc.hh \
|
||||
%D%/libstore/local-store.hh \
|
||||
%D%/libstore/store-api.hh
|
||||
|
||||
libstore_a_CPPFLAGS = \
|
||||
$(libutil_a_CPPFLAGS) \
|
||||
-I$(top_srcdir)/nix/libstore \
|
||||
-I$(top_builddir)/nix/libstore \
|
||||
-I$(top_srcdir)/%D%/libstore \
|
||||
-I$(top_builddir)/%D%/libstore \
|
||||
-DNIX_STORE_DIR=\"$(storedir)\" \
|
||||
-DNIX_DATA_DIR=\"$(datadir)\" \
|
||||
-DNIX_STATE_DIR=\"$(localstatedir)/guix\" \
|
||||
|
@ -121,29 +121,29 @@ bin_PROGRAMS = guix-daemon
|
|||
sbin_PROGRAMS = guix-register
|
||||
|
||||
guix_daemon_SOURCES = \
|
||||
nix/nix-daemon/nix-daemon.cc \
|
||||
nix/nix-daemon/guix-daemon.cc
|
||||
%D%/nix-daemon/nix-daemon.cc \
|
||||
%D%/nix-daemon/guix-daemon.cc
|
||||
|
||||
guix_daemon_CPPFLAGS = \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
$(libutil_a_CPPFLAGS) \
|
||||
-I$(top_srcdir)/nix/libstore
|
||||
-I$(top_srcdir)/%D%/libstore
|
||||
|
||||
guix_daemon_LDADD = \
|
||||
libstore.a libutil.a libformat.a -lbz2 \
|
||||
$(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)
|
||||
|
||||
guix_daemon_headers = \
|
||||
nix/nix-daemon/shared.hh
|
||||
%D%/nix-daemon/shared.hh
|
||||
|
||||
|
||||
guix_register_SOURCES = \
|
||||
nix/guix-register/guix-register.cc
|
||||
%D%/guix-register/guix-register.cc
|
||||
|
||||
guix_register_CPPFLAGS = \
|
||||
$(libutil_a_CPPFLAGS) \
|
||||
$(libstore_a_CPPFLAGS) \
|
||||
-I$(top_srcdir)/nix/libstore
|
||||
-I$(top_srcdir)/%D%/libstore
|
||||
|
||||
# XXX: Should we start using shared libs?
|
||||
guix_register_LDADD = \
|
||||
|
@ -155,7 +155,7 @@ noinst_HEADERS = \
|
|||
$(libformat_headers) $(libutil_headers) $(libstore_headers) \
|
||||
$(guix_daemon_headers)
|
||||
|
||||
nix/libstore/schema.sql.hh: nix/libstore/schema.sql
|
||||
%D%/libstore/schema.sql.hh: %D%/libstore/schema.sql
|
||||
$(AM_V_GEN)$(GUILE) --no-auto-compile -c \
|
||||
"(use-modules (rnrs io ports)) \
|
||||
(call-with-output-file \"$@\" \
|
||||
|
@ -165,20 +165,20 @@ nix/libstore/schema.sql.hh: nix/libstore/schema.sql
|
|||
(write (get-string-all in) out)))))"
|
||||
|
||||
nodist_pkglibexec_SCRIPTS = \
|
||||
nix/scripts/list-runtime-roots \
|
||||
nix/scripts/substitute
|
||||
%D%/scripts/list-runtime-roots \
|
||||
%D%/scripts/substitute
|
||||
|
||||
if BUILD_DAEMON_OFFLOAD
|
||||
|
||||
nodist_pkglibexec_SCRIPTS += \
|
||||
nix/scripts/offload
|
||||
%D%/scripts/offload
|
||||
|
||||
endif BUILD_DAEMON_OFFLOAD
|
||||
|
||||
|
||||
# XXX: It'd be better to hide it in $(pkglibexecdir).
|
||||
nodist_libexec_SCRIPTS = \
|
||||
nix/scripts/guix-authenticate
|
||||
%D%/scripts/guix-authenticate
|
||||
|
||||
# The '.service' file for systemd.
|
||||
systemdservicedir = $(libdir)/systemd/system
|
||||
|
@ -203,9 +203,9 @@ etc/guix-daemon.conf: etc/guix-daemon.conf.in \
|
|||
mv "$@.tmp" "$@"
|
||||
|
||||
EXTRA_DIST += \
|
||||
nix/libstore/schema.sql \
|
||||
nix/AUTHORS \
|
||||
nix/COPYING \
|
||||
%D%/libstore/schema.sql \
|
||||
%D%/AUTHORS \
|
||||
%D%/COPYING \
|
||||
etc/guix-daemon.service.in \
|
||||
etc/guix-daemon.conf.in
|
||||
|
||||
|
|
Loading…
Reference in New Issue