I use GNU Emacs on Windows and Cygwin for the shell that I do all my work in. The ~/.profile used by Cygwin is ~/.bash_profile. If I start a Cygwin shell by running C:\cygwin\Cygwin.bat, it starts up and executes ~/.bash_profile fine.
I set up Cygwin in GNU Emacs on Windows by putting the following in my ~/.emacs, as prescribed:
;; Set up Cygwin
(add-to-list 'load-path "C:/Program Files/emacs-site-lisp/cygwin")
(require 'setup-cygwin)
C:\Program Files\emacs-site-lisp is where I put my site-wide lisp (obviously).
When I run M-x shell, a Cygwin bash subprocess is created in a buffer named *shell*. Perfect. However, my ~/.bash_profile is not executed.
How do I make the ~/.bash_profile take effect?