summaryrefslogtreecommitdiffstats
path: root/PerlQt/Makefile.PL.in
diff options
context:
space:
mode:
Diffstat (limited to 'PerlQt/Makefile.PL.in')
-rw-r--r--PerlQt/Makefile.PL.in223
1 files changed, 223 insertions, 0 deletions
diff --git a/PerlQt/Makefile.PL.in b/PerlQt/Makefile.PL.in
new file mode 100644
index 0000000..e848160
--- /dev/null
+++ b/PerlQt/Makefile.PL.in
@@ -0,0 +1,223 @@
+
+### do not edit Makefile.PL, edit Makefile.PL.in
+
+use Config;
+use File::Spec;
+use strict;
+
+my %x;
+$x{'prefix'} = '@prefix@';
+$x{'exec_prefix'}='@exec_prefix@';
+$x{'libdir'} = '@libdir@';
+$x{'datadir'} = '@datadir@';
+$x{'qt_libraries'} = '@qt_libraries@';
+$x{'LIBPNG'} = '@LIBPNG@';
+$x{'LIBJPEG'} = '@LIBJPEG@';
+$x{'LIBSM'} = '@LIBSM@';
+$x{'LIBSOCKET'} = '@LIBSOCKET@';
+$x{'LIBRESOLV'} = '@LIBRESOLV@';
+$x{'LIB_X11'} = '@LIB_X11@';
+$x{'X_PRE_LIBS'} = '@X_PRE_LIBS@';
+
+interpolate('LIB_X11', 'exec_prefix', 'libdir', 'datadir');
+
+my $objects='Qt$(OBJ_EXT) handlers$(OBJ_EXT)';
+my $qtlib ='@LIB_QT@';
+
+interpolate(\$qtlib);
+
+my $rpath='@USE_RPATH@';
+
+my $cxx = '@CXX@';
+my $sh= '@SHELL@';
+my $topdir= '@top_builddir@';
+if($^O =~ /solaris/i && $cxx eq 'CC') {
+ # we have Forte/Sunworkshop on Solaris
+ # do we build only static libs?
+ my $only_static = 0;
+ foreach(`$topdir/libtool --config 2>&1`) {
+ /^build_libtool_libs=no/ && $only_static++;
+ /^build_old_libs=yes/ && $only_static++;
+ }
+ # ...then add the C++ runtime lib
+ $qtlib .= ' -lCrun' if($only_static == 2);
+}
+
+my $libtool = File::Spec->catfile( $topdir, "libtool" );
+my $devnull = File::Spec->devnull();
+my $libtool_rpath = `$libtool --mode=link $cxx -o foo.so foo.o -R $x{'libdir'} -R $x{'qt_libraries'} 2>${devnull}`;
+$libtool_rpath = "" unless $libtool_rpath =~ s/.*foo.so foo.o//s;
+chomp $libtool_rpath;
+$rpath = $rpath eq "yes" ?
+ ($libtool_rpath ?
+ $libtool_rpath :
+ ('@CXX@' eq 'g++' ?
+ "-Wl,--rpath -Wl,$x{'libdir'} -Wl,--rpath -Wl,$x{'qt_libraries'}" : ""
+ )
+ ) : "";
+
+my @scripts = ("bin/pqtsh", "bin/pqtapi");
+
+my $cxxflags = '@CXXFLAGS@';
+ $cxxflags =~ s/ -pedantic / /g;
+ $cxxflags =~ s/ -Wwrite-strings / /g;
+ $cxxflags =~ s/ -Wall / /g;
+
+my $doc_dir_glob;
+
+###
+
+use ExtUtils::MakeMaker;
+use Cwd;
+
+my $pwd = getcwd;
+my @pwd = File::Spec->splitdir( $pwd );
+pop @pwd;
+my $abs_topdir = File::Spec->catdir(@pwd);
+my $localsmoke = File::Spec->catdir($abs_topdir,"smoke","qt",".libs");
+
+
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+
+WriteMakefile(
+ 'NAME' => 'Qt',
+ 'VERSION_FROM' => 'Qt.pm', # finds $VERSION
+ 'PREREQ_PM' => {}, # e.g., Module::Name => 1.1,
+ 'INC' => '@all_includes@ -I. -I../smoke',
+ 'LIBS' => ['@all_libraries@'." -L$localsmoke -lsmokeqt ".'@LIBCRYPT@'." $qtlib"],
+# 'XS' => {'Qt.xs' => 'Qt.cpp'}, # does not work ... still expects Qt.c
+ 'XSOPT' => "-C++",
+ 'OBJECT' => "$objects", # Object files
+ 'CC' => '@CXX@',
+ # use the CC/g++ utility to link if linking is done with cc/gcc
+ ($Config{ld} =~ /cc/ ? (
+ 'LD' => '@CXX@'
+ ) : ()),
+ 'INST_BIN' => './bin',
+ 'DEFINE' => $cxxflags,
+ 'H' => ["marshall.h", "perlqt.h", "smokeperl.h"],
+ 'ABSTRACT' => "An OO interface to Trolltech's Qt toolkit",
+ 'dynamic_lib' => {'OTHERLDFLAGS' => $rpath},
+ ($] >= 5.005 ? ## Add these new keywords supported since 5.005
+ (
+ AUTHOR => 'Ashley Winters <qaqortog@nwlink.com>') : ()),
+);
+
+sub MY::clean {
+ package MY;
+ my $i = shift->SUPER::clean(@_);
+ my $pl = '$(PERL) Makefile.PL';
+ $i =~ s/\n+$/\n\t$pl$&/s;
+ $i;
+}
+
+sub MY::const_loadlibs {
+ package MY;
+ my $i = shift->SUPER::const_loadlibs(@_);
+ # hacks for linking against a non-yet-installed smoke
+ $i =~ s/((?:EXTRALIBS|LDLOADLIBS).*?)\n/$1 -L$localsmoke -lsmokeqt\n/gs unless $i =~/-lsmokeqt/;
+ $i =~ s#(LD_RUN_PATH.*?)(${localsmoke})?\n#"$1".($2?"":":")."$x{'libdir'}\n"#se;
+ $i;
+}
+
+sub MY::dist {
+ package MY;
+ my $i = shift->SUPER::dist(@_);
+ $i =~ s#(DISTVNAME =).*?\n#$1 \$(distdir)\n#s;
+ $i;
+}
+
+sub MY::install {
+ package MY;
+ my $i = shift->SUPER::install(@_);
+ my $lng = $ENV{LANG};
+ my $doc_dir = "/usr/share/doc/libqt-perl/tutorial";
+ my $src= File::Spec->catdir(File::Spec->updir, "doc");
+ my $found = 0;
+ # for my $l( split(":", $lng) )
+ # {
+ # $l =~ s/^(.*?)_.*$/$1/;
+ # $l = lc($l);
+ # if( $l and -d File::Spec->catdir( $src, $l ) )
+ # {
+ # $src = File::Spec->catdir( $src, $l);
+ # $found++;
+ # last;
+ # }
+ # }
+ $i =~ s/^install\s+::\s+all.*$/$& install_my_perlqt_doc/m;
+ # $src = File::Spec->catdir( $src, "en" ) unless $found;
+ $i .= "\ninstall_my_perlqt_doc:\n".
+ "\t\@echo Installing documentation in ${doc_dir}\n".
+ "\t\@$^X -MExtUtils::Install -MConfig -e \\\n".
+ "\t\t'install({ \"$src\" => \"\$(PREFIX)/share/doc/libqt-perl/tutorial\" },0,0)' \$(DEV_NULL)\n";
+ $doc_dir_glob = $doc_dir;
+ $i;
+}
+
+sub interpolate
+{
+ for( @_ )
+ {
+ my $r = ref( $_ ) ? $_ : \$x{"$_"};
+ $$r =~ s/\$\(\s*(.*?)\s*\)/$x{$1}/g;
+ $$r =~ s/\$\{\s*(.*?)\s*\}/$x{$1}/g;
+ }
+}
+
+#########
+
+for my $s( @scripts )
+{
+ MY->fixin( $s );
+ chmod 0755, $s;
+}
+
+open(IN, ">Qt.pod") or die "couldn't write Qt.pod: $!\n";
+print IN <<STOP;
+
+=head1 NAME
+
+PerlQt - Perl interface to the Qt GUI Widget toolkit
+
+=head1 Qt
+
+Given the huge size of the Qt module
+(more than 400 classes and 13000 methods)
+it doesn't have any formal documentation.
+
+Instead, it provides two introspection tools
+
+=over 4
+
+=item * pqtapi:
+
+a command line PerlQt API introspector
+
+=item * pqtsh:
+
+a graphical PerlQt shell
+
+=back
+
+and a detailed B<tutorial> with comprehensive
+explanations.
+This is where anyone new to PerlQt
+should start.
+
+The tutorial has been originally installed
+on this system in C<$doc_dir_glob>, in both B<POD> and
+B<HTML> format.
+
+For a complete IDE allowing RAD and visual programming,
+check the pqt-designer package.
+
+--- The PerlQt team
+
+http://perlqt.sf.net - PerlQt Project Homepage
+
+=cut
+STOP
+close IN;
+