# Makefile for lib-src subdirectory in GNU Emacs. # Copyright (C) 1985, 1987, 1988, 1993, 1994 Free Software Foundation, Inc. # This file is part of GNU Emacs. # GNU Emacs is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # GNU Emacs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ # Avoid trouble on systems where the `SHELL' variable might be # inherited from the environment. SHELL = /bin/sh # ==================== Things `configure' will edit ==================== CC=@CC@ CFLAGS=@CFLAGS@ ALLOCA=@ALLOCA@ LD = link LDFLAGS= YACC=@YACC@ version=@version@ version_us=@version_us@ configuration=@configuration@ sys_includes=@sys_includes@ # On Xenix and the IBM RS6000, double-dot gets screwed up. dot=. # With DEC C 5 and up, dot-star gets screwed up. star=* dotstar=$(dot)$(star) # ==================== Where To Install Things ==================== # The default location for installation. Everything is placed in # subdirectories of this directory. The default values for many of # the variables below are expressed in terms of this one, so you may # not need to change them. This is set with the --prefix option to # `../configure'. prefix_dev=@prefix_dev@ prefix_dir=@prefix_dir@ prefix=@prefix@ # Like `prefix', but used for architecture-specific files. This is # set with the --exec-prefix option to `../configure'. exec_prefix_dev=@exec_prefix_dev@ exec_prefix_dir=@exec_prefix_dir@ exec_prefix=@exec_prefix@ # Where to install Emacs and other binaries that people will want to # run directly (like etags). This is set with the --bindir option # to `../configure'. bindir_dev=@bindir_dev@ bindir_dir=@bindir_dir@ bindir=@bindir@ # Where to install and expect executable files to be run by Emacs # rather than directly by users, and other architecture-dependent # data. ${archlibdir} is usually below this. This is set with the # --libdir option to `../configure'. libdir_dev=@libdir_dev@ libdir_dir=@libdir_dir@ libdir=@libdir@ # Where to find the source code. This is set by the configure # script's `--srcdir' option. However, the value of ${srcdir} in # this makefile is not identical to what was specified with --srcdir, # since the variable here has `/lib-src' added at the end. srcdir_dev=@srcdir_dev@ srcdir_dir=@srcdir_dir@ srcdir=@srcdir@ VPATH=@srcdir@ # Where to find some usefull VMS scripts vmssrcdir=$(srcdir_dev)[$(srcdir_dir).-.vms] # ==================== Emacs-specific directories ==================== # These variables hold the values Emacs will actually use. They are # based on the values of the standard Make variables above. # Where to put executables to be run by Emacs rather than the user. # This path usually includes the Emacs version and configuration name, # so that multiple configurations for multiple versions of Emacs may # be installed at once. This can be set with the --archlibdir option # to `../configure'. archlibdir=@archlibdir@ # ==================== Utility Programs for the Build ================ # ../configure figures out the correct values for these. INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ # ========================== Lists of Files ========================== # Things that a user might actually run, # which should be installed in bindir. # removed: emacsclient.exe, ctags.exe, INSTALLABLES = etags.exe,b2m.exe INSTALLABLE_SCRIPTS = emacsclient.com # Things that Emacs runs internally, or during the build process, # which should not be installed in bindir. # removed: movemail.exe, cvtmail.exe, fakemail.exe, emacsserver.exe, timer.exe UTILITIES= test-distrib.exe,wakeup.exe,profile.exe,make-docfile.exe,\ digest-doc.exe,sorted-doc.exe,yow.exe,hexl.exe,vmssendmail.exe,\ vmsgetmail.exe # Like UTILITIES, but they're not system-dependent, and should not be # deleted by the distclean target. SCRIPTS= emacsserver.com EXECUTABLES= $(UTILITIES), $(INSTALLABLES), $(SCRIPTS), $(INSTALLABLE_SCRIPTS) SOURCES = COPYING ChangeLog Makefile.in README aixcc.lex emacs.csh \ makedoc.com *.c *.h *.y rcs2log vcdiff # ========================== start of cpp stuff ======================= /* From here on, comments must be done in C syntax. */ #ifdef vms #undef vms /* let's depend on VMS, right? */ #endif #ifdef VAXC #undef VAXC #endif #ifdef vaxc #undef vaxc #endif #define NO_SHORTNAMES #define THIS_IS_YMAKEFILE #define NOT_C_CODE #include "config.h" /* We won't really call alloca; don't let the file name alloca.c get messed up. */ #ifdef alloca #undef alloca #endif /* Some s/*.h files define this to request special libraries. */ #ifndef LIBS_SYSTEM #define LIBS_SYSTEM #endif /* Some m/*.h files define this to request special libraries. */ #ifndef LIBS_MACHINE #define LIBS_MACHINE #endif #ifndef C_SWITCH_SYSTEM #define C_SWITCH_SYSTEM #endif #ifndef C_SWITCH_MACHINE #define C_SWITCH_MACHINE #endif #undef MOVEMAIL_NEEDS_BLESSING #ifndef MAIL_USE_FLOCK #ifndef MAIL_USE_LOCKF #define MOVEMAIL_NEEDS_BLESSING #endif #endif #ifdef MOVEMAIL_NEEDS_BLESSING #define BLESSMAIL blessmail #else #define BLESSMAIL #endif LOADLIBES=LIBS_SYSTEM LIBS_MACHINE /* We need to #define emacs to get the right versions of some files. Some other files - those shared with other GNU utilities - need HAVE_CONFIG_H #defined before they know they can take advantage of the information in [-.src]config.h. */ ALL_CFLAGS = /define=("emacs"="","HAVE_CONFIG_H"="", "NOT_C_CODE"=""\ 'extra_defs') /include=(local_includes: 'extra_incl')\ C_SWITCH_SYSTEM $(CPPFLAGS) $(CFLAGS) LINK_CFLAGS = /define=("emacs"="","HAVE_CONFIG_H"="", "NOT_C_CODE"=""\ 'extra_defs') /include=(local_includes: 'extra_incl')\ C_SWITCH_SYSTEM $(CFLAGS) CPP_CFLAGS = /define=("emacs"="","HAVE_CONFIG_H"="", "NOT_C_CODE"=""\ 'extra_defs') /include=(local_includes: 'extra_incl')\ C_SWITCH_SYSTEM $(CPPFLAGS) $(CFLAGS) ALLOCA_CFLAGS = /define=("HAVE_CONFIG_H"="","NOT_C_CODE"="" 'extra_defs') \ /include=(local_includes: 'extra_incl') C_SWITCH_SYSTEM $(CPPFLAGS) $(CFLAGS) .FIRST : if "$(sys_includes)" .nes. "" then - define /nolog sys $(sys_includes),sys$disk:[] if "$(sys_includes)" .eqs. "" then - define /nolog sys sys$disk:[] @ extra_defs = "" @ extra_incl = "" define /nolog local_includes - sys$disk:[],- sys$disk:[-.src],- $(srcdir),- $(srcdir_dev)[$(srcdir_dir).-.src],- $(srcdir_dev)[$(srcdir_dir).-.vms] /* This is the default compilation command. But we should never rely on it, because some make version failed to find it for getopt.o. Using an explicit command made it work. */ .c.obj : $(CC) $(CPP_CFLAGS) $(MMS$SOURCE) /obj=$(MMS$TARGET) .obj.exe : $(LD) $(LDFLAGS) /exec=$*.exe $*.OBJ,[-.vms]vmslink.opt/opt .c.exe : $(CC) $(ALL_CFLAGS) $< /obj = $*.obj $(LD) $(LDFLAGS) /exec=$*.exe $*.OBJ,[-.vms]vmslink.opt/opt delete $*.obj$(dotstar) all : $(UTILITIES) $(INSTALLABLES) @ ! #if 0 /* NOT ON VMS */ #ifdef MOVEMAIL_NEEDS_BLESSING blessmail: ../src/emacs -batch -l ../lisp/blessmail.el chmod +x blessmail #endif maybe-blessmail: BLESSMAIL #ifdef MOVEMAIL_NEEDS_BLESSING /* Don't charge ahead and do it! Let the installer decide. ./blessmail ${archlibdir}/movemail */ @if [ `wc -l