File: Makefile

package info (click to toggle)
dbishell 0.8.9-7
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 828 kB
  • ctags: 1,423
  • sloc: perl: 13,353; makefile: 138; sh: 15
file content (89 lines) | stat: -rw-r--r-- 3,511 bytes parent folder | download | duplicates (3)
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)"