diff --git a/src/Changes.txt b/src/Changes.txt
index 050949d38e94580321dbb9f97abf7d7078be130f..51817762a40b8c4939f28e37d33cbcb3c6b2887e 100644
--- a/src/Changes.txt
+++ b/src/Changes.txt
@@ -50,8 +50,21 @@ Links on build systems
    http://www.flameeyes.eu/autotools-mythbuster/
 
 
+To do
+ - Move OTHER_FILES from qhull-all.pro
+ - Ship sln/proj files under build directory
+ - What is minimum Qt version?
+ staticlib not in Qt doc index
+
 ------------
 
+gitorious.org/qhull 2011/03/26
+ - Pull out gcc warnings into qhull-warn.pri
+ - Pull out libqhull files into qhull-libsrc.pri
+ - Document location of qh_QHpointer
+ - Use CONFIG incremental instead of vc option
+ - user_eg2 links with shared library (project will be added later after rename)
+
 gitorious.org/qhull 2011/03/25
  - Moved src/libqhull/Makefile.txt to Makefile
  - Makefile: Added libqhullp, libqhullcpp, user_eg3, qhulltest
@@ -59,6 +72,7 @@ gitorious.org/qhull 2011/03/25
  - Build: Comment out -Werror
  - Removed semicolon after extern "C" {...}
  - Renamed parameters, locals, and fields to avoid shadowing
+ - Removed experimental QhullEvent/QhullLog
 
 gitorious.org/qhull 2011/03/09
  - Compiles gcc with all warnings except for -Wno-sign-conversion and -Wconversion
diff --git a/src/libqhull/libqhull.pro b/src/libqhull/libqhull.pro
index d2ceb7c2a573a7c16dcf367b834d9bf15deaac4f..16c54a3a0989b508d79d7a779b03e20039b9c0f2 100644
--- a/src/libqhull/libqhull.pro
+++ b/src/libqhull/libqhull.pro
@@ -14,19 +14,16 @@ build_pass:CONFIG(debug, debug|release):{
     TARGET = qhull
     OBJECTS_DIR = Release
 }
+include(../qhull-warn.pri)
+
+# Duplicated from ../qhull-libsrc.pri  Otherwise QtCreator makes hierarchy too deep
+# qset.c requires -fno-script-aliasing for gcc 4.1 to 4.3
 *g++ {
     COMPVER = $$system(gcc -v)
-    contains(COMPVER, 4.1)|contains(COMPVER, 4.2)|contains(COMPVER, 4.3) {
-        QMAKE_CFLAGS += -fno-strict-aliasing # Avoids core dumps in qset.c with -O2
+    contains(COMPVER,4.1)|contains(COMPVER,4.2)|contains(COMPVER,4.3) {
+        QMAKE_CFLAGS += -fno-strict-aliasing # Avoid core dumps in qset.c with -O2
     }
-    # QMAKE_CFLAGS_WARN_ON += -Werror # Treat warnings as errors
-    QMAKE_CFLAGS_WARN_ON += -Wcast-qual -Wextra -Wshadow -Wwrite-strings
-
-    #QMAKE_CFLAGS_WARN_ON += -Wno-sign-conversion # Many size_t vs. int warnings
-    #QMAKE_CFLAGS_WARN_ON += -Wconversion # No workaround for bit-field conversions
 }
-
-# libqhull.pro and libqhullp.pro are the same for SOURCES and HEADERS
 # Order object files by frequency of execution.  Small files at end.
 SOURCES += rboxlib.c
 SOURCES += user.c
@@ -52,13 +49,12 @@ HEADERS += mem.h
 HEADERS += merge.h
 HEADERS += poly.h
 HEADERS += random.h
-# The file, qhull.h, is for backwards compatibility.
+# The file, libqhull/qhull.h, is for backwards compatibility.
 HEADERS += qhull_a.h
 HEADERS += qset.h
 HEADERS += stat.h
 HEADERS += user.h
 
-OTHER_FILES += Makefile.txt
 OTHER_FILES += Mborland
 OTHER_FILES += qh-geom.htm
 OTHER_FILES += qh-globa.htm
diff --git a/src/libqhullcpp/libqhullcpp.pro b/src/libqhullcpp/libqhullcpp.pro
index ac2e6b1999050161a9da2be5e0036491e8b1cf58..435c953da3958e9760232971ffbc597bf4f1b123 100644
--- a/src/libqhullcpp/libqhullcpp.pro
+++ b/src/libqhullcpp/libqhullcpp.pro
@@ -16,48 +16,13 @@ build_pass:CONFIG(debug, debug|release):{
 }
 MOC_DIR = moc
 
-DEFINES += qh_QHpointer
+DEFINES += qh_QHpointer # libqhull/user.h
+
 INCLUDEPATH += ../../src
 INCLUDEPATH += $$PWD # for MOC_DIR
-*g++ {
-    QMAKE_CXXFLAGS_WARN_ON += -Werror # Treat warnings as errors
-    QMAKE_CXXFLAGS_WARN_ON += -Wshadow -Wconversion
-    QMAKE_CXXFLAGS_WARN_ON += -Wcast-qual -Wextra -Wshadow -Wwrite-strings
-    QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-conversion
-QMAKE_CXXFLAGS_WARN_ON += -Waddress
-QMAKE_CXXFLAGS_WARN_ON += -Warray-bounds
-QMAKE_CXXFLAGS_WARN_ON += -Wc++0x-compat
-QMAKE_CXXFLAGS_WARN_ON += -Wchar-subscripts
-QMAKE_CXXFLAGS_WARN_ON += -Wclobbered
-QMAKE_CXXFLAGS_WARN_ON += -Wcomment
-QMAKE_CXXFLAGS_WARN_ON += -Wempty-body
-QMAKE_CXXFLAGS_WARN_ON += -Wenum-compare
-QMAKE_CXXFLAGS_WARN_ON += -Wformat
-QMAKE_CXXFLAGS_WARN_ON += -Wignored-qualifiers
-QMAKE_CXXFLAGS_WARN_ON += -Wmain
-QMAKE_CXXFLAGS_WARN_ON += -Wmissing-braces
-QMAKE_CXXFLAGS_WARN_ON += -Wmissing-field-initializers
-QMAKE_CXXFLAGS_WARN_ON += -Wparentheses
-QMAKE_CXXFLAGS_WARN_ON += -Wreorder
-QMAKE_CXXFLAGS_WARN_ON += -Wreturn-type
-QMAKE_CXXFLAGS_WARN_ON += -Wsequence-point
-QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare
-QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare
-QMAKE_CXXFLAGS_WARN_ON += -Wstrict-aliasing
-QMAKE_CXXFLAGS_WARN_ON += -Wstrict-overflow=1
-QMAKE_CXXFLAGS_WARN_ON += -Wswitch
-QMAKE_CXXFLAGS_WARN_ON += -Wtrigraphs
-QMAKE_CXXFLAGS_WARN_ON += -Wtype-limits
-QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized
-QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized
-QMAKE_CXXFLAGS_WARN_ON += -Wunknown-pragmas
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-function
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-label
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-parameter
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-value
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-variable
-QMAKE_CXXFLAGS_WARN_ON += -Wvolatile-register-var
-}
+
+CONFIG += qhull_warn_shadow qhull_warn_conversion
+include(../qhull-warn.pri)
 
 SOURCES += ../road/RoadError.cpp
 SOURCES += ../road/RoadLogEvent.cpp
diff --git a/src/libqhullp/libqhullp.pro b/src/libqhullp/libqhullp.pro
index 8a164736e5dc069559e7d94cdca4c9889b64435e..f06ee3c2232333c3444307dec305212d98bc39ea 100644
--- a/src/libqhullp/libqhullp.pro
+++ b/src/libqhullp/libqhullp.pro
@@ -16,47 +16,7 @@ build_pass:CONFIG(debug, debug|release) {
     OBJECTS_DIR = Release
 }
 
-DEFINES += qh_QHpointer
-*g++ {
-    COMPVER = $$system(gcc -v)
-    contains(COMPVER, 4.1)|contains(COMPVER, 4.2)|contains(COMPVER, 4.3) {
-        QMAKE_CFLAGS += -fno-strict-aliasing # Avoid core dumps in qset.c with -O2
-    }
-    QMAKE_CFLAGS_WARN_ON += -Werror -Wcast-qual -Wextra -Wshadow -Wwrite-strings
-    #QMAKE_CFLAGS_WARN_ON += -Wno-sign-conversion # Many size_t vs. int warnings
-    #QMAKE_CFLAGS_WARN_ON += -Wconversion # No workaround for bit-field conversions
-}
-
-# libqhull.pro and libqhullp.pro are the same for SOURCES and HEADERS
-# Order object files by frequency of execution.  Small files at end.
-SOURCES += ../libqhull/rboxlib.c
-SOURCES += ../libqhull/user.c
-SOURCES += ../libqhull/global.c
-SOURCES += ../libqhull/stat.c
-SOURCES += ../libqhull/io.c
-SOURCES += ../libqhull/geom2.c
-SOURCES += ../libqhull/poly2.c
-SOURCES += ../libqhull/merge.c
-SOURCES += ../libqhull/libqhull.c
-SOURCES += ../libqhull/geom.c
-SOURCES += ../libqhull/poly.c
-SOURCES += ../libqhull/qset.c
-SOURCES += ../libqhull/mem.c
-SOURCES += ../libqhull/usermem.c
-SOURCES += ../libqhull/userprintf.c
-SOURCES += ../libqhull/random.c
-
-# Headers duplicated from libqhull.pro for convenience
-HEADERS += ../libqhull/geom.h
-HEADERS += ../libqhull/io.h
-HEADERS += ../libqhull/libqhull.h
-HEADERS += ../libqhull/mem.h
-HEADERS += ../libqhull/merge.h
-HEADERS += ../libqhull/poly.h
-HEADERS += ../libqhull/random.h
-HEADERS += ../libqhull/qhull_a.h
-HEADERS += ../libqhull/qset.h
-HEADERS += ../libqhull/stat.h
-HEADERS += ../libqhull/user.h
+DEFINES += qh_QHpointer # libqhull/user.h
 
-# See libqhull.pro for other files
+include(../qhull-warn.pri)
+include(../qhull-libsrc.pri)
diff --git a/src/qhull-all.pro b/src/qhull-all.pro
index 05d847e1b9dc125e72701d60f2ba63f179dfebf6..d7345f8c707c15a58ca757da69b73c88b33d6e37 100644
--- a/src/qhull-all.pro
+++ b/src/qhull-all.pro
@@ -21,9 +21,11 @@ SUBDIRS += qhalf
 SUBDIRS += qvoronoi
 SUBDIRS += rbox
 SUBDIRS += user_eg
+
+SUBDIRS += libqhullp   #qh_QHpointer
+SUBDIRS += libqhulldll #shared library for libqhullp
 SUBDIRS += user_eg2
 
-SUBDIRS += libqhullp  #qh_QHpointer
 SUBDIRS += libqhullcpp
 SUBDIRS += user_eg3
 SUBDIRS += qhulltest
@@ -31,13 +33,14 @@ SUBDIRS += qhulltest
 OTHER_FILES += CMakeLists.txt
 OTHER_FILES += Make-config.sh
 OTHER_FILES += ../Announce.txt
+OTHER_FILES += ../Changes.txt
+OTHER_FILES += ../CMakeLists.txt
 OTHER_FILES += ../COPYING.txt
 OTHER_FILES += ../File_id.diz
 OTHER_FILES += ../index.htm
+OTHER_FILES += ../Makefile
 OTHER_FILES += ../README.txt
 OTHER_FILES += ../REGISTER.txt
-OTHER_FILES += ../Changes.txt
-OTHER_FILES += ../CMakeLists.txt
 OTHER_FILES += ../eg/q_eg
 OTHER_FILES += ../eg/q_egtest
 OTHER_FILES += ../eg/q_test
diff --git a/src/qhull-app-c.pri b/src/qhull-app-c.pri
index 5f09ad74139dd83830d8d5d25404e26d4e3300d3..d4120a249d2dcd9976e4cb334b2851865fe111fa 100644
--- a/src/qhull-app-c.pri
+++ b/src/qhull-app-c.pri
@@ -1,7 +1,12 @@
+# -------------------------------------------------
+# qhull-app-c.pri -- Qt include project for C qhull applications linked to libqhull
+# -------------------------------------------------
+
 DESTDIR = ../../bin
 TEMPLATE = app
 CONFIG += console warn_on
-CONFIG -= qt
+CONFIG -= qt incremental
+
 LIBS += -L../../lib
 build_pass:CONFIG(debug, debug|release){
    LIBS += -lqhull-d
@@ -10,48 +15,8 @@ build_pass:CONFIG(debug, debug|release){
    LIBS += -lqhull
    OBJECTS_DIR = Release
 }
-*g++ {
-    QMAKE_CFLAGS_WARN_ON += -Werror -Wcast-qual -Wextra -Wshadow -Wwrite-strings
-    QMAKE_CFLAGS_WARN_ON += -Wno-sign-conversion
-    QMAKE_CFLAGS_WARN_ON += -Wconversion
-QMAKE_CFLAGS_WARN_ON += -Waddress
-QMAKE_CFLAGS_WARN_ON += -Warray-bounds
-QMAKE_CFLAGS_WARN_ON += -Wchar-subscripts
-QMAKE_CFLAGS_WARN_ON += -Wclobbered
-QMAKE_CFLAGS_WARN_ON += -Wcomment
-QMAKE_CFLAGS_WARN_ON += -Wempty-body
-QMAKE_CFLAGS_WARN_ON += -Wformat
-QMAKE_CFLAGS_WARN_ON += -Wignored-qualifiers
-QMAKE_CFLAGS_WARN_ON += -Wimplicit-function-declaration
-QMAKE_CFLAGS_WARN_ON += -Wimplicit-int
-QMAKE_CFLAGS_WARN_ON += -Wmain
-QMAKE_CFLAGS_WARN_ON += -Wmissing-braces
-QMAKE_CFLAGS_WARN_ON += -Wmissing-field-initializers
-QMAKE_CFLAGS_WARN_ON += -Wmissing-parameter-type
-QMAKE_CFLAGS_WARN_ON += -Wnonnull
-QMAKE_CFLAGS_WARN_ON += -Wold-style-declaration
-QMAKE_CFLAGS_WARN_ON += -Woverride-init
-QMAKE_CFLAGS_WARN_ON += -Wparentheses
-QMAKE_CFLAGS_WARN_ON += -Wpointer-sign
-QMAKE_CFLAGS_WARN_ON += -Wreturn-type
-QMAKE_CFLAGS_WARN_ON += -Wsequence-point
-QMAKE_CFLAGS_WARN_ON += -Wsign-compare
-QMAKE_CFLAGS_WARN_ON += -Wsign-compare
-QMAKE_CFLAGS_WARN_ON += -Wstrict-aliasing
-QMAKE_CFLAGS_WARN_ON += -Wstrict-overflow=1
-QMAKE_CFLAGS_WARN_ON += -Wswitch
-QMAKE_CFLAGS_WARN_ON += -Wtrigraphs
-QMAKE_CFLAGS_WARN_ON += -Wtype-limits
-QMAKE_CFLAGS_WARN_ON += -Wuninitialized
-QMAKE_CFLAGS_WARN_ON += -Wuninitialized
-QMAKE_CFLAGS_WARN_ON += -Wunknown-pragmas
-QMAKE_CFLAGS_WARN_ON += -Wunused-function
-QMAKE_CFLAGS_WARN_ON += -Wunused-label
-QMAKE_CFLAGS_WARN_ON += -Wunused-parameter
-QMAKE_CFLAGS_WARN_ON += -Wunused-value
-QMAKE_CFLAGS_WARN_ON += -Wunused-variable
-QMAKE_CFLAGS_WARN_ON += -Wvolatile-register-var
-}
-win32-msvc* : QMAKE_LFLAGS += /INCREMENTAL:NO
 
 INCLUDEPATH += ../libqhull
+CONFIG += qhull_warn_conversion
+include(../qhull-warn.pri)
+
diff --git a/src/qhull-app-cpp.pri b/src/qhull-app-cpp.pri
index 233e9d6ae64b904a8fb6bfaf49c9f2433d17688c..2ba1f7b4b99585559b160895c32732d537b93288 100644
--- a/src/qhull-app-cpp.pri
+++ b/src/qhull-app-cpp.pri
@@ -1,7 +1,12 @@
+# -------------------------------------------------
+# qhull-app-cpp.pri -- Qt include project for CPP qhull applications using Qt
+#   libqhull.pro, libqhullp.pro, and libqhulldll.pro are the same for SOURCES and HEADERS
+# -------------------------------------------------
+
 DESTDIR = ../../bin
 TEMPLATE = app
 CONFIG += console warn_on
-CONFIG -= rtti
+CONFIG -= rtti incremental
 LIBS += -L../../lib
 build_pass:CONFIG(debug, debug|release){
    LIBS += -lqhullcpp-d
@@ -12,48 +17,10 @@ build_pass:CONFIG(debug, debug|release){
    LIBS += -lqhull-p  # Must be last, otherwise qh_fprintf,etc. are loaded from here instead of qhullcpp.lib
    OBJECTS_DIR = Release
 }
-*g++ {
-    #QMAKE_CXXFLAGS_WARN_ON += -Wshadow # Shadowing in Qt, e.g., nested foreach
-    #QMAKE_CXXFLAGS_WARN_ON += -Wconversion # Conversion errors in Qt for qbitarray and qpalette
-    QMAKE_CXXFLAGS_WARN_ON += -Werror # Treat warnings as errors
-    QMAKE_CXXFLAGS_WARN_ON += -Wcast-qual -Wextra -Wwrite-strings
-    QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-conversion
-QMAKE_CXXFLAGS_WARN_ON += -Waddress
-QMAKE_CXXFLAGS_WARN_ON += -Warray-bounds
-QMAKE_CXXFLAGS_WARN_ON += -Wc++0x-compat
-QMAKE_CXXFLAGS_WARN_ON += -Wchar-subscripts
-QMAKE_CXXFLAGS_WARN_ON += -Wclobbered
-QMAKE_CXXFLAGS_WARN_ON += -Wcomment
-QMAKE_CXXFLAGS_WARN_ON += -Wempty-body
-QMAKE_CXXFLAGS_WARN_ON += -Wenum-compare
-QMAKE_CXXFLAGS_WARN_ON += -Wformat
-QMAKE_CXXFLAGS_WARN_ON += -Wignored-qualifiers
-QMAKE_CXXFLAGS_WARN_ON += -Wmain
-QMAKE_CXXFLAGS_WARN_ON += -Wmissing-braces
-QMAKE_CXXFLAGS_WARN_ON += -Wmissing-field-initializers
-QMAKE_CXXFLAGS_WARN_ON += -Wparentheses
-QMAKE_CXXFLAGS_WARN_ON += -Wreorder
-QMAKE_CXXFLAGS_WARN_ON += -Wreturn-type
-QMAKE_CXXFLAGS_WARN_ON += -Wsequence-point
-QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare
-QMAKE_CXXFLAGS_WARN_ON += -Wsign-compare
-QMAKE_CXXFLAGS_WARN_ON += -Wstrict-aliasing
-QMAKE_CXXFLAGS_WARN_ON += -Wstrict-overflow=1
-QMAKE_CXXFLAGS_WARN_ON += -Wswitch
-QMAKE_CXXFLAGS_WARN_ON += -Wtrigraphs
-QMAKE_CXXFLAGS_WARN_ON += -Wtype-limits
-QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized
-QMAKE_CXXFLAGS_WARN_ON += -Wuninitialized
-QMAKE_CXXFLAGS_WARN_ON += -Wunknown-pragmas
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-function
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-label
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-parameter
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-value
-QMAKE_CXXFLAGS_WARN_ON += -Wunused-variable
-QMAKE_CXXFLAGS_WARN_ON += -Wvolatile-register-var
-}
-win32-msvc : QMAKE_LFLAGS += /INCREMENTAL:NO
+
+DEFINES += qh_QHpointer # libqhull/user.h
+
+include(qhull-warn.pri)
 
 INCLUDEPATH += ../libqhullcpp
 INCLUDEPATH += ../../src # e.g., "road/RoadError.h"
-DEFINES += qh_QHpointer
diff --git a/src/qhulltest/qhulltest.pro b/src/qhulltest/qhulltest.pro
index 7387e8c1ac13929f99aef1b74af314a5a0672ebc..e75c902460172c23abd702e575e901ab8f0e9022 100644
--- a/src/qhulltest/qhulltest.pro
+++ b/src/qhulltest/qhulltest.pro
@@ -3,11 +3,12 @@
 # -------------------------------------------------
 
 TARGET = qhulltest
-include(../qhull-app-cpp.pri)
 CONFIG += qtestlib
 MOC_DIR = moc
 INCLUDEPATH += ..  # for MOC_DIR
 
+include(../qhull-app-cpp.pri)
+
 PRECOMPILED_HEADER = ../road/RoadTest.h
 
 SOURCES += ../libqhullcpp/qt-qhull.cpp
diff --git a/src/user_eg2/user_eg2.pro b/src/user_eg2/user_eg2.pro
index 343181c1859d5b67ee45ee3b8c7c1195b0035154..cfb4ec6d4d9fb7b1cc3f75e851a9d2d65d8de3c1 100644
--- a/src/user_eg2/user_eg2.pro
+++ b/src/user_eg2/user_eg2.pro
@@ -1,7 +1,7 @@
 # -------------------------------------------------
-# user_eg2.pro -- Qt project for Qhull demonstration
+# user_eg2.pro -- Qt project for Qhull demonstration using shared Qhull dll
 # -------------------------------------------------
 TARGET = user_eg2
-include(../qhull-app-c.pri)
+include(../qhull-app-dll.pri)
 
 SOURCES += user_eg2.c