1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
PERL=/usr/bin/perl
INSTDIR=/usr/local/dbishell
INSTLIBDIR=
DEPEND_MODULES=DBI Term::ReadKey Term::ReadLine Getopt::Long
BUNDLED_MODULES=DBIShell::Term_CTL \
DBIShell::UTIL \
DBIShell::Help \
DBIShell::Fixup \
DBIShell::Readline \
DBIShell
all: test
clean:
rm -f ./.cf.cache
test: dependencies drivers helpers
@echo
@$(PERL) -Mlib=. -cw ./dbishell
dependencies: bundled-modules
@echo
@echo "Checking basic Perl module dependencies"
@for M in $(DEPEND_MODULES); do $(PERL) \
-e "use $$M;" \
-e "printf(STDOUT qq[%-20.20s\tOk\\n], '$$M')"; \
done
bundled-modules: perl-readline
@echo
@echo "Checking bundled DBIShell modules"
@for M in $(BUNDLED_MODULES); do $(PERL) -I. \
-e "(\$$m = $$M) =~ s(::)(/)g;" \
-e '$$m = join(".",$$m,"pm");' \
-e 'require $$m;' \
-e "printf(STDOUT qq[%-20.20s\tOk\\n], '$$M')"; \
done
perl-readline:
@echo
@echo "Looking for supported readline implementation"
@$(PERL) -MTerm::ReadLine \
-MFcntl \
-e 'if ( !-t(STDOUT) && -c("/dev/ptmx") )' \
-e '{' \
-e ' require "sys/ioctl.ph";' \
-e ' my $$ptn = 0;' \
-e ' my $$unl = 0;' \
-e ' sysopen(PTMX, "/dev/ptmx", O_RDWR|O_NDELAY);' \
-e ' ioctl(PTMX, TIOCSPTLCK, $$unl);' \
-e ' ioctl(PTMX, TIOCGPTN, $$ptn);' \
-e ' sysopen(TTY, "/dev/pts/".$$ptn, O_RDWR)' \
-e ' ||die("i", $$!, "\n");' \
-e '}' \
-e 'else { *TTY = *STDIN }' \
-e '$$x = Term::ReadLine->new("X", *TTY, *TTY)->ReadLine();' \
-e 'print(STDOUT "readline == $$x\n");' \
-e '$$x =~ /^Term::ReadLine::(?:Gnu|Perl)$$/' \
-e ' || die("Must have Term::ReadLine::(Gnu|Perl)\n");'
drivers:
@echo
@echo "Checking included DB drivers"
@for dr in DBIShell/dr/*.pm; \
do $(PERL) -I. \
-e '$$DR = shift;' \
-e '$$DR =~ m</([^/]+).pm$$>;' \
-e '$$MN = $$1;' \
-e 'require $$DR;' \
-e 'printf(STDOUT qq[DBIShell::dr::%-5s\tOk\n], $$MN)' \
$$dr; \
done
helpers:
@echo
@echo "Checking included help modules"
@for help in DBIShell/help/*.pm; \
do $(PERL) -I. \
-e '$$DR = shift;' \
-e '$$DR =~ m</([^/]+).pm$$>;' \
-e '$$MN = $$1;' \
-e 'require $$DR;' \
-e 'printf(STDOUT qq[DBIShell::help::%5s\tOk\n], $$MN)' \
$$help; \
done
install: test
@$(PERL) ./installer.pl $(PERL) $(INSTDIR) $(INSTLIBDIR)
# @echo "./installer.pl $(PERL) $(INSTDIR) $(INSTLIBDIR)"
|