ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/Makefile.PL
Revision: 1.62
Committed: Tue Sep 16 06:19:11 2025 UTC (11 months, 4 weeks ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.61: +7 -2 lines
Log Message:
*** empty log message ***

File Contents

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