-{- use File::Spec::Functions qw/catdir rel2abs/; -}
-PROGRAMS=openssl
-SOURCE[openssl]=\
+SUBDIRS=lib
+
+# Program init source, that don't have direct linkage with the rest of the
+# source, and can therefore not be part of a library.
+IF[{- !$disabled{uplink} -}]
+ $INITSRC=../ms/applink.c
+ENDIF
+IF[{- $config{target} =~ /^vms-/ -}]
+ $INITSRC=vms_decc_init.c
+ENDIF
+
+# Source for the 'openssl' program
+$OPENSSLSRC=\
openssl.c \
- asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c dhparam.c \
- dsa.c dsaparam.c ec.c ecparam.c enc.c engine.c errstr.c gendsa.c \
- genpkey.c genrsa.c nseq.c ocsp.c passwd.c pkcs12.c pkcs7.c pkcs8.c \
- pkey.c pkeyparam.c pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c \
- s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c \
- srp.c ts.c verify.c version.c x509.c rehash.c \
- apps.c opt.c s_cb.c s_socket.c \
- app_rand.c
-INCLUDE[openssl]={- rel2abs(catdir($builddir,"../include")) -} .. ../include
-DEPEND[openssl]=../libssl
+ asn1parse.c ca.c ciphers.c crl.c crl2pkcs7.c dgst.c \
+ enc.c errstr.c \
+ genpkey.c kdf.c mac.c nseq.c passwd.c pkcs7.c \
+ pkcs8.c pkey.c pkeyparam.c pkeyutl.c prime.c rand.c req.c \
+ s_client.c s_server.c s_time.c sess_id.c smime.c speed.c \
+ spkac.c verify.c version.c x509.c rehash.c storeutl.c \
+ list.c info.c fipsinstall.c pkcs12.c
+IF[{- !$disabled{'ec'} -}]
+ $OPENSSLSRC=$OPENSSLSRC ec.c ecparam.c
+ENDIF
+IF[{- !$disabled{'ocsp'} -}]
+ $OPENSSLSRC=$OPENSSLSRC ocsp.c
+ENDIF
+IF[{- !$disabled{'srp'} -}]
+ $OPENSSLSRC=$OPENSSLSRC srp.c
+ENDIF
+IF[{- !$disabled{'ts'} -}]
+ $OPENSSLSRC=$OPENSSLSRC ts.c
+ENDIF
+IF[{- !$disabled{'dh'} -}]
+$OPENSSLSRC=$OPENSSLSRC dhparam.c
+ENDIF
+IF[{- !$disabled{'dsa'} -}]
+$OPENSSLSRC=$OPENSSLSRC dsa.c dsaparam.c gendsa.c
+ENDIF
+IF[{- !$disabled{'engine'} -}]
+$OPENSSLSRC=$OPENSSLSRC engine.c
+ENDIF
+IF[{- !$disabled{'rsa'} -}]
+$OPENSSLSRC=$OPENSSLSRC rsa.c genrsa.c
+ENDIF
+IF[{- !$disabled{'deprecated-3.0'} -}]
+ IF[{- !$disabled{'rsa'} -}]
+ $OPENSSLSRC=$OPENSSLSRC rsautl.c
+ ENDIF
+ENDIF
+IF[{- !$disabled{'cms'} -}]
+ $OPENSSLSRC=$OPENSSLSRC cms.c
+ENDIF
+IF[{- !$disabled{'cmp'} -}]
+ $OPENSSLSRC=$OPENSSLSRC cmp.c lib/cmp_mock_srv.c
+ENDIF
+
+IF[{- !$disabled{apps} -}]
+ PROGRAMS=openssl
+ SOURCE[openssl]=$INITSRC $OPENSSLSRC
+ INCLUDE[openssl]=.. ../include include
+ DEPEND[openssl]=libapps.a ../libssl
+
+ # The nocheck attribute is picked up by progs.pl as a signal not to look
+ # at that file; some systems may have locked it as the output file, and
+ # therefore don't allow it to be read at the same time, making progs.pl
+ # fail.
+ SOURCE[openssl]{nocheck}=progs.c
+ DEPEND[${OPENSSLSRC/.c/.o} progs.o]=progs.h
+ GENERATE[progs.c]=progs.pl "-C" $(APPS_OPENSSL)
+ GENERATE[progs.h]=progs.pl "-H" $(APPS_OPENSSL)
+ # progs.pl tries to read all 'openssl' sources, including progs.c, so we make
+ # sure things are generated in the correct order.
+ DEPEND[progs.h]=progs.c
+ # Because the files to look through may change (depends on $OPENSSLSRC),
+ # always depend on a changed configuration.
+ DEPEND[progs.c]=../configdata.pm
+
+ IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-|BC-)/ -}]
+ GENERATE[openssl.rc]=../util/mkrc.pl openssl
+ SOURCE[openssl]=openssl.rc
+ ENDIF
-SCRIPTS=CA.pl
-SOURCE[CA.pl]=CA.pl.in
+ SCRIPTS{misc}=CA.pl
+ SOURCE[CA.pl]=CA.pl.in
+ # linkname tells build files that a symbolic link or copy of this script
+ # without extension must be installed as well. Unix or Unix lookalike only.
+ SCRIPTS{misc,linkname=tsget}=tsget.pl
+ SOURCE[tsget.pl]=tsget.in
+ENDIF