Updated on Nov 4, 2013: The following tricks may still work, however I have found a much easier solution. Simply install Xcode command line developer tools and you should be able to compile source code without issues:
$ xcode-select --install
After upgrading my Mac from 10.8 to 10.9 Mavericks my apache stopped working, so I have to reinstall mod_wsgi and mod_xsendfile. However, tricks are needed to compile and install these mods successfully.
Upgrade Xcode
Upgrade Xcode in App Store. As mentioned by Valerie:
I had to manually upgrade Xcode (after Mavericks upgrade) from the App Store & agree to its license because ./configure
hung forever until I did that.
mod_wsgi
For mod_wsgi installation, create a soft link to OSX10.9.xctoolchain:
cd /Applications/Xcode.app/Contents/Developer/Toolchains/
sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
Then run configure under mod_wsgi source code directory:
mod_wsgi-3.4$ ./configure
It will generate a Makefile similar as follows:
# Copyright 2007 GRAHAM DUMPLETON
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
APXS = /usr/sbin/apxs
PYTHON = /usr/local/bin/python
DESTDIR =
LIBEXECDIR = /usr/libexec/apache2
CPPFLAGS = -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DNDEBUG
CFLAGS = -Wc,'-arch x86_64'
LDFLAGS = -Wl,-F/usr/local/Cellar/python/2.7.5/Frameworks -framework Python -u _PyMac_Error -arch x86_64
LDLIBS = -ldl -framework CoreFoundation
all : mod_wsgi.la
mod_wsgi.la : mod_wsgi.c
$(APXS) -c $(CPPFLAGS) $(CFLAGS) mod_wsgi.c $(LDFLAGS) $(LDLIBS)
$(DESTDIR)$(LIBEXECDIR) :
mkdir -p $@
install : all $(DESTDIR)$(LIBEXECDIR)
$(APXS) -i -S LIBEXECDIR=$(DESTDIR)$(LIBEXECDIR) -n 'mod_wsgi' mod_wsgi.la
clean :
-rm -rf .libs
-rm -f mod_wsgi.o mod_wsgi.la mod_wsgi.lo mod_wsgi.slo mod_wsgi.loT
-rm -f config.log config.status
-rm -rf autom4te.cache
distclean : clean
-rm -f Makefile Makefile.in
realclean : distclean
-rm -f configure
However, this Makefile is not correct and running ‘make’ the compiler will complain something like:
mod_wsgi.c:34:10: fatal error: 'httpd.h' file not found
Prepend the following line to CPPFLAGS value:
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apr-1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apache2
Save the Makefile and it will look something like:
# Copyright 2007 GRAHAM DUMPLETON
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
APXS = /usr/sbin/apxs
PYTHON = /usr/local/bin/python
DESTDIR =
LIBEXECDIR = /usr/libexec/apache2
CPPFLAGS = -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apr-1 -I/Applications/Xcode. app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apache2 -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DNDEBUG
CFLAGS = -Wc,'-arch x86_64'
LDFLAGS = -Wl,-F/usr/local/Cellar/python/2.7.5/Frameworks -framework Python -u _PyMac_Error -arch x86_64
LDLIBS = -ldl -framework CoreFoundation
all : mod_wsgi.la
mod_wsgi.la : mod_wsgi.c
$(APXS) -c $(CPPFLAGS) $(CFLAGS) mod_wsgi.c $(LDFLAGS) $(LDLIBS)
$(DESTDIR)$(LIBEXECDIR) :
mkdir -p $@
install : all $(DESTDIR)$(LIBEXECDIR)
$(APXS) -i -S LIBEXECDIR=$(DESTDIR)$(LIBEXECDIR) -n 'mod_wsgi' mod_wsgi.la
clean :
-rm -rf .libs
-rm -f mod_wsgi.o mod_wsgi.la mod_wsgi.lo mod_wsgi.slo mod_wsgi.loT
-rm -f config.log config.status
-rm -rf autom4te.cache
distclean : clean
-rm -f Makefile Makefile.in
realclean : distclean
-rm -f configure
Then make && install:
mod_wsgi-3.4$ make
mod_wsgi-3.4$ sudo make install
Modify /etc/apache2/httpd.conf to enable mod_wsgi:
LoadModule wsgi_module libexec/apache2/mod_wsgi.so
mod_xsendfile
Use the following command to compile and install mod_xsendfile:
sudo apxs -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apr-1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apache2 -cia mod_xsendfile.c
Enabling HTTPS/SSL
After upgrading OS X the apache configuration was reset, but your original config is save to /etc/apache2/httpd.conf.pre-update. I need to enable SSL in httpd.conf again by uncommenting the following line:
# Include /private/etc/apache2/extra/httpd-ssl.conf
Restart Apache and everything should work fine
sudo apachectl restart