mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
56c77c52e1
Also remove depend/local_depend. Reviewed-by: Richard Levitte <levitte@openssl.org>
380 lines
11 KiB
Makefile
380 lines
11 KiB
Makefile
#
|
|
# test/Makefile
|
|
#
|
|
|
|
DIR= test
|
|
TOP= ..
|
|
CC= cc
|
|
INCLUDES= -I$(TOP) -I../include -I../crypto/include -I$(TOP)/fips
|
|
CFLAG= -g
|
|
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
|
|
PERL= perl
|
|
|
|
PEX_LIBS=
|
|
EX_LIBS= #-lnsl -lsocket
|
|
|
|
CFLAGS= $(INCLUDES) $(CFLAG)
|
|
|
|
GENERAL=Makefile maketests.com \
|
|
tests.com testenc.com tx509.com trsa.com tcrl.com tsid.com treq.com \
|
|
tpkcs7.com tpkcs7d.com tverify.com testgen.com testss.com testssl.com \
|
|
testca.com VMSca-response.1 VMSca-response.2
|
|
|
|
DLIBCRYPTO= ../libcrypto.a
|
|
DLIBSSL= ../libssl.a
|
|
LIBCRYPTO= -L.. -lcrypto
|
|
LIBSSL= -L.. -lssl
|
|
LIBFIPS= -L.. -lfips
|
|
|
|
# Prefix for logline for each test
|
|
START= @@@ START
|
|
|
|
NPTEST= nptest
|
|
MEMLEAKTEST= memleaktest
|
|
BNTEST= bntest
|
|
ECTEST= ectest
|
|
ECDSATEST= ecdsatest
|
|
ECDHTEST= ecdhtest
|
|
EXPTEST= exptest
|
|
GMDIFFTEST= gmdifftest
|
|
PBELUTEST= pbelutest
|
|
IDEATEST= ideatest
|
|
SHA1TEST= sha1test
|
|
SHA256TEST= sha256t
|
|
SHA512TEST= sha512t
|
|
MDC2TEST= mdc2test
|
|
RMDTEST= rmdtest
|
|
MD2TEST= md2test
|
|
MD4TEST= md4test
|
|
MD5TEST= md5test
|
|
HMACTEST= hmactest
|
|
WPTEST= wp_test
|
|
RC2TEST= rc2test
|
|
RC4TEST= rc4test
|
|
RC5TEST= rc5test
|
|
BFTEST= bftest
|
|
CASTTEST= casttest
|
|
DESTEST= destest
|
|
RANDTEST= randtest
|
|
DHTEST= dhtest
|
|
DSATEST= dsatest
|
|
SSLTEST= ssltest
|
|
DANETEST= danetest
|
|
RSATEST= rsa_test
|
|
ENGINETEST= enginetest
|
|
EVPTEST= evp_test
|
|
EVPEXTRATEST=evp_extra_test
|
|
P5_CRPT2_TEST= p5_crpt2_test
|
|
IGETEST= igetest
|
|
JPAKETEST= jpaketest
|
|
SECMEMTEST= secmemtest
|
|
SRPTEST= srptest
|
|
V3NAMETEST= v3nametest
|
|
HEARTBEATTEST= heartbeat_test
|
|
CONSTTIMETEST= constant_time_test
|
|
VERIFYEXTRATEST= verify_extra_test
|
|
CLIENTHELLOTEST= clienthellotest
|
|
PACKETTEST= packettest
|
|
SSLVERTOLTEST= sslvertoltest
|
|
SSLEXTENSIONTEST= sslextensiontest
|
|
SSLSESSIONTICKTEST= sslsessionticktest
|
|
SSLSKEWITH0PTEST= sslskewith0ptest
|
|
ASYNCTEST= asynctest
|
|
|
|
TESTS= alltests
|
|
|
|
EXE= $(NPTEST)$(EXE_EXT) $(MEMLEAKTEST)$(EXE_EXT) \
|
|
$(BNTEST)$(EXE_EXT) $(ECTEST)$(EXE_EXT) \
|
|
$(ECDSATEST)$(EXE_EXT) $(ECDHTEST)$(EXE_EXT) $(GMDIFFTEST)$(EXE_EXT) \
|
|
$(PBELUTEST)$(EXE_EXT) $(IDEATEST)$(EXE_EXT) \
|
|
$(MD2TEST)$(EXE_EXT) $(MD4TEST)$(EXE_EXT) $(MD5TEST)$(EXE_EXT) $(HMACTEST)$(EXE_EXT) $(WPTEST)$(EXE_EXT) \
|
|
$(RC2TEST)$(EXE_EXT) $(RC4TEST)$(EXE_EXT) $(RC5TEST)$(EXE_EXT) \
|
|
$(DESTEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(SHA256TEST)$(EXE_EXT) $(SHA512TEST)$(EXE_EXT) \
|
|
$(MDC2TEST)$(EXE_EXT) $(RMDTEST)$(EXE_EXT) \
|
|
$(RANDTEST)$(EXE_EXT) $(DHTEST)$(EXE_EXT) $(ENGINETEST)$(EXE_EXT) \
|
|
$(DANETEST)$(EXE_EXT) \
|
|
$(BFTEST)$(EXE_EXT) $(CASTTEST)$(EXE_EXT) $(SSLTEST)$(EXE_EXT) \
|
|
$(EXPTEST)$(EXE_EXT) $(DSATEST)$(EXE_EXT) $(RSATEST)$(EXE_EXT) \
|
|
$(EVPTEST)$(EXE_EXT) $(EVPEXTRATEST)$(EXE_EXT) $(IGETEST)$(EXE_EXT) \
|
|
$(JPAKETEST)$(EXE_EXT) $(SECMEMTEST)$(EXE_EXT) \
|
|
$(SRPTEST)$(EXE_EXT) $(V3NAMETEST)$(EXE_EXT) \
|
|
$(HEARTBEATTEST)$(EXE_EXT) $(P5_CRPT2_TEST)$(EXE_EXT) \
|
|
$(CONSTTIMETEST)$(EXE_EXT) $(VERIFYEXTRATEST)$(EXE_EXT) \
|
|
$(CLIENTHELLOTEST)$(EXE_EXT) $(PACKETTEST)$(EXE_EXT) $(ASYNCTEST)$(EXE_EXT)
|
|
|
|
# $(METHTEST)$(EXE_EXT)
|
|
|
|
OBJ= $(NPTEST).o $(MEMLEAKTEST).o \
|
|
$(BNTEST).o $(ECTEST).o \
|
|
$(ECDSATEST).o $(ECDHTEST).o $(GMDIFFTEST).o $(PBELUTEST).o $(IDEATEST).o \
|
|
$(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \
|
|
$(HMACTEST).o $(WPTEST).o \
|
|
$(RC2TEST).o $(RC4TEST).o $(RC5TEST).o \
|
|
$(DESTEST).o $(SHA1TEST).o $(SHA256TEST).o $(SHA512TEST).o \
|
|
$(MDC2TEST).o $(RMDTEST).o $(DANETEST).o \
|
|
$(RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \
|
|
$(BFTEST).o $(SSLTEST).o $(DSATEST).o $(EXPTEST).o $(RSATEST).o \
|
|
$(EVPTEST).o $(EVPEXTRATEST).o $(IGETEST).o $(JPAKETEST).o $(V3NAMETEST).o \
|
|
$(HEARTBEATTEST).o $(P5_CRPT2_TEST).o \
|
|
$(CONSTTIMETEST).o $(VERIFYEXTRATEST).o $(CLIENTHELLOTEST).o \
|
|
$(PACKETTEST).o $(ASYNCTEST).o testutil.o
|
|
|
|
SRC= $(NPTEST).c $(MEMLEAKTEST).c \
|
|
$(BNTEST).c $(ECTEST).c \
|
|
$(ECDSATEST).c $(ECDHTEST).c $(GMDIFFTEST).c $(PBELUTEST).c $(IDEATEST).c \
|
|
$(MD2TEST).c $(MD4TEST).c $(MD5TEST).c \
|
|
$(HMACTEST).c $(WPTEST).c \
|
|
$(RC2TEST).c $(RC4TEST).c $(RC5TEST).c $(DANETEST).c \
|
|
$(DESTEST).c $(SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
|
|
$(RANDTEST).c $(DHTEST).c $(ENGINETEST).c $(CASTTEST).c \
|
|
$(BFTEST).c $(SSLTEST).c $(DSATEST).c $(EXPTEST).c $(RSATEST).c \
|
|
$(EVPTEST).c $(EVPEXTRATEST).c $(IGETEST).c $(JPAKETEST).c $(V3NAMETEST).c \
|
|
$(HEARTBEATTEST).c $(P5_CRPT2_TEST).c \
|
|
$(CONSTTIMETEST).c $(VERIFYEXTRATEST).c $(CLIENTHELLOTEST).c \
|
|
$(PACKETTEST).c $(ASYNCTEST).c testutil.c
|
|
|
|
HEADER= testutil.h
|
|
|
|
ALL= $(GENERAL) $(SRC) $(HEADER)
|
|
|
|
top:
|
|
(cd ..; $(MAKE) DIRS=$(DIR) TESTS=$(TESTS) all)
|
|
|
|
all: exe
|
|
|
|
exe: $(EXE) dummytest$(EXE_EXT)
|
|
|
|
files:
|
|
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
|
|
|
generate: $(SRC)
|
|
$(SRC):
|
|
@sh $(TOP)/util/point.sh dummytest.c $@
|
|
|
|
tests: exe apps
|
|
TOP=$(TOP) PERL=$(PERL) $(PERL) run_tests.pl $(TESTS)
|
|
|
|
errors:
|
|
|
|
list-tests:
|
|
@TOP=$(TOP) PERL=$(PERL) $(PERL) run_tests.pl list
|
|
|
|
apps:
|
|
@(cd ..; $(MAKE) DIRS=apps all)
|
|
|
|
depend:
|
|
@[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC)
|
|
|
|
clean:
|
|
rm -f .rnd tmp.bntest tmp.bctest *.o *.obj *.dll lib tags core .pure .nfs* *.old *.bak fluff $(EXE) *.ss *.srl log *.log dummytest
|
|
|
|
$(DLIBSSL):
|
|
(cd ..; $(MAKE) build_libssl)
|
|
|
|
$(DLIBCRYPTO):
|
|
(cd ..; $(MAKE) build_libcrypto)
|
|
|
|
BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
|
|
shlib_target="$(SHLIB_TARGET)"; \
|
|
fi; \
|
|
LIBRARIES="$(LIBSSL) $(LIBCRYPTO)"; \
|
|
$(MAKE) -f $(TOP)/Makefile.shared -e \
|
|
APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o $$testutil" \
|
|
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
|
|
link_app.$${shlib_target}
|
|
|
|
BUILD_CMD_STATIC=shlib_target=; \
|
|
LIBRARIES="$(DLIBSSL) $(DLIBCRYPTO)"; \
|
|
$(MAKE) -f $(TOP)/Makefile.shared -e \
|
|
APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o $$testutil" \
|
|
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
|
|
link_app.$${shlib_target}
|
|
|
|
$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
|
|
@target=$(RSATEST); $(BUILD_CMD)
|
|
|
|
$(NPTEST)$(EXE_EXT): $(NPTEST).o $(DLIBCRYPTO)
|
|
@target=$(NPTEST); $(BUILD_CMD)
|
|
|
|
$(MEMLEAKTEST)$(EXE_EXT): $(MEMLEAKTEST).o $(DLIBCRYPTO)
|
|
@target=$(MEMLEAKTEST); $(BUILD_CMD)
|
|
|
|
$(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
|
|
@target=$(BNTEST); $(BUILD_CMD)
|
|
|
|
$(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
|
|
@target=$(ECTEST); $(BUILD_CMD)
|
|
|
|
$(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
|
|
@target=$(EXPTEST); $(BUILD_CMD)
|
|
|
|
$(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
|
|
@target=$(IDEATEST); $(BUILD_CMD)
|
|
|
|
$(GMDIFFTEST)$(EXE_EXT): $(GMDIFFTEST).o $(DLIBCRYPTO)
|
|
@target=$(GMDIFFTEST); $(BUILD_CMD)
|
|
|
|
$(PBELUTEST)$(EXE_EXT): $(PBELUTEST).o $(DLIBCRYPTO)
|
|
@target=$(PBELUTEST); $(BUILD_CMD)
|
|
|
|
$(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
|
|
@target=$(MD2TEST); $(BUILD_CMD)
|
|
|
|
$(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
|
|
@target=$(SHA1TEST); $(BUILD_CMD)
|
|
|
|
$(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
|
|
@target=$(SHA256TEST); $(BUILD_CMD)
|
|
|
|
$(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
|
|
@target=$(SHA512TEST); $(BUILD_CMD)
|
|
|
|
FIPS_BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
|
|
shlib_target="$(SHLIB_TARGET)"; \
|
|
fi; \
|
|
if [ "$(FIPSCANLIB)" = "libfips" ]; then \
|
|
LIBRARIES="-L$(TOP) -lfips"; \
|
|
elif [ -n "$(FIPSCANLIB)" ]; then \
|
|
FIPSLD_CC="$(CC)"; CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \
|
|
LIBRARIES="$${FIPSLIBDIR:-$(TOP)/fips/}fipscanister.o"; \
|
|
else \
|
|
LIBRARIES="$(LIBCRYPTO)"; \
|
|
fi; \
|
|
$(MAKE) -f $(TOP)/Makefile.shared -e \
|
|
CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \
|
|
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
|
|
link_app.$${shlib_target}
|
|
|
|
FIPS_CRYPTO_BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
|
|
shlib_target="$(SHLIB_TARGET)"; \
|
|
fi; \
|
|
LIBRARIES="$(LIBSSL) $(LIBCRYPTO)"; \
|
|
if [ -z "$(SHARED_LIBS)" -a -n "$(FIPSCANLIB)" ] ; then \
|
|
FIPSLD_CC="$(CC)"; CC=$(TOP)/fips/fipsld; export CC FIPSLD_CC; \
|
|
fi; \
|
|
[ "$(FIPSCANLIB)" = "libfips" ] && LIBRARIES="$$LIBRARIES -lfips"; \
|
|
$(MAKE) -f $(TOP)/Makefile.shared -e \
|
|
CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \
|
|
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
|
|
link_app.$${shlib_target}
|
|
|
|
$(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
|
|
@target=$(RMDTEST); $(BUILD_CMD)
|
|
|
|
$(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
|
|
@target=$(MDC2TEST); $(BUILD_CMD)
|
|
|
|
$(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
|
|
@target=$(MD4TEST); $(BUILD_CMD)
|
|
|
|
$(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
|
|
@target=$(MD5TEST); $(BUILD_CMD)
|
|
|
|
$(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
|
|
@target=$(HMACTEST); $(BUILD_CMD)
|
|
|
|
$(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO)
|
|
@target=$(WPTEST); $(BUILD_CMD)
|
|
|
|
$(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
|
|
@target=$(RC2TEST); $(BUILD_CMD)
|
|
|
|
$(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
|
|
@target=$(BFTEST); $(BUILD_CMD)
|
|
|
|
$(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
|
|
@target=$(CASTTEST); $(BUILD_CMD)
|
|
|
|
$(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
|
|
@target=$(RC4TEST); $(BUILD_CMD)
|
|
|
|
$(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
|
|
@target=$(RC5TEST); $(BUILD_CMD)
|
|
|
|
$(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
|
|
@target=$(DESTEST); $(BUILD_CMD)
|
|
|
|
$(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
|
|
@target=$(RANDTEST); $(BUILD_CMD)
|
|
|
|
$(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
|
|
@target=$(DHTEST); $(BUILD_CMD)
|
|
|
|
$(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
|
|
@target=$(DSATEST); $(BUILD_CMD)
|
|
|
|
$(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
|
|
@target=$(METHTEST); $(BUILD_CMD)
|
|
|
|
$(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
|
|
@target=$(SSLTEST); $(BUILD_CMD)
|
|
|
|
$(DANETEST)$(EXE_EXT): $(DANETEST).o $(DLIBSSL) $(DLIBCRYPTO)
|
|
@target=$(DANETEST); $(BUILD_CMD)
|
|
|
|
$(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
|
|
@target=$(ENGINETEST); $(BUILD_CMD)
|
|
|
|
$(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
|
|
@target=$(EVPTEST); $(BUILD_CMD)
|
|
|
|
$(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO)
|
|
@target=$(EVPEXTRATEST); $(BUILD_CMD)
|
|
|
|
$(P5_CRPT2_TEST)$(EXE_EXT): $(P5_CRPT2_TEST).o $(DLIBCRYPTO)
|
|
@target=$(P5_CRPT2_TEST); $(BUILD_CMD)
|
|
|
|
$(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
|
|
@target=$(ECDSATEST); $(BUILD_CMD)
|
|
|
|
$(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
|
|
@target=$(ECDHTEST); $(BUILD_CMD)
|
|
|
|
$(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO)
|
|
@target=$(IGETEST); $(BUILD_CMD)
|
|
|
|
$(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO)
|
|
@target=$(JPAKETEST); $(BUILD_CMD)
|
|
|
|
$(SECMEMTEST)$(EXE_EXT): $(SECMEMTEST).o $(DLIBCRYPTO)
|
|
@target=$(SECMEMTEST); $(BUILD_CMD)
|
|
|
|
$(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO)
|
|
@target=$(SRPTEST); $(BUILD_CMD)
|
|
|
|
$(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO)
|
|
@target=$(V3NAMETEST); $(BUILD_CMD)
|
|
|
|
$(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) testutil.o
|
|
@target=$(HEARTBEATTEST) testutil=testutil.o; $(BUILD_CMD_STATIC)
|
|
|
|
$(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o
|
|
@target=$(CONSTTIMETEST) $(BUILD_CMD)
|
|
|
|
$(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o
|
|
@target=$(VERIFYEXTRATEST) $(BUILD_CMD)
|
|
|
|
$(CLIENTHELLOTEST)$(EXE_EXT): $(CLIENTHELLOTEST).o
|
|
@target=$(CLIENTHELLOTEST) $(BUILD_CMD)
|
|
|
|
$(PACKETTEST)$(EXE_EXT): $(PACKETTEST).o
|
|
@target=$(PACKETTEST) $(BUILD_CMD)
|
|
|
|
$(ASYNCTEST)$(EXE_EXT): $(ASYNCTEST).o
|
|
@target=$(ASYNCTEST) $(BUILD_CMD)
|
|
|
|
#$(AESTEST).o: $(AESTEST).c
|
|
# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
|
|
|
|
#$(AESTEST)$(EXE_EXT): $(AESTEST).o $(DLIBCRYPTO)
|
|
# if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
|
# $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
|
# else \
|
|
# $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
|
# fi
|
|
|
|
dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
|
|
@target=dummytest; $(BUILD_CMD)
|
|
|
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|