1 |
require 5.008; |
2 |
|
3 |
print <<EOF; |
4 |
|
5 |
** |
6 |
** If you get any errors, make sure you have libmagic (from "file"), |
7 |
** libjpeg, Gtk2 and Glib. On debian, this should get you there: |
8 |
** |
9 |
** apt-get install libextutils-depends-perl |
10 |
** apt-get install libgtk2-ex-podviewer-perl libgtk2-gladexml-perl |
11 |
** apt-get install libmagic-dev libjpeg62-dev libglib-perl libgtk2-perl |
12 |
** apt-get install libgtk2.0-dev |
13 |
** |
14 |
** Optional dependencies: |
15 |
** apt-get install libwebp-dev |
16 |
** jpeg-xl reference implementation |
17 |
** |
18 |
|
19 |
EOF |
20 |
|
21 |
use ExtUtils::MakeMaker; |
22 |
use ExtUtils::Depends; |
23 |
|
24 |
my $pkg = new ExtUtils::Depends ("Gtk2::CV"); |
25 |
|
26 |
my $lib = "-ljpeg -lmagic"; |
27 |
my $inc = ""; |
28 |
|
29 |
if (!system "pkg-config --exists libwebp libwebpdemux") { |
30 |
$inc .= " -DWEBP=1"; |
31 |
$inc .= " " . qx<pkg-config --cflags libwebp libwebpdemux>; |
32 |
$lib .= " " . qx<pkg-config --libs libwebp libwebpdemux>; |
33 |
} |
34 |
|
35 |
if (!system "pkg-config --exists libjxl libjxl_threads") { |
36 |
$inc .= " -DJXL=1"; |
37 |
$inc .= " " . qx<pkg-config --cflags libjxl libjxl_threads>; |
38 |
$lib .= " " . qx<pkg-config --libs libjxl libjxl_threads>; |
39 |
} |
40 |
|
41 |
s/\n/ /g |
42 |
for $inc, $lib; |
43 |
|
44 |
$pkg->add_deps ("Gtk2", "Glib"); |
45 |
$pkg->set_libs ($lib); |
46 |
$pkg->set_inc ($inc); |
47 |
|
48 |
sub MY::postamble { |
49 |
my $self=shift; |
50 |
<<EOF |
51 |
|
52 |
.PHONY: doc |
53 |
|
54 |
run: all |
55 |
\$(PERL) -Mblib -MCarp=verbose bin/cv |
56 |
|
57 |
EOF |
58 |
} |
59 |
|
60 |
WriteMakefile( |
61 |
dist => { |
62 |
PREOP => 'pod2text bin/cv | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;', |
63 |
COMPRESS => 'gzip -9v', |
64 |
SUFFIX => '.gz', |
65 |
}, |
66 |
PREREQ_PM => { |
67 |
common::sense => 3.6, |
68 |
Guard => 1.02, |
69 |
AnyEvent => 6, |
70 |
AnyEvent::Fork => 0, |
71 |
Glib => 1.08, |
72 |
Gtk2 => 1.246, |
73 |
Gtk2::Ex::PodViewer => 0.17, |
74 |
Gtk2::GladeXML => 0.93, |
75 |
# GStreamer => 0.11, |
76 |
IO::AIO => 4, |
77 |
JSON::XS => 2.2, |
78 |
AnyEvent::MPV => 0.2, |
79 |
Task::Weaken => 0, |
80 |
}, |
81 |
DIR => [], |
82 |
NAME => 'Gtk2::CV', |
83 |
VERSION_FROM => 'lib/Gtk2/CV.pm', |
84 |
EXE_FILES => [qw(bin/cv)], |
85 |
$pkg->get_makefile_vars, |
86 |
PM => { |
87 |
'lib/Gtk2/CV/ImageWindow.pm' => '$(INST_LIB)/Gtk2/CV/ImageWindow.pm', |
88 |
'lib/Gtk2/CV/Schnauzer.pm' => '$(INST_LIB)/Gtk2/CV/Schnauzer.pm', |
89 |
'lib/Gtk2/CV/PostScript.pm' => '$(INST_LIB)/Gtk2/CV/PostScript.pm', |
90 |
'lib/Gtk2/CV/PrintDialog.pm' => '$(INST_LIB)/Gtk2/CV/PrintDialog.pm', |
91 |
'lib/Gtk2/CV/Jobber.pm' => '$(INST_LIB)/Gtk2/CV/Jobber.pm', |
92 |
'lib/Gtk2/CV/Util.pm' => '$(INST_LIB)/Gtk2/CV/Util.pm', |
93 |
'lib/Gtk2/CV/Plugin.pm' => '$(INST_LIB)/Gtk2/CV/Plugin.pm', |
94 |
'lib/Gtk2/CV/Plugin/NameCluster.pm' => '$(INST_LIB)/Gtk2/CV/Plugin/NameCluster.pm', |
95 |
'lib/Gtk2/CV/Plugin/PatRenamer.pm' => '$(INST_LIB)/Gtk2/CV/Plugin/PatRenamer.pm', |
96 |
'lib/Gtk2/CV/Plugin/RCluster.pm' => '$(INST_LIB)/Gtk2/CV/Plugin/RCluster.pm', |
97 |
'lib/Gtk2/CV/Plugin/MetaCluster.pm' => '$(INST_LIB)/Gtk2/CV/Plugin/MetaCluster.pm', |
98 |
'lib/Gtk2/CV/Progress.pm' => '$(INST_LIB)/Gtk2/CV/Progress.pm', |
99 |
'lib/Gtk2/CV.pm' => '$(INST_LIB)/Gtk2/CV.pm', |
100 |
|
101 |
'gtkrc' => '$(INST_LIB)/Gtk2/CV/gtkrc', |
102 |
'cv.glade' => '$(INST_LIB)/Gtk2/CV/cv.glade', |
103 |
|
104 |
'images/cv.png' => '$(INST_LIB)/Gtk2/CV/images/cv.png', |
105 |
'images/error.png' => '$(INST_LIB)/Gtk2/CV/images/error.png', |
106 |
'images/dir-unvisited.png' => '$(INST_LIB)/Gtk2/CV/images/dir-unvisited.png', |
107 |
'images/dir-visited.png' => '$(INST_LIB)/Gtk2/CV/images/dir-visited.png', |
108 |
'images/dir-xvpics.png' => '$(INST_LIB)/Gtk2/CV/images/dir-xvpics.png', |
109 |
'images/dir-empty.png' => '$(INST_LIB)/Gtk2/CV/images/dir-empty.png', |
110 |
'images/dir-symlink.png' => '$(INST_LIB)/Gtk2/CV/images/dir-symlink.png', |
111 |
'images/file.png' => '$(INST_LIB)/Gtk2/CV/images/file.png', |
112 |
'images/file-generic-archive.png' => '$(INST_LIB)/Gtk2/CV/images/file-generic-archive.png', |
113 |
'images/file-generic-cd.png' => '$(INST_LIB)/Gtk2/CV/images/file-generic-cd.png', |
114 |
'images/file-generic-document.png' => '$(INST_LIB)/Gtk2/CV/images/file-generic-document.png', |
115 |
'images/file-generic-movie.png' => '$(INST_LIB)/Gtk2/CV/images/file-generic-movie.png', |
116 |
'images/file-avi.png' => '$(INST_LIB)/Gtk2/CV/images/file-avi.png', |
117 |
'images/file-ogm.png' => '$(INST_LIB)/Gtk2/CV/images/file-ogm.png', |
118 |
'images/file-tif.png' => '$(INST_LIB)/Gtk2/CV/images/file-tif.png', |
119 |
'images/file-gif.png' => '$(INST_LIB)/Gtk2/CV/images/file-gif.png', |
120 |
'images/file-jpeg.png' => '$(INST_LIB)/Gtk2/CV/images/file-jpeg.png', |
121 |
'images/file-mpeg.png' => '$(INST_LIB)/Gtk2/CV/images/file-mpeg.png', |
122 |
'images/file-png.png' => '$(INST_LIB)/Gtk2/CV/images/file-png.png', |
123 |
'images/file-txt.png' => '$(INST_LIB)/Gtk2/CV/images/file-txt.png', |
124 |
'images/file-wmv.png' => '$(INST_LIB)/Gtk2/CV/images/file-wmv.png', |
125 |
'images/file-mov.png' => '$(INST_LIB)/Gtk2/CV/images/file-mov.png', |
126 |
'images/file-asf.png' => '$(INST_LIB)/Gtk2/CV/images/file-asf.png', |
127 |
'images/file-rar.png' => '$(INST_LIB)/Gtk2/CV/images/file-rar.png', |
128 |
'images/file-zip.png' => '$(INST_LIB)/Gtk2/CV/images/file-zip.png', |
129 |
'images/file-ace.png' => '$(INST_LIB)/Gtk2/CV/images/file-ace.png', |
130 |
'images/file-7z.png' => '$(INST_LIB)/Gtk2/CV/images/file-7z.png', |
131 |
'images/file-audio.png' => '$(INST_LIB)/Gtk2/CV/images/file-audio.png', |
132 |
'images/file-mp2.png' => '$(INST_LIB)/Gtk2/CV/images/file-mp2.png', |
133 |
'images/file-mp3.png' => '$(INST_LIB)/Gtk2/CV/images/file-mp3.png', |
134 |
'images/file-midi.png' => '$(INST_LIB)/Gtk2/CV/images/file-midi.png', |
135 |
'images/file-rm.png' => '$(INST_LIB)/Gtk2/CV/images/file-rm.png', |
136 |
'images/file-par.png' => '$(INST_LIB)/Gtk2/CV/images/file-par.png', |
137 |
}, |
138 |
); |
139 |
|
140 |
|
141 |
|