1 # Make file for building a library containing all the available authorization
2 # methods, and calling it auths.a. In addition, there are functions that are
3 # of general use in several methods; these are in separate modules so they are
4 # linked in only when needed. This Makefile is called from the main make file,
5 # after cd'ing to the auths subdirectory. When the relevant AUTH_ macros are
6 # defined, the equivalent modules herein is not included in the final binary.
8 # Copyright (c) The Exim Maintainers 2024
10 # nb: at build time, the version of this file used will have had some
11 # extra variable definitions and prepended to it and module build rules
12 # interpolated below. This is done by scripts/drivers-Makefile with
13 # definitions from scripts/Configure-Makefile
15 # MAGIC-TAG-MODS-OBJ-RULES-GO-HERE
17 AF_OBJ = auth-spa.o call_pam.o call_pwcheck.o call_radius.o check_serv_cond.o \
18 get_data.o get_no64_data.o pwcheck.o
20 all: $(AF_OBJ) auths.a $(MODS)
23 @$(RM_COMMAND) -f auths.a
25 $(FE)$(AR) auths.a $(OBJ)
29 .c.o:; @echo "$(CC) $*.c"
30 $(FE)$(CC) -c $(CFLAGS) $(INCLUDE) $*.c
32 SO_FLAGS = -DDYNLOOKUP $(CFLAGS_DYNAMIC) $(CFLAGS) $(INCLUDE) $(DLFLAGS)
33 .c.so:; @echo "$(CC) -shared $*.c"
34 $(FE)$(CC) $(SO_FLAGS) $(AUTH_$*_INCLUDE) $(AUTH_$*_LIBS) \
38 $(OBJ) $(MOD): $(HDRS)
40 auth-spa.o: auth-spa.c
41 call_pam.o: call_pam.c
42 call_pwcheck.o: call_pwcheck.c pwcheck.h
43 call_radius.o: call_radius.c
44 check_serv_cond.o: check_serv_cond.c
45 get_data.o: get_data.c
46 get_no64_data.o: get_no64_data.c
47 pwcheck.o: pwcheck.c pwcheck.h
49 cram_md5.o: cram_md5.c cram_md5.h
50 cyrus_sasl.o: cyrus_sasl.c cyrus_sasl.h
51 dovecot.o: dovecot.c dovecot.h
52 external.o: external.c external.h
53 gsasl.o: gsasl.c gsasl.h
54 heimdal_gssapi.o: heimdal_gssapi.c heimdal_gssapi.h
55 plaintext.o: plaintext.c plaintext.h
59 # These depend on more than one .c source
61 spa.so: spa.c auth-spa.c spa.h
62 $(FE)$(CC) $(SO_FLAGS) spa.c auth-spa.c -o $@