1267f8c1fSEnji Cooper# This BSD makefile helps provide a deterministic means of doing a "clean" 2267f8c1fSEnji Cooper# vendor import of OpenSSL. 3267f8c1fSEnji Cooper# 4267f8c1fSEnji Cooper# Recommended use: 5267f8c1fSEnji Cooper# 6267f8c1fSEnji Cooper# % make clean 7267f8c1fSEnji Cooper# % make all 8267f8c1fSEnji Cooper 9267f8c1fSEnji CooperNO_OBJ= 10267f8c1fSEnji Cooper 11267f8c1fSEnji CooperLCRYPTO_SRC= ${SRCTOP}/crypto/openssl 12267f8c1fSEnji CooperLCRYPTO_DOC= ${LCRYPTO_SRC}/doc 13267f8c1fSEnji Cooper 14267f8c1fSEnji CooperCAT?= /bin/cat 15*52c4b76dSEnji CooperCC?= cc 16d18058b7SEnji CooperGMAKE?= gmake 17*52c4b76dSEnji CooperLD?= ld 18267f8c1fSEnji CooperMV?= /bin/mv 19267f8c1fSEnji CooperPERL?= perl 20d18058b7SEnji CooperSETENVI= /usr/bin/env -i 21267f8c1fSEnji Cooper 22267f8c1fSEnji CooperBN_CONF_H= include/crypto/bn_conf.h 23267f8c1fSEnji CooperBN_CONF_H_ORIG= ${BN_CONF_H}.orig 24267f8c1fSEnji CooperCONFIGURATION_H= include/openssl/configuration.h 25267f8c1fSEnji CooperCONFIGURATION_H_ORIG= ${CONFIGURATION_H}.orig 26267f8c1fSEnji Cooper 27267f8c1fSEnji Cooper.PHONY: configure patch all 28267f8c1fSEnji Cooper.ORDER: configure patch all 29267f8c1fSEnji Cooper 30d18058b7SEnji CooperLOCALBASE= /usr/local 31*52c4b76dSEnji CooperWRK_ENV= CC=${CC} \ 32*52c4b76dSEnji Cooper LD=${LD} \ 33*52c4b76dSEnji Cooper PATH=${LOCALBASE}/bin:/bin:/usr/bin 34d18058b7SEnji Cooper 35267f8c1fSEnji Cooperconfigure: 36d18058b7SEnji Cooper @(cd ${.CURDIR} && ${SETENVI} \ 37*52c4b76dSEnji Cooper ${WRK_ENV} \ 38267f8c1fSEnji Cooper ${PERL} ./Configure \ 39267f8c1fSEnji Cooper disable-aria \ 40267f8c1fSEnji Cooper disable-egd \ 41267f8c1fSEnji Cooper disable-idea \ 42267f8c1fSEnji Cooper disable-mdc2 \ 43267f8c1fSEnji Cooper disable-sm2 \ 44267f8c1fSEnji Cooper disable-sm3 \ 45267f8c1fSEnji Cooper disable-sm4 \ 46267f8c1fSEnji Cooper enable-ec_nistp_64_gcc_128 \ 47267f8c1fSEnji Cooper enable-ktls \ 48267f8c1fSEnji Cooper enable-sctp \ 49267f8c1fSEnji Cooper --openssldir=etc \ 50d18058b7SEnji Cooper --prefix=/usr) 51267f8c1fSEnji Cooper 52267f8c1fSEnji Cooperall: patch 53d18058b7SEnji Cooper @echo "==> Building generated files (headers, manpages, etc)" 54d18058b7SEnji Cooper @(cd ${.CURDIR} && \ 55d18058b7SEnji Cooper ${SETENVI} ${WRK_ENV} ${GMAKE} -j ${.MAKE.JOBS} build_all_generated) 56267f8c1fSEnji Cooper 57d18058b7SEnji Cooper @echo "==> Cleaning / rebuilding ASM" 58d18058b7SEnji Cooper @(cd ${SRCTOP}/secure/lib/libcrypto && \ 59d18058b7SEnji Cooper ${SETENVI} ${WRK_ENV} ${MAKE} cleanasm && \ 60d18058b7SEnji Cooper ${SETENVI} ${WRK_ENV} ${MAKE} buildasm) 61267f8c1fSEnji Cooper 62d18058b7SEnji Cooper @echo "==> Syncing manpages (section 1)" 63267f8c1fSEnji Cooper @rsync -a --delete \ 64267f8c1fSEnji Cooper --exclude 'Makefile*' --exclude '*.1' \ 65267f8c1fSEnji Cooper ${LCRYPTO_DOC}/man/ \ 66267f8c1fSEnji Cooper ${SRCTOP}/secure/lib/libcrypto/man 67267f8c1fSEnji Cooper 68d18058b7SEnji Cooper @echo "==> Syncing manpages (sections {3,5,7})" 69267f8c1fSEnji Cooper @rsync -a --delete \ 70267f8c1fSEnji Cooper --exclude 'Makefile*' --exclude '*.[357]' \ 71267f8c1fSEnji Cooper ${LCRYPTO_DOC}/man/man1/ \ 72267f8c1fSEnji Cooper ${SRCTOP}/secure/usr.bin/openssl/man 73267f8c1fSEnji Cooper 74267f8c1fSEnji Cooper 75267f8c1fSEnji Cooper# This doesn't use standard patching since the generated files can vary 76267f8c1fSEnji Cooper# depending on the host architecture. 77267f8c1fSEnji Cooperpatch: configure 78267f8c1fSEnji Cooper # Spam arch-specific overrides to config files. 79d18058b7SEnji Cooper @echo "==> Patching headers" 80d18058b7SEnji Cooper @(cd ${.CURDIR} && ${SETENVI} ${WRK_ENV} ${GMAKE} ${BN_CONF_H} && \ 81267f8c1fSEnji Cooper ${MV} ${BN_CONF_H} ${BN_CONF_H_ORIG} && \ 82267f8c1fSEnji Cooper ${CAT} ${BN_CONF_H}.orig \ 83267f8c1fSEnji Cooper ${LCRYPTO_SRC}/freebsd/${BN_CONF_H} >> \ 84d18058b7SEnji Cooper ${BN_CONF_H}) 85267f8c1fSEnji Cooper 86d18058b7SEnji Cooper @(cd ${.CURDIR} && \ 87267f8c1fSEnji Cooper ${MV} ${CONFIGURATION_H} ${CONFIGURATION_H_ORIG} && \ 88267f8c1fSEnji Cooper ${CAT} ${CONFIGURATION_H_ORIG} \ 89267f8c1fSEnji Cooper ${LCRYPTO_SRC}/freebsd/${CONFIGURATION_H} >> \ 90d18058b7SEnji Cooper ${CONFIGURATION_H}) 91267f8c1fSEnji Cooper 92267f8c1fSEnji Cooper 93267f8c1fSEnji Cooperclean: .PHONY 94d18058b7SEnji Cooper @(cd ${.CURDIR} && rm -f ${BN_CONF_H_ORIG} ${CONFIGURATION_H_ORIG}) 95267f8c1fSEnji Cooper 96d18058b7SEnji Cooper @(cd ${SRCTOP}/secure/lib/libcrypto && \ 97d18058b7SEnji Cooper ${SETENVI} ${WRK_ENV} ${MAKE} cleanasm) 98267f8c1fSEnji Cooper 99d18058b7SEnji Cooper -@(cd ${.CURDIR} && ${GMAKE} ${.TARGET}) 100267f8c1fSEnji Cooper 101267f8c1fSEnji Cooper.include <sys.mk> 102