mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 03:22:48 -05:00
Add a mechanism for using autoconf to detect the quirks of Unix systems
rather than relying on the user to edit the Makefile. Makefile.gtk still works as well as it ever did, but now we get a Makefile.in alongside it. mkunxarc.sh now relies on autoconf and friends to build the configure script for the Unix source distribution. [originally from svn r5673]
This commit is contained in:
60
mkfiles.pl
60
mkfiles.pl
@ -212,7 +212,7 @@ sub mfval($) {
|
||||
# Returns true if the argument is a known makefile type. Otherwise,
|
||||
# prints a warning and returns false;
|
||||
if (grep { $type eq $_ }
|
||||
("vc","vcproj","cygwin","borland","lcc","gtk","mpw","osx")) {
|
||||
("vc","vcproj","cygwin","borland","lcc","gtk","ac","mpw","osx")) {
|
||||
return 1;
|
||||
}
|
||||
warn "$.:unknown makefile type '$type'\n";
|
||||
@ -945,6 +945,64 @@ if (defined $makefiles{'gtk'}) {
|
||||
select STDOUT; close OUT;
|
||||
}
|
||||
|
||||
if (defined $makefiles{'ac'}) {
|
||||
$dirpfx = &dirpfx($makefiles{'ac'}, "/");
|
||||
|
||||
##-- Unix/autoconf makefile
|
||||
open OUT, ">$makefiles{'ac'}"; select OUT;
|
||||
print
|
||||
"# Makefile.in for $project_name under Unix with Autoconf.\n".
|
||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\n".
|
||||
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||
# gcc command line option is -D not /D
|
||||
($_ = $help) =~ s/=\/D/=-D/gs;
|
||||
print $_;
|
||||
print
|
||||
"\n".
|
||||
"CC = \@CC\@\n".
|
||||
"\n".
|
||||
&splitline("CFLAGS = \@CFLAGS\@ \@CPPFLAGS\@ \@DEFS\@ \@GTK_CFLAGS\@ " .
|
||||
(join " ", map {"-I$dirpfx$_"} @srcdirs))."\n".
|
||||
"XLDFLAGS = \@LDFLAGS\@ \@LIBS\@ \@GTK_LIBS\@\n".
|
||||
"ULDFLAGS = \@LDFLAGS\@ \@LIBS\@\n".
|
||||
"INSTALL=\@INSTALL\@\n",
|
||||
"INSTALL_PROGRAM=\$(INSTALL)\n",
|
||||
"INSTALL_DATA=\$(INSTALL)\n",
|
||||
"prefix=\@prefix\@\n",
|
||||
"exec_prefix=\@exec_prefix\@\n",
|
||||
"bindir=\@bindir\@\n",
|
||||
"mandir=\@mandir\@\n",
|
||||
"man1dir=\$(mandir)/man1\n",
|
||||
"\n".
|
||||
$makefile_extra{'gtk'}->{'vars'} .
|
||||
"\n".
|
||||
".SUFFIXES:\n".
|
||||
"\n".
|
||||
"\n".
|
||||
"all: \@all_targets\@\n".
|
||||
&splitline("all-cli:" . join "", map { " $_" } &progrealnames("U"))."\n".
|
||||
&splitline("all-gtk:" . join "", map { " $_" } &progrealnames("X"))."\n";
|
||||
print "\n";
|
||||
foreach $p (&prognames("X:U")) {
|
||||
($prog, $type) = split ",", $p;
|
||||
$objstr = &objects($p, "X.o", undef, undef);
|
||||
print &splitline($prog . ": " . $objstr), "\n";
|
||||
$libstr = &objects($p, undef, undef, "-lX");
|
||||
print &splitline("\t\$(CC)" . $mw . " \$(${type}LDFLAGS) -o \$@ " .
|
||||
$objstr . " $libstr", 69), "\n\n";
|
||||
}
|
||||
foreach $d (&deps("X.o", undef, $dirpfx, "/", "gtk")) {
|
||||
print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})),
|
||||
"\n";
|
||||
print &splitline("\t\$(CC) \$(COMPAT) \$(XFLAGS) \$(CFLAGS) -c $d->{deps}->[0]\n");
|
||||
}
|
||||
print "\n";
|
||||
print $makefile_extra{'gtk'}->{'end'};
|
||||
print "\nclean:\n".
|
||||
"\trm -f *.o". (join "", map { " $_" } &progrealnames("X:U")) . "\n";
|
||||
select STDOUT; close OUT;
|
||||
}
|
||||
|
||||
if (defined $makefiles{'mpw'}) {
|
||||
##-- MPW Makefile
|
||||
open OUT, ">$makefiles{'mpw'}"; select OUT;
|
||||
|
Reference in New Issue
Block a user