diff --git a/INSTALL b/INSTALL
index 5cff439bf..ab7245fb4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,32 +1,23 @@
-Known issues
+Overview
============
-Fish is developed using GCC, with the goal of using only C89 language
-features. Fish does, however use the *wprintf family of functions,
-which are new to the C99 standard. It is not unlikely that any given
-release contains a few GCC:isms, but ICC 9.0.030 has been found to
-produce working binaries. GCC 2.95.* won't compile fish, but GCC 3.2.3
-is known to work. Patches to fix any remaining GNU:isms are welcome.
-
-Older versions of Doxygen has bugs in the man-page generation which
-cause the builtin help to render incorrectly. Doxygen 1.2.14 is known
-to have this problem.
-
+fish is written in a sane subset of C++98, and uses a few components from C++TR1. It is known to build successfully with g++ 4.2 or later, and with clang 4.2. It also builds successfully as C++11.
Prerequisites
=============
-Fish requires the following programs and libraries to build:
+fish requires the following programs and libraries to build:
- - Doxygen
- - Curses or Ncurses
- - GNU make
- - GCC
+ - GNU make or Xcode tools
+ - GCC or clang
+ - curses or ncurses
+
+ It will also use if available:
+
+ - Doxygen
fish also relies on standard unix tools such as cat, cut, grep, sed,
-whoami, bc and echo. Fish does not yet support cross-compilation,
-separate build directories or any other fancy configure options.
-
+whoami, bc and echo.
Simple install procedure
========================
@@ -35,17 +26,44 @@ Always begin by uninstalling any previous fish versions. This is done
by running the command 'make uninstall' in the source directory of
your previous fish installation.
-Next, if you have downloaded a fresh copy of the git repository of
-fish, you need to run the 'autoconf' command.
+Autotools Build and Install
+========================
-Then, use following commands to compile fish:
+ autoconf # Create configure file
+ ./configure # Generate Makefile
+ make [gmake on BSD] # Compile fish
+ sudo make install # Install fish
- ./configure
- make # Compile fish
- make install # Install fish
- echo /usr/local/bin/fish >>/etc/shells # Add fish to list of shells
+configure supports the ---prefix option, for example:
-Finally, if you wish to use fish as your default shell, use the
+ ./configure --prefix=$HOME
+
+If fish reports that it could not find curses, try installing a curses development package and build again.
+
+On Debian or Ubuntu you want:
+
+ sudo apt-get install libncurses5-dev libncursesw5-dev
+
+on RedHat, CentOS, or Amazon EC2:
+
+ sudo yum install ncurses-devel
+
+Xcode Development Build
+========================
+
+Build the 'base' target in Xcode
+Run the fish executable, for example, in DerivedData/fish/Build/Products/Debug/base/bin/fish
+
+Xcode Build and Install
+========================
+
+ xcodebuild install
+ sudo ditto /tmp/fish.dst /
+
+Starting fish
+========================
+
+If you wish to use fish as your default shell, use the
following command:
% chsh -s /usr/local/bin/fish
@@ -58,20 +76,3 @@ To switch your default shell back, you can run:
Substitute /bin/bash with /bin/tcsh or /bin/zsh as appropriate.
-Local install procedure
-=======================
-
-If you have downloaded the git repository of fish, you need to run
-autoconf to generate the configure script.
-
-To install fish in your own home directory (typically as non-root),
-type:
-
- % ./configure --prefix=$HOME
- % make # Compile fish
- % make install # Install fish
-
-You will not be able to use fish as the default shell unless you also
-add the corresponding line to /etc/shells, which mostly defeats the
-point of a local install. As a workaround, you can add fish as the
-last command of the init files for your regular shell.
diff --git a/README.md b/README.md
index d08713232..d8badb737 100644
--- a/README.md
+++ b/README.md
@@ -13,6 +13,8 @@ Detailed user documentation is available by running `help` within fish, and also
## Building
+fish is written in a sane subset of C++98, with a few components from C++TR1. It builds successfully with g++ 4.2 or later, and with clang. It also will build as C++11.
+
fish can be built using autotools or Xcode.
### Autotools Build
@@ -32,10 +34,36 @@ fish can be built using autotools or Xcode.
xcodebuild install
sudo ditto /tmp/fish.dst /
+## Help, it didn't build!
+
+If fish reports that it could not find curses, try installing a curses development package and build again.
+
+On Debian or Ubuntu you want:
+
+ sudo apt-get install libncurses5-dev libncursesw5-dev
+
+on RedHat, CentOS, or Amazon EC2:
+
+ sudo yum install ncurses-devel
+
## Packages for Linux
Nightly builds for several Linux distros can be downloaded from
+## Switching to fish
+
+If you wish to use fish as your default shell, use the following command:
+
+ chsh -s /usr/local/bin/fish
+
+chsh will prompt you for your password, and change your default shell.
+
+To switch your default shell back, you can run:
+
+ chsh -s /bin/bash
+
+Substitute /bin/bash with /bin/tcsh or /bin/zsh as appropriate.
+
## Contact Us
Questions, comments, rants and raves can be posted to the official fish mailing list at or join us on our IRC channel #fish at irc.oftc.net