1
0
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:
Ben Harris
2005-04-25 15:55:06 +00:00
parent 38b266727a
commit 0227bfdbc7
6 changed files with 118 additions and 5 deletions

View File

@ -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;