Check index >= 0 as 0 is a valid index.
[oweals/openssl.git] / Configurations / README
index da64e8c79bf8aa45ed242e907a48af719062e68a..21a6f036f8c923be33c9160bc53788dd1ebbfbf9 100644 (file)
@@ -17,12 +17,20 @@ In each table entry, the following keys are significant:
         sys_id          => System identity for systems where that
                            is difficult to determine automatically.
 
-        cc              => The compiler command, usually one of "cc",
+        cc              => The compiler command, usually one of "cc",
                            "gcc" or "clang".  This command is normally
                            also used to link object files and
                            libraries into the final program.
+        cxx             => The C++ compiler command, usually one of
+                           "c++", "g++" or "clang++".  This command is
+                           also used when linking a program where at
+                           least one of the object file is made from
+                           C++ source.
         cflags          => Flags that are used at all times when
-                           compiling.
+                           compiling C object files.
+        cxxflags        => Flags that are used at all times when
+                           compiling C++ object files.  If unset, it
+                           gets the same value as cflags.
         defines         => As an alternative, macro definitions may be
                            present here instead of in `cflags'.  If
                            given here, they MUST be as an array of the
@@ -331,6 +339,17 @@ source as well.  However, the files given through SOURCE are expected
 to be located in the source tree while files given through DEPEND are
 expected to be located in the build tree)
 
+It's also possible to depend on static libraries explicitely:
+
+    DEPEND[foo]=libsomething.a
+    DEPEND[libbar]=libsomethingelse.a
+
+This should be rarely used, and care should be taken to make sure it's
+only used when supported.  For example, native Windows build doesn't
+support build static libraries and DLLs at the same time, so using
+static libraries on Windows can only be done when configured
+'no-shared'.
+
 For some libraries, we maintain files with public symbols and their
 slot in a transfer vector (important on some platforms).  It can be
 declared like this: