SPDX: license tags (mostly by guesswork)
[exim.git] / src / src / buildconfig.c
index 426714f9113dee0ea6e1c57d71aab8d39972b0a2..710b535505b8400cd9883bfa12e4fa8d5936f324 100644 (file)
@@ -2,8 +2,10 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
+/* Copyright (c) The Exim Maintainers 2022 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */
 
 
 /*************************************************
@@ -51,7 +53,7 @@ typedef struct {
   char *data;
 } save_item;
 
-static const char *db_opts[] = { "", "USE_DB", "USE_GDBM", "USE_TDB" };
+static const char *db_opts[] = { "", "USE_DB", "USE_GDBM", "USE_TDB", "USE_NDBM" };
 
 static int have_ipv6 = 0;
 static int have_iconv = 0;
@@ -111,6 +113,7 @@ unsigned long test_ulong_t = 0L;
 unsigned int test_uint_t = 0;
 #endif
 long test_long_t = 0;
+long long test_longlong_t = 0;
 int test_int_t = 0;
 FILE *base;
 FILE *new;
@@ -155,15 +158,16 @@ This assumption is known to be OK for the common operating systems. */
 
 fprintf(new, "#ifndef OFF_T_FMT\n");
 if (sizeof(test_off_t) > sizeof(test_long_t))
-  {
   fprintf(new, "# define OFF_T_FMT  \"%%lld\"\n");
-  fprintf(new, "# define LONGLONG_T long long int\n");
-  }
 else
-  {
   fprintf(new, "# define OFF_T_FMT  \"%%ld\"\n");
+fprintf(new, "#endif\n\n");
+
+fprintf(new, "#ifndef LONGLONG_T\n");
+if (sizeof(test_longlong_t) > sizeof(test_long_t))
+  fprintf(new, "# define LONGLONG_T long long int\n");
+else
   fprintf(new, "# define LONGLONG_T long int\n");
-  }
 fprintf(new, "#endif\n\n");
 
 /* Now do the same thing for time_t variables. If the length is greater than
@@ -219,8 +223,7 @@ else
 
 /* Now search the makefile for certain settings */
 
-base = fopen("Makefile", "rb");
-if (base == NULL)
+if (!(base = fopen("Makefile", "rb")))
   {
   printf("*** Buildconfig: failed to open Makefile\n");
   (void)fclose(new);
@@ -385,7 +388,6 @@ while (fgets(buffer, sizeof(buffer), base) != NULL)
   encountered. */
 
   for (i = 1; i < sizeof(db_opts)/sizeof(char *); i++)
-    {
     if (strcmp(name, db_opts[i]) == 0)
       {
       if (use_which_db == i)
@@ -395,7 +397,6 @@ while (fgets(buffer, sizeof(buffer), base) != NULL)
         fprintf(new, "/* %s not set */\n", name);
       break;
       }
-    }
   if (i < sizeof(db_opts)/sizeof(char *)) continue;
 
   /* EXIM_USER is a special case. We look in the environment for EXIM_USER or
@@ -740,28 +741,15 @@ else if (isgroup)
     continue;
     }
 
-  /* WITH_CONTENT_SCAN is another special case: it must be set if it or
-  EXPERIMENTAL_DCC is set. */
-
-  if (strcmp(name, "WITH_CONTENT_SCAN") == 0)
-    {
-    char *wcs = getenv("WITH_CONTENT_SCAN");
-    char *dcc = getenv("EXPERIMENTAL_DCC");
-    fprintf(new, wcs || dcc
-      ? "#define WITH_CONTENT_SCAN     yes\n"
-      : "/* WITH_CONTENT_SCAN not set */\n");
-    continue;
-    }
-
-  /* DISABLE_DKIM is special; must be forced if no SUPPORT_TLS */
+  /* DISABLE_DKIM is special; must be forced if DISABLE_TLS */
   if (strcmp(name, "DISABLE_DKIM") == 0)
     {
     char *d_dkim = getenv("DISABLE_DKIM");
-    char *tls = getenv("SUPPORT_TLS");
+    char *notls = getenv("DISABLE_TLS");
 
     if (d_dkim)
       fprintf(new, "#define DISABLE_DKIM          yes\n");
-    else if (!tls)
+    else if (notls)
       fprintf(new, "#define DISABLE_DKIM          yes /* forced by lack of TLS */\n");
     else
       fprintf(new, "/* DISABLE_DKIM not set */\n");