#ifdef vms
#undef vms
#endif

/* Some machines don't find the standard C libraries in the usual place.  */
#ifndef ORDINARY_LINK
#ifndef LIB_STANDARD
#define LIB_STANDARD -lc
#endif
#else
#ifndef LIB_STANDARD
#define LIB_STANDARD
#endif
#endif

/* Unless inhibited or changed, use -lg to link for debugging.  */
#ifndef LIBS_DEBUG
#define LIBS_DEBUG
#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 LIB_MATH
# ifdef LISP_FLOAT_TYPE
#  define LIB_MATH -lm
# else /* ! defined (LISP_FLOAT_TYPE) */
#  define LIB_MATH
# endif /* ! defined (LISP_FLOAT_TYPE) */
#endif /* LIB_MATH */

#ifndef LIBX10_MACHINE
#define LIBX10_MACHINE
#endif

#ifndef LIBX11_MACHINE
#define LIBX11_MACHINE
#endif

#ifndef LIBX10_SYSTEM
#define LIBX10_SYSTEM
#endif

#ifndef LIBX11_SYSTEM
#define LIBX11_SYSTEM
#endif

#ifndef LIB_X11_LIB
#define LIB_X11_LIB -lX11
#endif

#ifdef HAVE_X_WINDOWS
#ifdef HAVE_X_MENU

/* Include xmenu.obj in the list of X object files.  */
#define XOBJ ,xterm.obj, xfns.obj, xfaces.obj, xmenu.obj, xselect.obj, xrdb.obj

/* The X Menu stuff is present in the X10 distribution, but missing
   from X11.  If we have X10, just use the installed library;
   otherwise, use our own copy.  */
#ifdef HAVE_X11
#define OLDXMENU [-.oldXMenu]libXMenu11.olb
#define LIBXMENU OLDXMENU/lib
#else /* ! defined (HAVE_X11) */
#define LIBXMENU -lXMenu
#endif /* ! defined (HAVE_X11) */

#else /* ! defined (HAVE_X_MENU) */

/* Otherwise, omit xmenu.obj from the list of X object files, and
   don't worry about the menu library at all.  */
#define XOBJ , xterm.obj, xfns.obj, xfaces.obj, xselect.obj, xrdb.obj
#define LIBXMENU
#endif /* ! defined (HAVE_X_MENU) */

#ifdef HAVE_X11
#define LIBX LIBXMENU LD_SWITCH_X_SITE LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
#else /* ! defined (HAVE_X11) */
#define LIBX LIBXMENU LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
#endif /* ! defined (HAVE_X11) */
#endif /* ! defined (HAVE_X_WINDOWS) */

#define VMSLIB [-.vms]vmslib.olb
#define LIB_VMSLIB VMSLIB/lib

/* Construct full set of libraries to be linked.
   Note that SunOS needs -lm to come before -lc; otherwise, you get
   duplicated symbols.  If the standard libraries were compiled
   with GCC, we might need gnulib again after them.  */
#define LIBES LIB_VMSLIB LIBX LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
   LIBS_DEBUG LIB_MATH LIB_STANDARD

#ifdef USE_TEXT_PROPERTIES
#define INTERVAL_OBJ ,intervals.obj, textprop.obj
#else
#define INTERVAL_OBJ
#endif

#ifdef HAVE_GETLOADAVG
#define GETLOADAVG_OBJ
#else
#define GETLOADAVG_OBJ ,getloadavg.obj
#endif

#ifdef TERMINFO
/* Used to be -ltermcap here.  If your machine needs that,
   define LIBS_TERMCAP in the m/*.h file.  */
#ifndef LIBS_TERMCAP
#define LIBS_TERMCAP -lcurses
#endif /* LIBS_TERMCAP */
#define termcapobj terminfo.obj
#else /* ! defined (TERMINFO) */
#ifndef LIBS_TERMCAP
#define LIBS_TERMCAP
#define termcapobj termcap.obj, tparam.obj
#else /* LIBS_TERMCAP */
#define termcapobj tparam.obj
#endif /* LIBS_TERMCAP */
#endif /* ! defined (TERMINFO) */

#ifndef SYSTEM_MALLOC

#ifdef GNU_MALLOC  /* New GNU malloc */
#ifdef REL_ALLOC
#define mallocobj ,vmsgmalloc.obj, ralloc.obj, vm-limit.obj
#else /* ! defined (REL_ALLOC) */
#define mallocobj ,vmsgmalloc.obj, vm-limit.obj
#endif /* ! defined (REL_ALLOC) */
#else /* Old GNU malloc */
#define mallocobj ,malloc.obj
#endif /* Old GNU malloc */

#endif /* SYSTEM_MALLOC */

#ifndef HAVE_ALLOCA
#define allocaobj ,alloca.obj
#else
#define allocaobj
#endif

#ifdef LISP_FLOAT_TYPE
#define FLOAT_SUPPORT float-sup.elc
#else
#define FLOAT_SUPPORT
#endif

#ifdef MULTI_FRAME
#define FRAME_SUPPORT frame.elc mouse.elc select.elc scroll-bar.elc
#else
#define FRAME_SUPPORT
#endif

#ifdef VMS
#define VMS_SUPPORT vmsproc.elc vms-patch.elc
#define VMS_SUPPORT_PRE44 vmsproc.elc vms_patch.elc
#else
#define VMS_SUPPORT
#define VMS_SUPPORT_PRE44
#endif

