annotate nt/README @ 4981:4aebb0131297

Cleanups/renaming of EXTERNAL_TO_C_STRING and friends -------------------- ChangeLog entries follow: -------------------- modules/ChangeLog addition: 2010-02-05 Ben Wing <ben@xemacs.org> * postgresql/postgresql.c: * postgresql/postgresql.c (CHECK_LIVE_CONNECTION): * postgresql/postgresql.c (Fpq_connectdb): * postgresql/postgresql.c (Fpq_connect_start): * postgresql/postgresql.c (Fpq_lo_import): * postgresql/postgresql.c (Fpq_lo_export): * ldap/eldap.c (Fldap_open): * ldap/eldap.c (Fldap_search_basic): * ldap/eldap.c (Fldap_add): * ldap/eldap.c (Fldap_modify): * ldap/eldap.c (Fldap_delete): * canna/canna_api.c (Fcanna_initialize): * canna/canna_api.c (Fcanna_store_yomi): * canna/canna_api.c (Fcanna_parse): * canna/canna_api.c (Fcanna_henkan_begin): EXTERNAL_TO_C_STRING returns its argument instead of storing it in a parameter, and is renamed to EXTERNAL_TO_ITEXT. Similar things happen to related macros. See entry in src/ChangeLog. More Mule-izing of postgresql.c. Extract out common code between `pq-connectdb' and `pq-connect-start'. Fix places that signal an error string using a formatted string to instead follow the standard and have a fixed reason followed by the particular error message stored as one of the frobs. src/ChangeLog addition: 2010-02-05 Ben Wing <ben@xemacs.org> * console-msw.c (write_string_to_mswindows_debugging_output): * console-msw.c (Fmswindows_message_box): * console-x.c (x_perhaps_init_unseen_key_defaults): * console.c: * database.c (dbm_get): * database.c (dbm_put): * database.c (dbm_remove): * database.c (berkdb_get): * database.c (berkdb_put): * database.c (berkdb_remove): * database.c (Fopen_database): * device-gtk.c (gtk_init_device): * device-msw.c (msprinter_init_device_internal): * device-msw.c (msprinter_default_printer): * device-msw.c (msprinter_init_device): * device-msw.c (sync_printer_with_devmode): * device-msw.c (Fmsprinter_select_settings): * device-x.c (sanity_check_geometry_resource): * device-x.c (Dynarr_add_validified_lisp_string): * device-x.c (x_init_device): * device-x.c (Fx_put_resource): * device-x.c (Fx_valid_keysym_name_p): * device-x.c (Fx_set_font_path): * dialog-msw.c (push_lisp_string_as_unicode): * dialog-msw.c (handle_directory_dialog_box): * dialog-msw.c (handle_file_dialog_box): * dialog-x.c (dbox_descriptor_to_widget_value): * editfns.c (Fformat_time_string): * editfns.c (Fencode_time): * editfns.c (Fset_time_zone_rule): * emacs.c (make_argc_argv): * emacs.c (Fdump_emacs): * emodules.c (emodules_load): * eval.c: * eval.c (maybe_signal_error_1): * event-msw.c (Fdde_alloc_advise_item): * event-msw.c (mswindows_dde_callback): * event-msw.c (mswindows_wnd_proc): * fileio.c (report_error_with_errno): * fileio.c (Fsysnetunam): * fileio.c (Fdo_auto_save): * font-mgr.c (extract_fcapi_string): * font-mgr.c (Ffc_config_app_font_add_file): * font-mgr.c (Ffc_config_app_font_add_dir): * font-mgr.c (Ffc_config_filename): * frame-gtk.c (gtk_set_frame_text_value): * frame-gtk.c (gtk_create_widgets): * frame-msw.c (mswindows_init_frame_1): * frame-msw.c (mswindows_set_title_from_ibyte): * frame-msw.c (msprinter_init_frame_3): * frame-x.c (x_set_frame_text_value): * frame-x.c (x_set_frame_properties): * frame-x.c (start_drag_internal_1): * frame-x.c (x_cde_transfer_callback): * frame-x.c (x_create_widgets): * glyphs-eimage.c (my_jpeg_output_message): * glyphs-eimage.c (jpeg_instantiate): * glyphs-eimage.c (gif_instantiate): * glyphs-eimage.c (png_instantiate): * glyphs-eimage.c (tiff_instantiate): * glyphs-gtk.c (xbm_instantiate_1): * glyphs-gtk.c (gtk_xbm_instantiate): * glyphs-gtk.c (gtk_xpm_instantiate): * glyphs-gtk.c (gtk_xface_instantiate): * glyphs-gtk.c (cursor_font_instantiate): * glyphs-gtk.c (gtk_redisplay_widget): * glyphs-gtk.c (gtk_widget_instantiate_1): * glyphs-gtk.c (gtk_add_tab_item): * glyphs-msw.c (mswindows_xpm_instantiate): * glyphs-msw.c (bmp_instantiate): * glyphs-msw.c (mswindows_resource_instantiate): * glyphs-msw.c (xbm_instantiate_1): * glyphs-msw.c (mswindows_xbm_instantiate): * glyphs-msw.c (mswindows_xface_instantiate): * glyphs-msw.c (mswindows_redisplay_widget): * glyphs-msw.c (mswindows_widget_instantiate): * glyphs-msw.c (add_tree_item): * glyphs-msw.c (add_tab_item): * glyphs-msw.c (mswindows_combo_box_instantiate): * glyphs-msw.c (mswindows_widget_query_string_geometry): * glyphs-x.c (x_locate_pixmap_file): * glyphs-x.c (xbm_instantiate_1): * glyphs-x.c (x_xbm_instantiate): * glyphs-x.c (extract_xpm_color_names): * glyphs-x.c (x_xpm_instantiate): * glyphs-x.c (x_xface_instantiate): * glyphs-x.c (autodetect_instantiate): * glyphs-x.c (safe_XLoadFont): * glyphs-x.c (cursor_font_instantiate): * glyphs-x.c (x_redisplay_widget): * glyphs-x.c (Fchange_subwindow_property): * glyphs-x.c (x_widget_instantiate): * glyphs-x.c (x_tab_control_redisplay): * glyphs.c (pixmap_to_lisp_data): * gui-x.c (menu_separator_style_and_to_external): * gui-x.c (add_accel_and_to_external): * gui-x.c (button_item_to_widget_value): * hpplay.c (player_error_internal): * hpplay.c (play_sound_file): * hpplay.c (play_sound_data): * intl.c (Fset_current_locale): * lisp.h: * menubar-gtk.c (gtk_xemacs_set_accel_keys): * menubar-msw.c (populate_menu_add_item): * menubar-msw.c (populate_or_checksum_helper): * menubar-x.c (menu_item_descriptor_to_widget_value_1): * nt.c (init_user_info): * nt.c (get_long_basename): * nt.c (nt_get_resource): * nt.c (init_mswindows_environment): * nt.c (get_cached_volume_information): * nt.c (mswindows_readdir): * nt.c (read_unc_volume): * nt.c (mswindows_stat): * nt.c (mswindows_getdcwd): * nt.c (mswindows_executable_type): * nt.c (Fmswindows_short_file_name): * ntplay.c (nt_play_sound_file): * objects-gtk.c: * objects-gtk.c (gtk_valid_color_name_p): * objects-gtk.c (gtk_initialize_font_instance): * objects-gtk.c (gtk_font_list): * objects-msw.c (font_enum_callback_2): * objects-msw.c (parse_font_spec): * objects-x.c (x_parse_nearest_color): * objects-x.c (x_valid_color_name_p): * objects-x.c (x_initialize_font_instance): * objects-x.c (x_font_instance_truename): * objects-x.c (x_font_list): * objects-xlike-inc.c (XFUN): * objects-xlike-inc.c (xft_find_charset_font): * process-nt.c (mswindows_report_winsock_error): * process-nt.c (nt_create_process): * process-nt.c (get_internet_address): * process-nt.c (nt_open_network_stream): * process-unix.c: * process-unix.c (allocate_pty): * process-unix.c (get_internet_address): * process-unix.c (unix_canonicalize_host_name): * process-unix.c (unix_open_network_stream): * realpath.c: * select-common.h (lisp_data_to_selection_data): * select-gtk.c (symbol_to_gtk_atom): * select-gtk.c (atom_to_symbol): * select-msw.c (symbol_to_ms_cf): * select-msw.c (mswindows_register_selection_data_type): * select-x.c (symbol_to_x_atom): * select-x.c (x_atom_to_symbol): * select-x.c (hack_motif_clipboard_selection): * select-x.c (Fx_store_cutbuffer_internal): * sound.c (Fplay_sound_file): * sound.c (Fplay_sound): * sound.h (sound_perror): * sysdep.c: * sysdep.c (qxe_allocating_getcwd): * sysdep.c (qxe_execve): * sysdep.c (copy_in_passwd): * sysdep.c (qxe_getpwnam): * sysdep.c (qxe_ctime): * sysdll.c (dll_open): * sysdll.c (dll_function): * sysdll.c (dll_variable): * sysdll.c (search_linked_libs): * sysdll.c (dll_error): * sysfile.h: * sysfile.h (PATHNAME_CONVERT_OUT_TSTR): * sysfile.h (PATHNAME_CONVERT_OUT_UTF_8): * sysfile.h (PATHNAME_CONVERT_OUT): * sysfile.h (LISP_PATHNAME_CONVERT_OUT): * syswindows.h (ITEXT_TO_TSTR): * syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR): * syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT): * syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN): * syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR): * text.h: * text.h (eicpy_ext_len): * text.h (enum new_dfc_src_type): * text.h (EXTERNAL_TO_ITEXT): * text.h (GET_STRERROR): * tooltalk.c (check_status): * tooltalk.c (Fadd_tooltalk_message_arg): * tooltalk.c (Fadd_tooltalk_pattern_attribute): * tooltalk.c (Fadd_tooltalk_pattern_arg): * win32.c (tstr_to_local_file_format): * win32.c (mswindows_lisp_error_1): * win32.c (mswindows_report_process_error): * win32.c (Fmswindows_shell_execute): * win32.c (mswindows_read_link_1): Changes involving external/internal format conversion, mostly code cleanup and renaming. 1. Eliminate the previous macros like LISP_STRING_TO_EXTERNAL that stored its result in a parameter. The new version of LISP_STRING_TO_EXTERNAL returns its result through the return value, same as the previous NEW_LISP_STRING_TO_EXTERNAL. Use the new-style macros throughout the code. 2. Rename C_STRING_TO_EXTERNAL and friends to ITEXT_TO_EXTERNAL, in keeping with overall naming rationalization involving Itext and related types. Macros involved in previous two: EXTERNAL_TO_C_STRING -> EXTERNAL_TO_ITEXT EXTERNAL_TO_C_STRING_MALLOC -> EXTERNAL_TO_ITEXT_MALLOC SIZED_EXTERNAL_TO_C_STRING -> SIZED_EXTERNAL_TO_ITEXT SIZED_EXTERNAL_TO_C_STRING_MALLOC -> SIZED_EXTERNAL_TO_ITEXT_MALLOC C_STRING_TO_EXTERNAL -> ITEXT_TO_EXTERNAL C_STRING_TO_EXTERNAL_MALLOC -> ITEXT_TO_EXTERNAL_MALLOC LISP_STRING_TO_EXTERNAL LISP_STRING_TO_EXTERNAL_MALLOC LISP_STRING_TO_TSTR C_STRING_TO_TSTR -> ITEXT_TO_TSTR TSTR_TO_C_STRING -> TSTR_TO_ITEXT The following four still return their values through parameters, since they have more than one value to return: C_STRING_TO_SIZED_EXTERNAL -> ITEXT_TO_SIZED_EXTERNAL LISP_STRING_TO_SIZED_EXTERNAL C_STRING_TO_SIZED_EXTERNAL_MALLOC -> ITEXT_TO_SIZED_EXTERNAL_MALLOC LISP_STRING_TO_SIZED_EXTERNAL_MALLOC Sometimes additional casts had to be inserted, since the old macros played strange games and completely defeated the type system of the store params. 3. Rewrite many places where direct calls to TO_EXTERNAL_FORMAT occurred with calls to one of the convenience macros listed above, or to make_extstring(). 4. Eliminate SIZED_C_STRING macros (they were hardly used, anyway) and use a direct call to TO_EXTERNAL_FORMAT or TO_INTERNAL_FORMAT. 4. Use LISP_PATHNAME_CONVERT_OUT in many places instead of something like LISP_STRING_TO_EXTERNAL(..., Qfile_name). 5. Eliminate some temporary variables that are no longer necessary now that we return a value rather than storing it into a variable. 6. Some Mule-izing in database.c. 7. Error functions: -- A bit of code cleanup in maybe_signal_error_1. -- Eliminate report_file_type_error; it's just an alias for signal_error_2 with params in a different order. -- Fix some places in the hostname-handling code that directly inserted externally-retrieved error strings into the supposed ASCII "reason" param instead of doing the right thing and sticking text descriptive of what was going on in "reason" and putting the external message in a frob. 8. Use Ascbyte instead of CIbyte in process-unix.c and maybe one or two other places. 9. Some code cleanup in copy_in_passwd() in sysdep.c. 10. Fix a real bug due to accidental variable shadowing in tstr_to_local_file_format() in win32.c.
author Ben Wing <ben@xemacs.org>
date Fri, 05 Feb 2010 11:02:24 -0600
parents 1cecc3e9f0a0
children 98681721a588
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
1 Building and Installing XEmacs on Windows 95/98/NT/2000/XP -*- mode:outline -*-
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
3 Ben Wing
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
4
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
5 based on old version by
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
6
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 David Hobley
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
8 Marc Paquette
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
9 Jonathan Harris
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
11 This is a port of XEmacs to Windows 95/98/ME/NT/2000/XP. If you are
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
12 looking for a port of GNU Emacs, get the latest release of the 21.x series
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
13 from gnu.org. NT 4.0 or later is required for building on Windows NT.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
14 Note that the developers typically use NT 4.0 and Windows 2000 or XP, and
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
15 there may possibly be problems under Windows 95/98. (One developer has
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
16 successfully built on Windows ME, though, which is the successor of Windows
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
17 98.) If so, please report them to xemacs-nt@xemacs.org; we are committed
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
18 to maintaining compatibility with all systems listed.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
20 * Required tools and sources
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
21 ============================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
22
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
23 1. You will need Visual C++ V6.0, Visual Studio .NET or later to compile
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
24 everything.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
26 Note that Visual C++ assumes that the environment variables INCLUDE and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
27 LIB are set to specify the location of the includes and libraries.
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
28 Your PATH environment variable also needs to include the Visual Studio
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
29 vc\bin and sharedide\bin directories.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
30
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
31 Visual C++ V6.0 installs a batch file called vcvars32.bat in
812
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
32 c:\Program Files\Microsoft Visual Studio\VC98\bin\ (or wherever you
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
33 installed it) that you can run before building to set up all of these
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
34 environment variables. Alternatively, you can choose at setup time to
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
35 have these environment variables automatically set up in the registry,
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
36 which is generally a good idea.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
38 Visual Studio .NET calls this batch file vsvars32.bat and installs it in
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
39 $Installdir\Common7\Tools, but doesn't offer at install time to
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
40 automatically set these environment variables up in the registry.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
41
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
42 2. Grab the latest XEmacs source from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
43
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
44 http://ftp.xemacs.org/pub/xemacs/
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
45
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
46 or one of its mirrors listed at http://www.xemacs.org/Download/index.html.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
47
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
48 (NOTE: If you are behind a firewall and have problems with FTP access,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
49 the URL http://ftp.xemacs.org/pub/xemacs/ works just as well.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
50
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
51 You'll also need the packages. You probably want to get the unified
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
52 packages bundle from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
53
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
54 http://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
55
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
56 If you are building with international support, you also need
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
57
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
58 http://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
59
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
60 Although we don't recommend it, you can also retrieve just the packages
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
61 you really need if you have an extremely slow net connection or are very
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
62 short on disk space. You can find the various packages in
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
63 http://ftp.xemacs.org/pub/xemacs/packages/. You will need the xemacs-base
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
64 package (and mule-base, if building with international support). You'll
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
65 also need the texinfo package unless you have a copy of makeinfo.exe on
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
66 your machine. If you want to download additional or updated packages
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
67 from within XEmacs you'll need the efs, dired and vm packages. You'll
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
68 probably also want at least the edit-utils, text-modes, fsf-compat,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
69 cc-mode, prog-modes and xemacs-devel packages.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
70
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
71 Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages",
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
72 for example "c:\Program Files\XEmacs\xemacs-packages".
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
73
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
74 3. The native build no longer supports X Windows. There is no point,
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
75 since the Cygwin build is actively maintained and supports X Windows
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
76 very well. See the FAQ if you want to build with Cygwin.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
77
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
78
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
79 * Optional libraries
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
80 ====================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
81
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
82 The easiest way to get the optional libraries is to grab the appropriate
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
83 set of precompiled versions for your compiler:
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
84
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
85 http://www.xemacs.org/Download/win32/optional-libs.exe
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
86
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
87 or for VC++ 2005 (VC8)
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
88
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
89 http://www.xemacs.org/Download/win32/optional-libs-vc8.exe
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
90
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
91 unpack them somewhere and set the OPTIONAL_LIBRARY_DIR in config.inc
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
92 to point to where you put them. This will automatically give you
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
93 all the graphics libraries. (NOTE: optional-libs.exe was compiled with
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
94 VC++ .NET and may or may not work with VC++ 6.0. If not, you will have
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
95 to build them yourself until we provide VC6 binaries.)
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
96
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
97 * Alternative: Building the optional libraries yourself
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
98 =======================================================
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
99
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
100 If you need to build the libraries yourself, grab them from
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
101 http://ftp.xemacs.org/pub/xemacs/aux or get the latest version from the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
102 home page of the appropriate library, as listed on
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
103 http://www.xemacs.org/Download/optLibs.html. The following instructions
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
104 assume that you have the appropriate libraries and have unpacked them
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
105 somewhere, e.g. c:\src.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
107 Directions for building the various libraries:
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
108
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
109 1. You really want the XPM library. Copy nt\xpm.mak from the xemacs sources
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
110 to the lib/ subdirectory of the XPM sources, cd to that directory and
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
111 build xpm with 'nmake -f xpm.mak'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
112
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
113 2. You probably also want PNG image support. Get PNG and ZLIB and read the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
114 respective READMEs for details on how to build them.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
115
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
116 cd to the ZLIB source directory and type 'nmake -f win32\Makefile.msc'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
117
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
118 cd to the libpng source directory, rename or move the zlib directory to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
119 ..\zlib and type 'nmake -f scripts\makefile.vcawin32'.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
121 3. If you want TIFF support, cd to the TIFF source directory and type
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
122 'nmake -f Makefile.vc'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
123
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
124 4. If you want JPEG support, cd to the JPEG source directory and type
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
125 'nmake -f makefile.vc'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
126
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
127 5. If you want X-Face support, copy nt\compface.mak from the xemacs sources
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
128 to the compface directory, cd to that directory and build libcompface
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
129 with 'nmake -f compface.mak'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
130
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
131 6. It's also possible to build the Sleepycat DB libraries. Open up the file
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
132
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
133 DB-SOURCE-DIR\docs\ref\build_win\intro.html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
135 in a browser, where DB-SOURCE-DIR is the top-level source directory for
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
136 the Sleepcat DB libraries, and follow the directions. You should build the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
137 `Release_static' target if you want to use the static version of this
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
138 library, or the `Release' target if you want to use the DLL version of
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
139 the library. To use the DLL version, you need to set BUILD_DATABASE_SHARED
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
140 to 1 in config.inc. The DLL version will make the executable much smaller,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
141 but you will have to have the DLL present at run-time -- either in the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
142 same directory as the XEmacs executable or somewhere in your path.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
144 7. It's possible, but difficult, to build shared libraries for GNU MP.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
145 (Static libraries are not yet possible, as there is no makefile.vc for
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
146 this; you can't build static libraries for VC++ using MinGW.) Basically,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
147 you need to build using MinGW and then generate native import libraries.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
148 This is more or less described in the documentation, but the following
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
149 procedure seems to work:
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
150
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
151 -- In the top level of the GMP sources, configure using
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
152
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
153 CC='gcc -mno-cygwin' configure --build=pentium3-pc-mingw32 --disable-static --enable-shared
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
154
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
155 -- Edit the `libtool' script in the same directory and change the value
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
156 of CC from `gcc' to `gcc -mno-cygwin'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
157
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
158 -- Run `make'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
159
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
160 -- Run these commands:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
162 lib /machine:IX86 /def:.libs/libgmp-3.dll-def
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
163 cp .libs/libgmp-3.dll-exp libgmp-3.exp
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
164 cp .libs/libgmp-3.dll .
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
165
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
166 -- You should now have an import library named libgmp-3.lib and a DLL
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
167 libgmp-3.dll.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
168
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
169 -- NOTE: You will need to have this DLL accessible when XEmacs runs.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
170 It either needs to be in the same directory as the XEmacs executable
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
171 or in your path.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
172
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
173 8. There are also pre-built binaries for GMP-4.1.2 at
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
174
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
175 http://www.cs.nyu.edu/exact/core/gmp/.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
177 However, they don't seem to work properly for our purposes, as they
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
178 require LIBC.LIB rather than MSVCRT.DLL.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
179
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
180 9. You can build the client library for PostgreSQL by cd'ing to the src/
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
181 subdirectory of the PostgreSQL sources and running `nmake -f win32.mak'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
182
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
183 10. It does not appear to be very easy to build OpenLDAP under
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
184 native MS Windows, as it is only experimentally supported. However, there
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
185 is a mailing list for this, which contains postings of recent binaries and
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
186 build patches; see
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
187
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
188 http://lucas.bergmans.us/hacks/openldap/
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
189
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
190 If you know how to build OpenLDAP, please write up a description of the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
191 process and send it to us at xemacs-beta@xemacs.org.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
194 * Building
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
195 ==========
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
196
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
197 1. cd to the nt subdirectory of the xemacs distribution and copy the file
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
198 config.inc.samp to config.inc. Make any necessary modifications. This
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
199 file controls the options that XEmacs is built with:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
200
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
201 -- If you want international (aka "Mule") support, modify the appropriate
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
202 line in config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
203
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
204 MULE=1
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
206 -- If you're using the pre-supplied optional library pack, all you should
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
207 have to do is set OPTIONAL_LIBRARY_DIR to the top-level directory
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
208 where you unpacked everything.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
209
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
210 -- By default, support is enabled for all graphics formats, but not
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
211 currently for any of the other libraries in the optional library
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
212 pack. If you want support for GMP, Berkeley DB or PostgreSQL, set
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
213 the appropriate flag (HAVE_BIGNUM, HAVE_DATABASE or HAVE_POSTGRESQL,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
214 respectively) to 1. We do not currently enable these by default
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
215 because of lack of sufficient testing, questionable usefulness in
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
216 the case of Berkeley DB and PostgreSQL, excessive library size in
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
217 the case of Berkeley DB (more than 2 MB for the static library!),
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
218 and lack of a static library in the case of GMP.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
219
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
220 -- If you want to turn off support for any of the graphics libraries,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
221 set the appropriate flag (HAVE_XPM, HAVE_GIF, HAVE_PNG, HAVE_JPEG,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
222 HAVE_TIFF or HAVE_XFACE) to 0.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
223
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
224 -- If you have compiled some of the libraries yourself, you will have to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
225 specify the location of the top-level source directory for each of
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
226 these libraries. XEmacs assumes that the directory structure under
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
227 these directories is as it is in the sources, rather than in any
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
228 installed format.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
229
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
230 For example, for XPM support, modify the appropriate lines in
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
231 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
232
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
233 HAVE_XPM=1
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
234 XPM_DIR="x:\location\of\your\xpm\sources"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
235
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
236 Similarly for JPEG, TIFF, etc. support.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
237
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
238 For PNG support, you also need to specify ZLIB_DIR.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
240 If you want to use the DLL version of the Sleepycat DB library,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
241 set BUILD_DATABASE_SHARED to 1. You will have to have the DLL
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
242 present at run-time -- either in the same directory as the XEmacs
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
243 executable or somewhere in your path.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
244
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
245 -- By default, XEmacs will expect to find its packages in the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
246 subdirectories "site-packages", "mule-packages" and "xemacs-packages"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
247 under the directory "c:\Program Files\XEmacs". If you want it to look
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
248 for these subdirectories elsewhere, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
249 config.inc as follows:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
251 PACKAGE_PREFIX="x:\your\package\directory"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
252
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
253 Make sure that the directory pointed to by PACKAGE_PREFIX contains
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
254 the xemacs-packages directory into which you installed the packages.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
255
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
256 -- XEmacs can build its info files more quickly if you have a copy of the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
257 makeinfo program. If you have a copy, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
258 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
259
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
260 MAKEINFO="x:\location\of\makeinfo.exe"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
261
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
262 If you don't have a copy of makeinfo then you'll need to have installed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
263 the XEmacs texinfo package.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
264
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
265 2. If you want to install XEmacs when you build it, modify the appropriate
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
266 lines in config.inc as follows (you can also run XEmacs from its build
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
267 directory):
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
268
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
269 INSTALL_DIR="x:\your\installation\directory"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
271 (By default, XEmacs will be installed in directories under the directory
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
272 "c:\Program Files\XEmacs\XEmacs-21.5".)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
273
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
274 3. If you want the built files to go into a different tree than the source
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
275 tree (e.g. this allows you to build multiple versions of XEmacs, with
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
276 different configuration settings, from the same source tree), use the
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
277 script `make-build-dir' to create a skeleton build tree, create a
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
278 config.inc in that tree, and then run nmake from that tree. This is
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
279 similar to running `configure --srcdir=PATH' under Unix. See the
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
280 comments in `config.inc.samp' for more information.
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
281
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
282 4. If you want to build xemacs on the command line, use
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
283 `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
284 to run XEmacs from its build directory. nmake will build temacs, the DOC
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
285 file, update the elc's, dump xemacs and (optionally) install the relevant
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
286 files in the directories under the installation directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
287
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
288 If you chose to install XEmacs, the file that you should run to start
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
289 XEmacs will be installed (by default) as
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
290 "c:\Program Files\XEmacs\XEmacs-21.5\i586-pc-win32\xemacs.exe".
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
291
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
292 To run from the build directory, run the file "src\xemacs.exe" off of the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
293 root of the build directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
294
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
295 You may want to create a shortcut to the file from your Desktop or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
296 Start Menu.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
297
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
298 5. To build using MS Visual Studio, you can use the workspace file
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
299 `nt/xemacs.dsw'. This was prepared for Visual C++ 6.0. If you are using
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
300 Visual Studio .NET, open this file up inside of it and it will offer to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
301 convert it to a .NET "solution" file. The same procedure should work
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
302 for newer versions of Visual Studio (e.g. Visual Studio 2005). If this
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
303 doesn't work (e.g. you are using Visual C++ 5 or even earlier), just
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
304 open up `nt/xemacs.mak' from within Visual Studio and it will offer to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
305 wrap this Makefile in a workspace file, from which you can build.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
306 Assuming you want to run from the build directory (which you will want
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
307 to do if you are planning on doing any development work on XEmacs), use
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
308 the following settings (for Visual C++ 6.0, at least) in
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
309 Project/Settings...:
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
310
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
311 Under the General tab:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
312
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
313 Build command line: NMAKE /f xemacs.mak
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
314 Output file name: ..\src\xemacs.exe
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
315 Browse info file name: ..\src\temacs.bsc
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
316
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
317 Under the Debug tab:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
318
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
319 Executable for debug session: ..\src\xemacs.exe
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
320
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
321
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
322 If you want to install XEmacs when it's built, change the build command
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
323 line to "NMAKE install /f xemacs.mak". (You will have to make the same
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
324 change even if you use the provided workspace nt/xemacs.dsw.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
325
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
326
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
327 * Debugging under MS Developer Studio
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
328 =====================================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
329
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
330 The build process always creates debugging and "Source Browser" information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
331 in the source tree for use with DevStudio. However that information is not
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
332 very useful unless you build a debug version of XEmacs:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
333
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
334 1. Set DEBUG_XEMACS=1 and DEPEND=1 in config.inc and rebuild.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
335
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
336 2. See instructions above for obtaining a workspace file for use with
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
337 MS Developer Studio. Build and debug your XEmacs this way.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
338
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
339 3. To display the contents of a lisp variable, type Shift-F9 (or use the
1203
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
340 menu) to bring up the QuickWatch window, type dp(variable) and click
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
341 Recalculate. The output will appear in a console window, as well as in
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
342 the Debug window in MS Developer Studio.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
343
1203
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
344 4. To display a current Lisp backtrace, type db() in the QuickWatch window,
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
345 as in the previous item.
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
346
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
347 5. To view Lisp variables in the "Watch" window wrap the variable in one of
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
348 the helper functions from the file src\console-msw.c, for example type
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
349 DSTRING(variable) in the "Watch" window to inspect a Lisp string.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
350
1203
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
351 6. For further information on debugging XEmacs, see the item
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
352 `How to Debug an XEmacs problem with a debugger' in the XEmacs FAQ.
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
353
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
354
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
355 * Known Problems
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
356 ================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
357
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
358 Please look at the PROBLEMS file for known problems. Any other problems you
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
359 need clarified, please email us and we will endeavour to provide any
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
360 assistance we can:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
361
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
362 The XEmacs NT Mailing List: xemacs-nt@xemacs.org
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
363 Subscribe address: xemacs-nt-request@xemacs.org
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
364
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
365 Ben Wing (current primary MS Windows maintainer; author of the MS Windows
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
366 Mule code and some of the dialog box code)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
367 Andy Piper (MS Windows contributor; author of the Cygwin support and the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
368 MS Windows glyph and widget code)
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
369 Jonathan Harris (MS Windows contributor; original author of the MS Windows
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
370 redisplay and underlying GUI code)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
371 Kirill Katsnelson (MS Windows contributor; author of the MS Windows process
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
372 and printing code and some of the dialog box code;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
373 general guru on obscure MS Windows programming topics)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
374 David Hobley (early MS Windows contributor)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
375 Marc Paquette (early MS Windows contributor)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
376 August Hill (early MS Windows contributor)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
377
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
378 and others.