aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Makefile.am (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Switch from Automake to GNU MakePaul Eggert2017-03-171-53/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
* Update copyright year to 2017 in masterPaul Eggert2017-01-011-1/+1
| | | | | | Run admin/update-copyright in the master branch. This fixes files that were not already fixed in the emacs-25 branch before it was merged here.
* Tell Automake the new lib/Makefile.am is OKPaul Eggert2016-01-301-0/+3
| | | | * lib/Makefile.am (AUTOMAKE_OPTIONS): Add -Wno-portability.
* Build lib/e-*.o only on platforms that need itPaul Eggert2016-01-301-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (hybrid malloc): Simplify configuration. (SHEAP_OBJ): Remove; no longer needed. (HYBRID_MALLOC): New var. Subst it. (HYBRID_MALLOC_LIB): New Automake conditional. * lib/Makefile.am (noinst_LIBRARIES): Add libegnu.a only if HYBRID_MALLOC_LIB. (libegnu_a_CPPFLAGS): Omit AM_CPPFLAGS; not needed. (MOSTLYCLEANFILES): Add libegnu.a. * src/Makefile.in (SHEAP_OBJ): Remove. (HYBRID_MALLOC): New macro. (base_obj): Use it to conditionally add sheap.o. (LIBEGNU_ARCHIVE): New macro. ($(LIBEGNU_ARCHIVE)): New rule, replacing $(lib)/libegnu.a. All uses of the latter replaced by the former. * src/alloc.c (USE_ALIGNED_ALLOC): Simplify configuration. Correct misspelling ALIGNED_ALLOC to HAVE_ALIGNED_ALLOC. * src/gmalloc.c: Update comment. * src/lisp.h (aligned_alloc) [!DOUG_LEA_MALLOC && !HYBRID_MALLOC && !SYSTEM_MALLOC]: New decl. (Bug#22086)
* Link temacs with gnulib compiled with -DemacsWolfgang Jenkner2016-01-301-0/+9
| | | | | | | | | This is done to support HYBRID_MALLOC, since some static variables (e.g., last_environ in putenv.c) hold pointers to memory malloced before dumping (Bug#22086). * lib/Makefile.am: Add incantation to install libegnu.a. * src/Makefile.in ($(lib)/libgnu.a): Replace with libegnu.a (temacs$(EXEEXT)): Use it.
* Parallelize clean rules using GNU make featuresGlenn Morris2014-06-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in: (submake_template): New definition. (mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs): New variables. (mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean) (extraclean): Define using each subdirectory as a prequisite. * lib/Makefile.am (bootstrap-clean): * doc/emacs/Makefile.in (bootstrap-clean): * doc/lispintro/Makefile.in (bootstrap-clean): * doc/lispref/Makefile.in (bootstrap-clean): * doc/misc/Makefile.in (bootstrap-clean): * lib-src/Makefile.in (bootstrap-clean): * lwlib/Makefile.in (bootstrap-clean): * nextstep/Makefile.in (bootstrap-clean): * nt/Makefile.in (bootstrap-clean): * oldXMenu/Makefile.in (bootstrap-clean): New rules, for symmetry/simplicity. * lwlib/Makefile.in (mostlyclean, clean, distclean, maintainer-clean): * oldXMenu/Makefile.in (mostlyclean, clean, distclean, maintainer-clean, tags): Declare as PHONY.
* Merge from trunk, configury not fixed yet.Eli Zaretskii2013-05-151-0/+2
|\
| * Use Gnulib ACL implementation, for benefit of Solaris etc.Paul Eggert2013-05-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Remove -with-acl option, since Gnulib does that for us now. (LIBACL_LIBS): Remove; no longer needed. * lib/Makefile.am (CLEANFILES, SUFFIXES): New (empty) macros, for the benefit of the new ACL implementation. * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/acl-errno-valid.$(O). ($(BLD)/acl-errno-valid.$(O)): New rule. * lib/acl-errno-valid.c, lib/acl-internal.h, lib/acl.h: * lib/acl_entries.c, lib/errno.in.h, lib/file-has-acl.c: * lib/qcopy-acl.c, lib/qset-acl.c, m4/acl.m4, m4/errno_h.m4: New files, taken from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * admin/merge-gnulib (GNULIB_MODULES): Add qacl. (GNULIB_TOOL_FLAGS): Do not avoid errno. * etc/NEWS: Emacs is no longer limited to POSIX ACLs. --disable-acl, not --without-acl, since we're now using Gnulib's implementation. * nt/config.nt (HAVE_ACL_SET_FILE): Rename from HAVE_POSIX_ACL. * nt/inc/ms-w32.h (EOPNOTSUPP): New macro. * src/Makefile.in (LIB_ACL): New macro. (LIBACL_LIBS): Remove. (LIBES): Use LIB_ACL, not LIBACL_LIBS. * src/fileio.c: Include <acl.h>. Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL. (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by !acl_errno_valid. (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling it ourselves. Fixes: debbugs:14295
* | Merge from trunk, resolve conflicts.Eli Zaretskii2013-04-141-1/+1
|\ \ | |/
| * Fix --enable-profiling bug introduced by 2013-02-25 change.Paul Eggert2013-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug was introduced by my 2013-02-25 change that simplified data_start configuration. Without this change, on GNU/Linux an Emacs configured with --enable-profiling fails immediately due to a profiler signal. * configure.ac (LD_SWITCH_SYSTEM_TEMACS): Append -pg if profiling and if not on GNU/Linux or FreeBSD. * lib/Makefile.am (AM_CFLAGS): Add $(PROFILING_CFLAGS), so that lib/*.o is profiled too. * src/Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link with these flags. On platforms where special flags are needed when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS. (ALL_CFLAGS): Remove $(PROFILING_CFLAGS). (.c.o, .m.o): Compile with $(PROFILING_CFLAGS). Fixes: debbugs:13783
* | Added nt/gnulib.mk and removed kludges from ms-w32.h and ntlib.h.Eli Zaretskii2013-03-311-0/+4
|/
* Use fdopendir, fstatat and readlinkat, for efficiency.Paul Eggert2013-01-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On my host, this speeds up directory-files-and-attributes by a factor of 3, when applied to Emacs's src directory. These functions are standardized by POSIX and are common these days; fall back on a (slower) gnulib implementation if the host is too old to supply them. * .bzrignore: Add lib/dirent.h. * lib/Makefile.am (libgnu_a_SOURCES): Add openat-die.c, save-cwd.c. * lib/careadlinkat.c, lib/careadlinkat.h: Merge from gnulib, incorporating: 2013-01-29 careadlinkat: do not provide careadlinkatcwd. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * lib/dirent.in.h, lib/fdopendir.c, lib/fstatat.c, lib/openat-priv.h: * lib/openat-proc.c, lib/openat.h, m4/dirent_h.m4, m4/fdopendir.m4: * m4/fstatat.m4: New files, from gnulib. * lib/openat-die.c, lib/save-cwd.c, lib/save-cwd.h: New files. These last three are specific to Emacs and are not copied from gnulib. They are simpler than the gnulib versions and are tuned for Emacs. * admin/merge-gnulib (GNULIB_MODULES): Add fdopendir, fstatat, readlinkat. (GNULIB_TOOL_FLAGS): Do not avoid at-internal, openat-h. Avoid dup, open, opendir. * nt/inc/sys/stat.h (fstatat): * nt/inc/unistd.h (readlinkat): New decls. * src/conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove. * src/dired.c: Include <fcntl.h>. (open_directory): New function, which uses open and fdopendir rather than opendir. DOS_NT platforms still use opendir, though. (directory_files_internal, file_name_completion): Use it. (file_attributes): New function, with most of the old Ffile_attributes. (directory_files_internal, Ffile_attributes): Use it. (file_attributes, file_name_completion_stat): First arg is now fd, not dir name. All uses changed. Use fstatat rather than lstat + stat. (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p. * src/fileio.c: Include <allocator.h>, <careadlinkat.h>. (emacs_readlinkat): New function, with much of the old Ffile_symlink_p, but with an fd argument for speed. It uses readlinkat rather than careadlinkatcwd, so that it need not assume the working directory. (Ffile_symlink_p): Use it. * src/filelock.c (current_lock_owner): Use emacs_readlinkat rather than emacs_readlink. * src/lisp.h (emacs_readlinkat): New decl. (READLINK_BUFSIZE, emacs_readlink): Remove. * src/sysdep.c: Do not include <allocator.h>, <careadlinkat.h>. (emacs_norealloc_allocator, emacs_readlink): Remove. This stuff is moved to fileio.c. * src/w32.c (fstatat, readlinkat): New functions. (careadlinkat): Don't check that fd == AT_FDCWD. (careadlinkatcwd): Remove; no longer needed. Fixes: debbugs:13539
* * lib/Makefile.am (DEFAULT_INCLUDES): Add -I$(top_srcdir)/lib for ↵YAMAMOTO Mitsuharu2012-08-021-1/+1
| | | | out-of-tree build.
* configure: new option --enable-gcc-warningsPaul Eggert2012-04-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have been using this change for many months in my private copy of Emacs, and have used it to find several bugs. It's mature enough to publish now. * Makefile.in (GNULIB_MODULES): Add warnings, manywarnings. * configure.in: Support --enable-gcc-warnings, in the style of other GNU packages such as coreutils. (C_WARNINGS_SWITCH): Remove, replacing with... (WARN_CFLAGS, GNULIB_WARN_CFLAGS): New variable. (PKG_CHECK_MODULES, C_SWITCH_X_SITE): Use -isystem rather than -I, when including system files with GCC. * etc/NEWS: Mention --enable-gcc-warnings. * lib/Makefile.am (AM_CFLAGS): New macro. * m4/manywarnings.m4, m4/warnings.m4: New files, from gnulib. * lib-src/Makefile.in (C_WARNINGS_SWITCH): Remove. (WARN_CFLAGS, WERROR_CFLAGS): New macros. (BASE_CFLAGS): Use new macros rather than old. * lwlib/Makefile.in (C_WARNINGS_SWITCH): Remove. (WARN_CFLAGS, WERROR_CFLAGS): New macros. (ALL_CFLAGS): Use new macros rather than old. * oldXMenu/Makefile.in (C_WARNINGS_SWITCH): Remove. (WARN_CFLAGS, WERROR_CFLAGS): New macros. (ALL_CFLAGS): Use new macros rather than old. * src/Makefile.in (C_WARNINGS_SWITCH): Remove. (WARN_CFLAGS, WERROR_CFLAGS): New macros. (ALL_CFLAGS): Use new macros rather than old. * src/process.c: Ignore -Wstrict-overflow to work around GCC bug 52904. * src/regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore -Wunused-but-set-variable, -Wunused-function, -Wunused-macros, -Wunused-result, -Wunused-variable. This should go away once the Emacs and Gnulib regex code is merged. (xmalloc, xrealloc): Now static.
* Import filemode module from gnulib.Paul Eggert2011-02-201-0/+1
| | | | | | | | | | | | | | | | * .bzrignore: Add lib/sys/. * Makefile.in (GNULIB_MODULES): Add filemode. * lib/Makefile.am (MOSTLYCLEANDIRS): New macro. * lib/filemode.c: Renamed from src/filemode.c and regenerated from gnulib. This adds support for some more file types, e.g., Cray DMF migrated files. * lisp/emacs-lisp/find-gc.el (find-gc-source-files): Remove filemode.c. * lib/filemode.h, lib/sys_stat.in.h, m4/filemode.m4, m4/st_dm_mode.m4: * m4/sys_stat_h.m4: New files, generated from gnulib. * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4: Regenerate. 2011-02-20 Paul Eggert <eggert@cs.ucla.edu>
* gnulib: undo previous changePaul Eggert2011-02-061-2/+0
|
* gnulib: adjust to upstream _HEADERS changePaul Eggert2011-02-061-0/+2
|
* Automate syncing from gnulib.Paul Eggert2011-01-081-0/+8