mkdir -p is not fully portable (according to Marc Crispin,

NeXTstep creates a directory called -p); now mkdir-p.pl does its job.
This commit is contained in:
Bodo Möller 1999-06-07 13:33:50 +00:00
parent 861b0ddd27
commit 6576774b51
2 changed files with 41 additions and 8 deletions

View File

@ -243,7 +243,7 @@ files:
links:
@$(TOP)/util/point.sh Makefile.ssl Makefile
@-mkdir -p include/openssl 2>/dev/null
@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
@for i in $(DIRS); do \
(cd $$i && echo "making links in $$i..." && \
@ -311,13 +311,13 @@ dist_pem_h:
(cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
install: all
@-mkdir -p $(INSTALL_PREFIX)$(INSTALLTOP)/bin 2>/dev/null
@-mkdir -p $(INSTALL_PREFIX)$(INSTALLTOP)/lib 2>/dev/null
@-mkdir -p $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl 2>/dev/null
@-mkdir -p $(INSTALL_PREFIX)$(OPENSSLDIR)/misc 2>/dev/null
@-mkdir -p $(INSTALL_PREFIX)$(OPENSSLDIR)/certs 2>/dev/null
@-mkdir -p $(INSTALL_PREFIX)$(OPENSSLDIR)/private 2>/dev/null
@-mkdir -p $(INSTALL_PREFIX)$(OPENSSLDIR)/lib 2>/dev/null
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/lib
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(OPENSSLDIR)/misc
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(OPENSSLDIR)/certs
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(OPENSSLDIR)/private
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(OPENSSLDIR)/lib
@for i in $(EXHEADER) ;\
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \

33
util/mkdir-p.pl Executable file
View File

@ -0,0 +1,33 @@
#!/usr/local/bin/perl
# mkdir-p.pl
# On some systems, the -p option to mkdir (= also create any missing parent
# directories) is not available.
my $arg;
foreach $arg (@ARGV) {
&do_mkdir_p($arg);
}
sub do_mkdir_p {
local($dir) = @_;
$dir =~ s|/*$||;
if (-d $dir) {
return;
}
if ($dir =~ /\//) {
local($parent) = $dir;
$parent =~ s|[^/]*$||;
do_mkdir_p($parent);
}
mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n";
print "created directory $dir\n";
}