diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 389cf5a..66fa578 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -101,6 +101,47 @@ set_target_properties(graphite2 PROPERTIES  PUBLIC_HEADER "${GRAPHITE_HEADERS}"
                                             LT_VERSION_CURRENT ${GRAPHITE_API_CURRENT}
                                             LT_VERSION_REVISION ${GRAPHITE_API_REVISION}
                                             LT_VERSION_AGE ${GRAPHITE_API_AGE})
+ 
+add_library(graphite2_static STATIC
+    ${GRAPHITE2_VM_TYPE}_machine.cpp
+    gr_char_info.cpp
+    gr_features.cpp
+    gr_face.cpp
+    gr_font.cpp
+    gr_logging.cpp
+    gr_segment.cpp
+    gr_slot.cpp
+    CmapCache.cpp
+    Code.cpp
+    Collider.cpp
+    Decompressor.cpp
+    Face.cpp
+    FeatureMap.cpp
+    Font.cpp
+    GlyphFace.cpp
+    GlyphCache.cpp
+    Intervals.cpp
+    Justifier.cpp
+    NameTable.cpp
+    Pass.cpp
+    Position.cpp
+    Segment.cpp
+    Silf.cpp
+    Slot.cpp
+    Sparse.cpp
+    TtfUtil.cpp
+    UtfCodec.cpp
+    ${FILEFACE}
+    ${TRACING})
+
+set_target_properties(graphite2_static PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}"
+                                                  SOVERSION ${GRAPHITE_SO_VERSION}
+                                                  VERSION ${GRAPHITE_VERSION}
+                                                  LT_VERSION_CURRENT ${GRAPHITE_API_CURRENT}
+                                                  LT_VERSION_REVISION ${GRAPHITE_API_REVISION}
+                                                  LT_VERSION_AGE ${GRAPHITE_API_AGE} 
+                                                  OUTPUT_NAME graphite2)
+
 
 if  (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
     set_target_properties(graphite2 PROPERTIES
@@ -149,8 +190,10 @@ endif()
 if  (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
     set_target_properties(graphite2 PROPERTIES
         COMPILE_DEFINITIONS "_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;UNICODE;GRAPHITE2_EXPORTING")
+    set_target_properties(graphite2_static PROPERTIES 
+        COMPILE_DEFINITIONS "_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;UNICODE;GRAPHITE2_STATIC")
 endif()
 
 
-install(TARGETS graphite2 EXPORT graphite2 LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX} PUBLIC_HEADER DESTINATION include/graphite2 RUNTIME DESTINATION bin)
+install(TARGETS graphite2 graphite2_static EXPORT graphite2 LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX} PUBLIC_HEADER DESTINATION include/graphite2 RUNTIME DESTINATION bin)
 install(EXPORT graphite2 DESTINATION share/graphite2 NAMESPACE gr2_)
