-
Notifications
You must be signed in to change notification settings - Fork 6
/
Makefile
142 lines (125 loc) · 6.28 KB
/
Makefile
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Makefile for MiniDBI
PERL_EXE = perl
PERL6_EXE = perl6
CP = $(PERL_EXE) -MExtUtils::Command -e cp
MKPATH = $(PERL_EXE) -MExtUtils::Command -e mkpath
RM_F = $(PERL_EXE) -MExtUtils::Command -e rm_f
TEST_F = $(PERL_EXE) -MExtUtils::Command -e test_f
# try to make these OS agnostic (ie use the same definition on Unix and Windows)
LIBSYSTEM = $(shell $(PERL6_EXE) -e 'print @*INC[2]')
LIBUSER = $(shell $(PERL6_EXE) -e 'print @*INC[1]')
# first (therefore default) target is MiniDBI.pir
all: lib/MiniDBI.pir
lib/MiniDBD.pir: lib/MiniDBD.pm6
$(PERL6_EXE) --target=pir --output=lib/MiniDBD.pir lib/MiniDBD.pm6
lib/MiniDBD/CSV.pir: lib/MiniDBD/CSV.pm6 lib/MiniDBD.pir
export PERL6LIB=lib; $(PERL6_EXE) --target=pir --output=lib/MiniDBD/CSV.pir lib/MiniDBD/CSV.pm6
lib/MiniDBD/mysql.pir: lib/MiniDBD/mysql.pm6 lib/MiniDBD.pir
export PERL6LIB=lib; $(PERL6_EXE) --target=pir --output=lib/MiniDBD/mysql.pir lib/MiniDBD/mysql.pm6
lib/MiniDBD/Pg.pir: lib/MiniDBD/Pg.pm6 lib/MiniDBD.pir
export PERL6LIB=lib; $(PERL6_EXE) --target=pir --output=lib/MiniDBD/Pg.pir lib/MiniDBD/Pg.pm6
lib/MiniDBD/PgPir.pir: lib/MiniDBD/PgPir.pm6 lib/MiniDBD.pir
export PERL6LIB=lib; $(PERL6_EXE) --target=pir --output=lib/MiniDBD/PgPir.pir lib/MiniDBD/PgPir.pm6
lib/MiniDBD/SQLite.pir: lib/MiniDBD/SQLite.pm6 lib/MiniDBD.pir
export PERL6LIB=lib; $(PERL6_EXE) --target=pir --output=lib/MiniDBD/SQLite.pir lib/MiniDBD/SQLite.pm6
lib/MiniDBI.pir: lib/MiniDBI.pm6 lib/MiniDBD/CSV.pir lib/MiniDBD/mysql.pir lib/MiniDBD/PgPir.pir lib/MiniDBD/Pg.pir lib/MiniDBD/SQLite.pir
export PERL6LIB=lib; $(PERL6_EXE) --target=pir --output=lib/MiniDBI.pir lib/MiniDBI.pm6
test: lib/MiniDBI.pir lib/MiniDBD/CSV.pir lib/MiniDBD/mysql.pir lib/MiniDBD/PgPir.pir lib/MiniDBD/Pg.pir lib/MiniDBD/SQLite.pir
@#export PERL6LIB=lib; prove --exec $(PERL6_EXE) t/10-mysql.t
@#export PERL6LIB=lib; prove --exec $(PERL6_EXE) t/20-CSV-common.t
@#export PERL6LIB=lib; prove --exec $(PERL6_EXE) t/25-mysql-common.t
@#export PERL6LIB=lib; prove --exec $(PERL6_EXE) t/30-pgpir.t
export PERL6LIB=lib; prove --exec $(PERL6_EXE) t/
# standard install is to the shared system wide directory
install: lib/MiniDBI.pir lib/MiniDBD.pir lib/MiniDBD/mysql.pir lib/MiniDBD/PgPir.pir lib/MiniDBD/Pg.pir lib/MiniDBD/SQLite.pir
@echo "--> $(LIBSYSTEM)"
@$(CP) lib/MiniDBI.pm6 lib/MiniDBI.pir $(LIBSYSTEM)
@$(CP) lib/MiniDBD.pm6 lib/MiniDBD.pir $(LIBSYSTEM)
@$(MKPATH) $(LIBSYSTEM)/MiniDBD
@$(CP) lib/MiniDBD/CSV.pm6 lib/MiniDBD/CSV.pir $(LIBSYSTEM)/MiniDBD
@$(CP) lib/MiniDBD/mysql.pm6 lib/MiniDBD/mysql.pir $(LIBSYSTEM)/MiniDBD
@$(CP) lib/MiniDBD/PgPir.pm6 lib/MiniDBD/PgPir.pir $(LIBSYSTEM)/MiniDBD
@$(CP) lib/MiniDBD/Pg.pm6 lib/MiniDBD/Pg.pir $(LIBSYSTEM)/MiniDBD
@$(CP) lib/MiniDBD/SQLite.pm6 lib/MiniDBD/SQLite.pir $(LIBSYSTEM)/MiniDBD
# if user has no permission to install globally, try a personal directory
install-user: lib/MiniDBI.pir lib/MiniDBD.pir lib/MiniDBD/mysql.pir lib/MiniDBD/PgPir.pir lib/MiniDBD/Pg.pir lib/MiniDBD/SQLite.pir
@echo "--> $(LIBUSER)"
@$(CP) lib/MiniDBI.pm6 lib/MiniDBI.pir $(LIBUSER)
@$(CP) lib/MiniDBD.pm6 lib/MiniDBD.pir $(LIBUSER)
@$(MKPATH) $(LIBUSER)/MiniDBD
@$(CP) lib/MiniDBD/CSV.pm6 lib/MiniDBD/CSV.pir $(LIBUSER)/MiniDBD
@$(CP) lib/MiniDBD/mysql.pm6 lib/MiniDBD/mysql.pir $(LIBUSER)/MiniDBD
@$(CP) lib/MiniDBD/PgPir.pm6 lib/MiniDBD/PgPir.pir $(LIBUSER)/MiniDBD
@$(CP) lib/MiniDBD/Pg.pm6 lib/MiniDBD/Pg.pir $(LIBUSER)/MiniDBD
@$(CP) lib/MiniDBD/SQLite.pm6 lib/MiniDBD/SQLite.pir $(LIBUSER)/MiniDBD
# Uninstall from the shared system wide directory.
# This might leave an empty MiniDBD subdirectory behind.
uninstall:
@echo "x-> $(LIBSYSTEM)"
@$(TEST_F) $(LIBSYSTEM)/MiniDBI.pm6
@$(RM_F) $(LIBSYSTEM)/MiniDBD.pm6
@$(TEST_F) $(LIBSYSTEM)/MiniDBI.pir
@$(RM_F) $(LIBSYSTEM)/MiniDBD.pir
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/CSV.pm6
@$(RM_F) $(LIBSYSTEM)/MiniDBD/CSV.pm6
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/CSV.pir
@$(RM_F) $(LIBSYSTEM)/MiniDBD/CSV.pir
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/mysql.pm6
@$(RM_F) $(LIBSYSTEM)/MiniDBD/mysql.pm6
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/mysql.pir
@$(RM_F) $(LIBSYSTEM)/MiniDBD/mysql.pir
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/PgPir.pm6
@$(RM_F) $(LIBSYSTEM)/MiniDBD/PgPir.pm6
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/PgPir.pir
@$(RM_F) $(LIBSYSTEM)/MiniDBD/PgPir.pir
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/Pg.pm6
@$(RM_F) $(LIBSYSTEM)/MiniDBD/Pg.pm6
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/Pg.pir
@$(RM_F) $(LIBSYSTEM)/MiniDBD/Pg.pir
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/SQLite.pm6
@$(RM_F) $(LIBSYSTEM)/MiniDBD/SQLite.pm6
@$(TEST_F) $(LIBSYSTEM)/MiniDBD/SQLite.pir
@$(RM_F) $(LIBSYSTEM)/MiniDBD/SQLite.pir
# Uninstall from the user's own Perl 6 directory.
# This might leave an empty MiniDBD subdirectory behind.
uninstall-user:
@echo "x-> $(LIBUSER)"
@$(TEST_F) $(LIBUSER)/MiniDBI.pm6
@$(RM_F) $(LIBUSER)/MiniDBI.pm6
@$(TEST_F) $(LIBUSER)/MiniDBI.pir
@$(RM_F) $(LIBUSER)/MiniDBI.pir
@$(TEST_F) $(LIBUSER)/MiniDBD/CSV.pm6
@$(RM_F) $(LIBUSER)/MiniDBD/CSV.pm6
@$(TEST_F) $(LIBUSER)/MiniDBD/CSV.pir
@$(RM_F) $(LIBUSER)/MiniDBD/CSV.pir
@$(TEST_F) $(LIBUSER)/MiniDBD/mysql.pm6
@$(RM_F) $(LIBUSER)/MiniDBD/mysql.pm6
@$(TEST_F) $(LIBUSER)/MiniDBD/mysql.pir
@$(RM_F) $(LIBUSER)/MiniDBD/mysql.pir
@$(TEST_F) $(LIBUSER)/MiniDBD/PgPir.pm6
@$(RM_F) $(LIBUSER)/MiniDBD/PgPir.pm6
@$(TEST_F) $(LIBUSER)/MiniDBD/PgPir.pir
@$(RM_F) $(LIBUSER)/MiniDBD/PgPir.pir
@$(TEST_F) $(LIBUSER)/MiniDBD/Pg.pm6
@$(RM_F) $(LIBUSER)/MiniDBD/Pg.pm6
@$(TEST_F) $(LIBUSER)/MiniDBD/Pg.pir
@$(RM_F) $(LIBUSER)/MiniDBD/Pg.pir
@$(TEST_F) $(LIBUSER)/MiniDBD/SQLite.pm6
@$(RM_F) $(LIBUSER)/MiniDBD/SQLite.pm6
@$(TEST_F) $(LIBUSER)/MiniDBD/SQLite.pir
@$(RM_F) $(LIBUSER)/MiniDBD/SQLite.pir
clean:
@# delete compiled files
$(RM_F) lib/*.pir lib/MiniDBD/*.pir
@# delete all editor backup files
$(RM_F) *~ lib/*~ t/*~ lib/MiniDBD/*~
help:
@echo
@echo "You can make the following in 'MiniDBI':"
@echo "clean removes compiled, temporary and backup files"
@echo "test runs a local test suite"
@echo "install copies .pm and .pir files to system perl6 lib/"
@echo " (may require admin or root permission)"
@echo "uninstall removes .pm6 and .pir file(s) from system lib/"
@echo "install-user copies .pm and .pir files to user perl6 lib/"
@echo "uninstall-user removes .pm6 and .pir file(s) from user perl6 lib/"