# Do not edit -- this file documents how Postfix was built for your machine.
#----------------------------------------------------------------
# Start of summary of user-configurable 'make makefiles' options.
# CCARGS=-DUSE_TLS -I/opt/openssl-1.1.1g/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl -DUSE_TLS -DUSE_TLSPROXY -DHAS_CDB -I/usr/local/include -DHAS_SQLITE -I/usr/local/include -DHAS_LMDB -I/usr/local/include -DHAS_LDAP -I/usr/local/include -DHAS_PGSQL -I/usr/local/include/pgsql -DHAS_MYSQL -I/usr/local/include/mysql
# AUXLIBS=-L/opt/openssl-1.1.1g/lib -lssl -lcrypto -L/usr/local/lib -lsasl2
# AUXLIBS_CDB=-L/usr/local/lib -lcdb
# AUXLIBS_LDAP=-L/usr/local/lib -lldap -L/usr/local/lib -llber
# AUXLIBS_LMDB=-L/usr/local/lib -llmdb
# AUXLIBS_MYSQL=-L/usr/local/lib/mysql -lmysqlclient -lz -lm
# AUXLIBS_PGSQL=-L/usr/local/lib -lpq
# AUXLIBS_SQLITE=-L/usr/local/lib -lsqlite3
# shared=yes
# dynamicmaps=no
# pie=
# shlib_directory=/usr/lib/postfix/MAIL_VERSION
# End of summary of user-configurable 'make makefiles' options.
#--------------------------------------------------------------
# System-dependent settings and compiler/linker overrides.
SYSTYPE	= FREEBSD8
_AR	= ar
ARFL	= rv
_RANLIB	= ranlib
SYSLIBS	= -L/opt/openssl-1.1.1g/lib -lssl -lcrypto -L/usr/local/lib -lsasl2 -L/usr/local/lib -lcdb -L/usr/local/lib -lldap -L/usr/local/lib -llber -L/usr/local/lib -llmdb -L/usr/local/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -Wl,-R/usr/local/lib -lpcre2-8 -L/usr/local/lib -lpq -L/usr/local/lib -lsqlite3 -L/usr/local/lib -licui18n -licuuc -licudata 
CC	= gcc -I. -I../../include -DUSE_TLS -I/opt/openssl-1.1.1g/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl -DUSE_TLS -DUSE_TLSPROXY -DHAS_CDB -I/usr/local/include -DHAS_SQLITE -I/usr/local/include -DHAS_LMDB -I/usr/local/include -DHAS_LDAP -I/usr/local/include -DHAS_PGSQL -I/usr/local/include/pgsql -DHAS_MYSQL -I/usr/local/include/mysql -I/usr/local/include -DHAS_DEV_URANDOM -DHAS_PCRE=2 -I/usr/local/include -DSNAPSHOT -DNONPROD='"nonprod-unprivileged"' -DDEF_SHLIB_DIR=\"/usr/lib/postfix/\$${mail_version}\" -DUSE_DYNAMIC_LIBS -UUSE_DYNAMIC_MAPS $(WARN)
OPT	= 
DEBUG	= -g
AWK	= awk
STRCASE = 
EXPORT	= CCARGS='-I. -I../../include -DUSE_TLS -I/opt/openssl-1.1.1g/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl -DUSE_TLS -DUSE_TLSPROXY -DHAS_CDB -I/usr/local/include -DHAS_SQLITE -I/usr/local/include -DHAS_LMDB -I/usr/local/include -DHAS_LDAP -I/usr/local/include -DHAS_PGSQL -I/usr/local/include/pgsql -DHAS_MYSQL -I/usr/local/include/mysql -I/usr/local/include -DHAS_DEV_URANDOM -DHAS_PCRE=2 -I/usr/local/include -DSNAPSHOT -DNONPROD='"nonprod-unprivileged"' -DDEF_SHLIB_DIR=\"/usr/lib/postfix/\$${mail_version}\" -DUSE_DYNAMIC_LIBS -UUSE_DYNAMIC_MAPS' OPT='' DEBUG='-g'
WARN	= -Wall -Wno-comment -Wformat -Wimplicit -Wmissing-prototypes \
	-Wparentheses -Wstrict-prototypes -Wswitch -Wuninitialized \
	-Wunused -Wno-missing-braces -fno-common
DEFINED_MAP_TYPES = db cdb sqlite lmdb ldap pgsql mysql dev_urandom pcre
MAKE_FIX = 
BUILD_ROOT = /home/wietse/postfix-3.12-20260827-nonprod-unprivileged
# Switch between Postfix static and dynamically-linked libraries.
AR	= :
RANLIB	= :
LIB_PREFIX = postfix-
LIB_SUFFIX = .so
SHLIB_CFLAGS = -fPIC
SHLIB_DIR = /usr/lib/postfix/3.12-20260827-nonprod-unprivileged
SHLIB_ENV = LD_LIBRARY_PATH=/home/wietse/postfix-3.12-20260827-nonprod-unprivileged/lib
SHLIB_LD = gcc -shared -Wl,-soname,${LIB}
SHLIB_SYSLIBS = -L/opt/openssl-1.1.1g/lib -lssl -lcrypto -L/usr/local/lib -lsasl2 -L/usr/local/lib -lcdb -L/usr/local/lib -lldap -L/usr/local/lib -llber -L/usr/local/lib -llmdb -L/usr/local/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -Wl,-R/usr/local/lib -lpcre2-8 -L/usr/local/lib -lpq -L/usr/local/lib -lsqlite3 -L/usr/local/lib -licui18n -licuuc -licudata
SHLIB_RPATH = -Wl,-rpath,${SHLIB_DIR}
# Switch between dynamicmaps.cf plugins and hard-linked databases.
NON_PLUGIN_MAP_OBJ = $(MAP_OBJ)
PLUGIN_MAP_OBJ = 
PLUGIN_MAP_OBJ_UPDATE = 
PLUGIN_MAP_SO_MAKE = 
PLUGIN_MAP_SO_UPDATE = 
PLUGIN_LD = 
POSTFIX_INSTALL_OPTS = 
# Application-specific rules.
SHELL	= /bin/sh
SRCS	= postalias.c 
OBJS	= postalias.o 
HDRS	= 
TESTSRC	= 
DEFS	= -I. -I$(INC_DIR) -D$(SYSTYPE)
CFLAGS	= $(DEBUG) $(OPT) $(DEFS)
TESTPROG= 
PROG	= postalias
INC_DIR	= ../../include
LIBS	= ../../lib/lib$(LIB_PREFIX)global$(LIB_SUFFIX) \
	../../lib/lib$(LIB_PREFIX)util$(LIB_SUFFIX)
NOSLEEP	= LD_PRELOAD=../../lib/nosleep.so

.c.o:;	$(CC) $(CFLAGS) -c $*.c

$(PROG): $(OBJS) $(LIBS)
	$(CC) $(CFLAGS) $(SHLIB_RPATH) -o $@ $(OBJS) $(LIBS) $(SYSLIBS)

$(OBJS): ../../conf/makedefs.out

Makefile: Makefile.in
	cat ../../conf/makedefs.out $? >$@

update: ../../bin/$(PROG)

tests:	test1 test2 fail_test mode_conflict_test json_tests

root_tests:

test1:	$(PROG) map.in map-abc1.ref map-ghi1.ref map-uABC1.ref
	@echo ; echo RUN test1
	rm -f main.cf
	cp ../../test-conf/main.cf .
	touch -t 197101010000 main.cf
	${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . map.in
	for key in abc ghi; \
	do \
	    ${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . -q $${key} map.in | diff map-$${key}1.ref -; \
	done
	${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . -f map.in
	for key in ABC; \
	do \
	    ${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . -fq $${key} map.in | diff map-u$${key}1.ref -; \
	done
	rm -f map.in.db main.cf
	@echo PASS test1

test2:	$(PROG) map.in map-abc2.ref map-ghi2.ref map-uABC2.ref
	@echo ; echo RUN test2
	rm -f main.cf
	cp ../../test-conf/main.cf .
	touch -t 197101010000 main.cf
	${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . map.in
	for key in abc ghi; \
	do \
	    echo $${key} | ${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . -q - map.in | diff map-$${key}2.ref -; \
	done
	${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . -f map.in
	for key in ABC; \
	do \
	    echo $${key} | ${SHLIB_ENV} ${VALGRIND} ./$(PROG) -c . -fq - map.in | diff map-u$${key}2.ref -; \
	done
	rm -f map.in.db main.cf
	@echo PASS test2

fail_test: $(PROG) aliases fail_test.in fail_test.ref
	@echo ; echo RUN fail_test
	rm -f main.cf
	cp ../../test-conf/main.cf .
	touch -t 197101010000 main.cf
	-(${SHLIB_ENV} MAIL_CONFIG=. $(NOSLEEP) sh fail_test.in 2>&1 || exit 0) | sed \
	    -e 's/No error:/Unknown error:/' \
	    -e 's/Success/Unknown error: 0/' > fail_test.tmp
	diff fail_test.ref fail_test.tmp
	rm -f fail_test.tmp main.cf
	@echo PASS fail_test

mode_conflict_test: $(PROG) mode_conflict_test.in mode_conflict_test.ref
	@echo ; echo RUN mode_conflict_test
	rm -f main.cf
	cp ../../test-conf/main.cf .
	touch -t 197101010000 main.cf
	$(SHLIB_ENV) MAIL_CONFIG=. $(NOSLEEP) sh -x mode_conflict_test.in >mode_conflict_test.tmp 2>&1
	diff mode_conflict_test.ref mode_conflict_test.tmp
	rm -f mode_conflict_test.tmp main.cf
	@echo PASS mode_conflict_test

json_tests: json_query_test json_queries_test json_sequence_test

json_query_test: $(PROG)
	# Exercise code in postalias_query().
	@echo ; echo RUN json_query_test
	rm -f main.cf
	cp ../../test-conf/main.cf .
	echo '{"postmaster": "root"}' >json_query.tmp
	$(SHLIB_ENV) ${VALGRIND} ./$(PROG)  -jq postmaster \
		'inline:{{postmaster = root}}' | diff json_query.tmp -
	($(SHLIB_ENV) ${VALGRIND} ./$(PROG)  -jq other \
		'inline:{{postmaster = root}}' || exit 0) | diff /dev/null -
	rm -f json_query.tmp main.cf
	@echo PASS json_query_test

json_queries_test: $(PROG)
	# Exercise json formatting in postalias_queries().
	@echo ; echo RUN json_queries_test
	rm -f main.cf
	cp ../../test-conf/main.cf .
	echo '{"postmaster": "root"}' >json_queries.tmp
	(echo postmaster; echo other) | $(SHLIB_ENV) ${VALGRIND} \
		./$(PROG) -jq - 'inline:{{postmaster = root}}' | \
		diff json_queries.tmp -
	rm -f json_queries.tmp main.cf
	@echo PASS json_queries_test

json_sequence_test: $(PROG)
	# Exercise json formatting in postalias_seq().
	@echo ; echo RUN json_sequence_test
	rm -f main.cf
	cp ../../test-conf/main.cf .
	rm -f json_sequence.tmp
	(echo '{"postmaster": "root"}'; echo '{"root": "real-user"}') |\
		sort >json_sequence.tmp
	$(SHLIB_ENV) ${VALGRIND} ./$(PROG) -js \
		'inline:{{postmaster = root} {root=real-user}}' | sort | \
		diff json_sequence.tmp -
	rm -f json_sequence.tmp main.cf
	@echo PASS json_sequence_test

../../bin/$(PROG): $(PROG)
	cp $(PROG) ../../bin

clean:
	rm -f *.o *core $(PROG) $(TESTPROG) junk 

tidy:	clean

depend: $(MAKES)
	(sed '1,/^# do not edit/!d' Makefile.in; \
	set -e; for i in [a-z][a-z0-9]*.c; do \
	    $(CC) -E $(DEFS) $(INCL) $$i | grep -v '[<>]' | sed -n -e '/^# *1 *"\([^"]*\)".*/{' \
	    -e 's//'`echo $$i|sed 's/c$$/o/'`': \1/' \
	    -e 's/o: \.\//o: /' -e p -e '}' ; \
	done | LANG=C sort -u) | grep -v '[.][o][:][ ][/]' >$$$$ && mv $$$$ Makefile.in
	@$(EXPORT) make -f Makefile.in Makefile 1>&2

# do not edit below this line - it is generated by 'make depend'
postalias.o: ../../include/argv.h
postalias.o: ../../include/check_arg.h
postalias.o: ../../include/clean_env.h
postalias.o: ../../include/dict.h
postalias.o: ../../include/dict_db.h
postalias.o: ../../include/dict_proxy.h
postalias.o: ../../include/mail_conf.h
postalias.o: ../../include/mail_dict.h
postalias.o: ../../include/mail_params.h
postalias.o: ../../include/mail_parm_split.h
postalias.o: ../../include/mail_task.h
postalias.o: ../../include/mail_version.h
postalias.o: ../../include/maillog_client.h
postalias.o: ../../include/mkmap.h
postalias.o: ../../include/msg.h
postalias.o: ../../include/msg_vstream.h
postalias.o: ../../include/myflock.h
postalias.o: ../../include/mymalloc.h
postalias.o: ../../include/readlline.h
postalias.o: ../../include/resolve_clnt.h
postalias.o: ../../include/set_eugid.h
postalias.o: ../../include/split_at.h
postalias.o: ../../include/stringops.h
postalias.o: ../../include/sys_defs.h
postalias.o: ../../include/tok822.h
postalias.o: ../../include/vbuf.h
postalias.o: ../../include/vstream.h
postalias.o: ../../include/vstring.h
postalias.o: ../../include/vstring_vstream.h
postalias.o: ../../include/warn_stat.h
postalias.o: postalias.c
