[exim-cvs] Build: avoid compiling code for unused transports…

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Exim Git Commits Mailing List
Ημερομηνία:  
Προς: exim-cvs
Αντικείμενο: [exim-cvs] Build: avoid compiling code for unused transports, routers, authenticators
Gitweb: https://git.exim.org/exim.git/commitdiff/38965d80d70cacd0c944d32f7107549a3a272b35
Commit:     38965d80d70cacd0c944d32f7107549a3a272b35
Parent:     114b01dded2c9d72cdd44cac97a4d3cc9f22ddfd
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Thu Sep 28 11:10:13 2023 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Sun Feb 25 23:49:42 2024 +0000


    Build: avoid compiling code for unused transports, routers, authenticators


    The smtp transport is not covered here; there are dependencies in
    other bits of the exim body.
---
 src/src/auths/cram_md5.c        | 29 +++++++++++++++++------------
 src/src/auths/dovecot.c         |  6 +++++-
 src/src/auths/external.c        |  5 ++++-
 src/src/auths/plaintext.c       |  5 ++++-
 src/src/auths/spa.c             |  5 ++++-
 src/src/auths/tls.c             |  5 ++++-
 src/src/routers/accept.c        |  3 +++
 src/src/routers/dnslookup.c     |  5 ++++-
 src/src/routers/ipliteral.c     |  5 ++++-
 src/src/routers/iplookup.c      |  5 ++++-
 src/src/routers/manualroute.c   |  5 ++++-
 src/src/routers/queryprogram.c  |  5 ++++-
 src/src/routers/redirect.c      |  3 +++
 src/src/transports/appendfile.c |  3 +++
 src/src/transports/autoreply.c  |  3 +++
 src/src/transports/lmtp.c       |  3 +++
 src/src/transports/pipe.c       |  3 +++
 17 files changed, 76 insertions(+), 22 deletions(-)


diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c
index 0761b7c6a..8f00ee498 100644
--- a/src/src/auths/cram_md5.c
+++ b/src/src/auths/cram_md5.c
@@ -13,15 +13,17 @@ in the MD5 computation functions, without their own stand-alone main
program. */

#ifdef STAND_ALONE
-#define CRAM_STAND_ALONE
-#include "md5.c"
+# define CRAM_STAND_ALONE
+# include "md5.c"


/* This is the normal, non-stand-alone case */

#else
-#include "../exim.h"
-#include "cram_md5.h"
+# include "../exim.h"
+
+# ifdef AUTH_CRAM_MD5
+# include "cram_md5.h"

/* Options specific to the cram_md5 authentication mechanism. */

@@ -49,7 +51,7 @@ auth_cram_md5_options_block auth_cram_md5_option_defaults = {
};


-#ifdef MACRO_PREDEF
+# ifdef MACRO_PREDEF

 /* Dummy values */
 void auth_cram_md5_init(auth_instance *ablock) {}
@@ -57,7 +59,7 @@ int auth_cram_md5_server(auth_instance *ablock, uschar *data) {return 0;}
 int auth_cram_md5_client(auth_instance *ablock, void *sx, int timeout,
     uschar *buffer, int buffsize) {return 0;}


-#else    /*!MACRO_PREDEF*/
+#  else    /*!MACRO_PREDEF*/



/*************************************************
@@ -81,8 +83,9 @@ if (ob->client_secret != NULL)
}
}

-#endif    /*!MACRO_PREDEF*/
-#endif  /* STAND_ALONE */
+#  endif    /*!MACRO_PREDEF*/
+# endif        /*AUTH_CRAM_MD5*/
+#endif        /*!STAND_ALONE*/




@@ -154,7 +157,8 @@ md5_end(&base, md5secret, 16, digestptr);
}


-#ifndef STAND_ALONE
+# ifndef STAND_ALONE
+# ifdef AUTH_CRAM_MD5

 /*************************************************
 *             Server entry point                 *
@@ -329,7 +333,8 @@ if (smtp_write_command(sx, SCMD_FLUSH, "%s\r\n", b64encode(CUS big_buffer,
 return smtp_read_response(sx, US buffer, buffsize, '2', timeout)
   ? OK : FAIL;
 }
-#endif  /* STAND_ALONE */
+#  endif  /*AUTH_CRAM_MD5*/
+# endif  /*!STAND_ALONE*/



/*************************************************
@@ -338,7 +343,7 @@ return smtp_read_response(sx, US buffer, buffsize, '2', timeout)
**************************************************
*************************************************/

-#ifdef STAND_ALONE
+# ifdef STAND_ALONE

int main(int argc, char **argv)
{
@@ -355,7 +360,7 @@ printf("\n");
return 0;
}

-#endif
+# endif    /*STAND_ALONE*/


 #endif    /*!MACRO_PREDEF*/
 /* End of cram_md5.c */
diff --git a/src/src/auths/dovecot.c b/src/src/auths/dovecot.c
index 377c09205..7f437fa0d 100644
--- a/src/src/auths/dovecot.c
+++ b/src/src/auths/dovecot.c
@@ -23,6 +23,8 @@ because using C buffered I/O gives problems on some operating systems. PH */
  */


 #include "../exim.h"
+
+#ifdef AUTH_DOVECOT    /* Remainder of file */
 #include "dovecot.h"


#define VERSION_MAJOR 1
@@ -533,4 +535,6 @@ return ret;
}


-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*AUTH_DOVECOT*/
+/* end of auths/dovecot.c */
diff --git a/src/src/auths/external.c b/src/src/auths/external.c
index a89a50486..6ae5833af 100644
--- a/src/src/auths/external.c
+++ b/src/src/auths/external.c
@@ -14,6 +14,8 @@ method defined in RFC 4422 Appendix A.



 #include "../exim.h"
+
+#ifdef AUTH_EXTERNAL    /* Remainder of file */
 #include "external.h"


/* Options specific to the external authentication mechanism. */
@@ -153,5 +155,6 @@ return OK;



-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*AUTH_EXTERNAL*/
 /* End of external.c */
diff --git a/src/src/auths/plaintext.c b/src/src/auths/plaintext.c
index 391e629f9..814896047 100644
--- a/src/src/auths/plaintext.c
+++ b/src/src/auths/plaintext.c
@@ -8,6 +8,8 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */


 #include "../exim.h"
+
+#ifdef AUTH_PLAINTEXT    /* Remainder of file */
 #include "plaintext.h"



@@ -176,5 +178,6 @@ while ((s = string_nextinlist(&text, &sep, NULL, 0)))
return FAIL;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*AUTH_PLAINTEST*/
 /* End of plaintext.c */
diff --git a/src/src/auths/spa.c b/src/src/auths/spa.c
index 0d4262ec5..51418c4ed 100644
--- a/src/src/auths/spa.c
+++ b/src/src/auths/spa.c
@@ -34,6 +34,8 @@ References:



 #include "../exim.h"
+
+#ifdef AUTH_SPA        /* Remainder of file */
 #include "spa.h"


/* #define DEBUG_SPA */
@@ -372,5 +374,6 @@ if (errno != 0 || buffer[0] != '3')
return FAIL;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*AUTH_SPA*/
 /* End of spa.c */
diff --git a/src/src/auths/tls.c b/src/src/auths/tls.c
index 72ad56c4e..005032f57 100644
--- a/src/src/auths/tls.c
+++ b/src/src/auths/tls.c
@@ -12,6 +12,8 @@ a server to verify a client SSL certificate



 #include "../exim.h"
+
+#ifdef AUTH_TLS        /* Remainder of file */
 #include "tls.h"


/* Options specific to the tls authentication mechanism. */
@@ -91,5 +93,6 @@ return auth_check_serv_cond(ablock);
}


-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*AUTH_TLS*/
 /* End of tls.c */
diff --git a/src/src/routers/accept.c b/src/src/routers/accept.c
index 8b72bfac1..9766e5e10 100644
--- a/src/src/routers/accept.c
+++ b/src/src/routers/accept.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef ROUTER_ACCEPT        /* Remainder of file */
 #include "rf_functions.h"
 #include "accept.h"


@@ -137,4 +139,5 @@ return rf_queue_add(addr, addr_local, addr_remote, rblock, pw)? OK : DEFER;
}

 #endif    /*!MACRO_PREDEF*/
+#endif    /*ROUTER_ACCEPT*/
 /* End of routers/accept.c */
diff --git a/src/src/routers/dnslookup.c b/src/src/routers/dnslookup.c
index 671e8c93f..33382671f 100644
--- a/src/src/routers/dnslookup.c
+++ b/src/src/routers/dnslookup.c
@@ -8,6 +8,8 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */


 #include "../exim.h"
+
+#ifdef ROUTER_DNSLOOKUP        /* Remainder of file */
 #include "rf_functions.h"
 #include "dnslookup.h"


@@ -469,7 +471,8 @@ return rf_queue_add(addr, addr_local, addr_remote, rblock, pw)?
OK : DEFER;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*ROUTER_DNSLOOKUP
 /* End of routers/dnslookup.c */
 /* vi: aw ai sw=2
 */
diff --git a/src/src/routers/ipliteral.c b/src/src/routers/ipliteral.c
index 1297b97f2..16e096b40 100644
--- a/src/src/routers/ipliteral.c
+++ b/src/src/routers/ipliteral.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef ROUTER_IPLITERAL        /* Remainder of file */
 #include "rf_functions.h"
 #include "ipliteral.h"


@@ -199,5 +201,6 @@ return rf_queue_add(addr, addr_local, addr_remote, rblock, pw)?
OK : DEFER;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*ROUTER_IPLITERAL*/
 /* End of routers/ipliteral.c */
diff --git a/src/src/routers/iplookup.c b/src/src/routers/iplookup.c
index f9966bcc0..b88212e5c 100644
--- a/src/src/routers/iplookup.c
+++ b/src/src/routers/iplookup.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef ROUTER_IPLOOKUP        /* Remainder of file */
 #include "rf_functions.h"
 #include "iplookup.h"


@@ -414,5 +416,6 @@ if (rc != OK) return rc;
return OK;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*ROUTER_IPLOOKUP*/
 /* End of routers/iplookup.c */
diff --git a/src/src/routers/manualroute.c b/src/src/routers/manualroute.c
index 200e0206e..45378ce3d 100644
--- a/src/src/routers/manualroute.c
+++ b/src/src/routers/manualroute.c
@@ -9,6 +9,8 @@



#include "../exim.h"
+
+#ifdef ROUTER_MANUALROUTE
#include "rf_functions.h"
#include "manualroute.h"

@@ -488,5 +490,6 @@ addr->transport = transport;
return OK;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*ROUTER_MANUALROUTE*/
 /* End of routers/manualroute.c */
diff --git a/src/src/routers/queryprogram.c b/src/src/routers/queryprogram.c
index dd5e24b93..b1d736f94 100644
--- a/src/src/routers/queryprogram.c
+++ b/src/src/routers/queryprogram.c
@@ -8,6 +8,8 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */


 #include "../exim.h"
+
+#ifdef ROUTER_QUERYPROGRAM    /* Remainder of file */
 #include "rf_functions.h"
 #include "queryprogram.h"


@@ -535,5 +537,6 @@ addr->prop = addr_prop;
return rf_queue_add(addr, addr_local, addr_remote, rblock, pw) ? OK : DEFER;
}

-#endif   /*!MACRO_PREDEF*/
+#endif    /*!MACRO_PREDEF*/
+#endif    /*ROUTER_QUERYPROGRAM*/
 /* End of routers/queryprogram.c */
diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c
index 6b27c82b0..37b5f5e24 100644
--- a/src/src/routers/redirect.c
+++ b/src/src/routers/redirect.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef ROUTER_REDIRECT    /* Remainder of file */
 #include "rf_functions.h"
 #include "redirect.h"


@@ -807,4 +809,5 @@ return yield;
}

 #endif   /*!MACRO_PREDEF*/
+#endif    /*ROUTER_REDIRECT*/
 /* End of routers/redirect.c */
diff --git a/src/src/transports/appendfile.c b/src/src/transports/appendfile.c
index 72c96f0d0..0279659f2 100644
--- a/src/src/transports/appendfile.c
+++ b/src/src/transports/appendfile.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef TRANSPORT_APPENDFILE    /* Remainder of file */
 #include "appendfile.h"


#ifdef SUPPORT_MAILDIR
@@ -3326,4 +3328,5 @@ ret_panic:
}

 #endif    /*!MACRO_PREDEF*/
+#endif    /*TRANSPORT_APPENDFILE*/
 /* End of transport/appendfile.c */
diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c
index 3755ba284..2f2fe1e16 100644
--- a/src/src/transports/autoreply.c
+++ b/src/src/transports/autoreply.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef TRANSPORT_AUTOREPLY    /* Remainder of file */
 #include "autoreply.h"



@@ -820,4 +822,5 @@ return FALSE;
}

 #endif    /*!MACRO_PREDEF*/
+#endif    /*TRANSPORT_AUTOREPOL*/
 /* End of transport/autoreply.c */
diff --git a/src/src/transports/lmtp.c b/src/src/transports/lmtp.c
index f3f908836..eff0dc79d 100644
--- a/src/src/transports/lmtp.c
+++ b/src/src/transports/lmtp.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+#ifdef TRANSPORT_LMTP        /* Remainder of file */
+
 #include "lmtp.h"


#define PENDING_OK 256
@@ -807,4 +809,5 @@ MINUS_N:
}

 #endif    /*!MACRO_PREDEF*/
+#endif    /*TRANSPORT_LMTP*/
 /* End of transport/lmtp.c */
diff --git a/src/src/transports/pipe.c b/src/src/transports/pipe.c
index 157d2368f..60a20c8fe 100644
--- a/src/src/transports/pipe.c
+++ b/src/src/transports/pipe.c
@@ -9,6 +9,8 @@



 #include "../exim.h"
+
+#ifdef TRANSPORT_PIPE    /* Remainder of file */
 #include "pipe.h"


#ifdef HAVE_SETCLASSRESOURCES
@@ -1131,4 +1133,5 @@ return FALSE;
}

 #endif    /*!MACRO_PREDEF*/
+#endif    /*TRASPORT_PIPE*/
 /* End of transport/pipe.c */


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-cvs.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-cvs-unsubscribe@???
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/