зеркало из https://github.com/github/putty.git
Add a 'unix' Makefile type, for building the non-GUI parts of the
PuTTY suite on non-GTK-enabled build platforms. [originally from svn r8577]
This commit is contained in:
Родитель
4c0b7ba7e4
Коммит
f8a260d59f
1
Recipe
1
Recipe
|
@ -18,6 +18,7 @@
|
|||
!makefile borland windows/Makefile.bor
|
||||
!makefile lcc windows/Makefile.lcc
|
||||
!makefile gtk unix/Makefile.gtk
|
||||
!makefile unix unix/Makefile.ux
|
||||
!makefile ac unix/Makefile.in
|
||||
!makefile mpw mac/Makefile.mpw
|
||||
!makefile osx macosx/Makefile
|
||||
|
|
77
mkfiles.pl
77
mkfiles.pl
|
@ -215,8 +215,8 @@ 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","devcppproj","gtk","ac","mpw",
|
||||
"osx",)) {
|
||||
("vc","vcproj","cygwin","borland","lcc","devcppproj","gtk","unix",
|
||||
"ac","mpw","osx",)) {
|
||||
return 1;
|
||||
}
|
||||
warn "$.:unknown makefile type '$type'\n";
|
||||
|
@ -989,6 +989,79 @@ if (defined $makefiles{'gtk'}) {
|
|||
select STDOUT; close OUT;
|
||||
}
|
||||
|
||||
if (defined $makefiles{'unix'}) {
|
||||
$dirpfx = &dirpfx($makefiles{'unix'}, "/");
|
||||
|
||||
##-- GTK-free pure-Unix makefile for non-GUI apps only
|
||||
open OUT, ">$makefiles{'unix'}"; select OUT;
|
||||
print
|
||||
"# Makefile for $project_name under Unix.\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/\1-D/gs;
|
||||
print $_;
|
||||
print
|
||||
"\n".
|
||||
"# You can define this path to point at your tools if you need to\n".
|
||||
"# TOOLPATH = /opt/gcc/bin\n".
|
||||
"CC = \$(TOOLPATH)cc\n".
|
||||
"# If necessary set the path to krb5-config here\n".
|
||||
"KRB5CONFIG=krb5-config\n".
|
||||
"\n".
|
||||
"-include Makefile.local\n".
|
||||
"\n".
|
||||
"unexport CFLAGS # work around a weird issue with krb5-config\n".
|
||||
"\n".
|
||||
&splitline("CFLAGS = -O2 -Wall -Werror -g " .
|
||||
(join " ", map {"-I$dirpfx$_"} @srcdirs)).
|
||||
" -D _FILE_OFFSET_BITS=64\n".
|
||||
"ULDFLAGS = \$(LDFLAGS)\n".
|
||||
"ifeq (,\$(findstring NO_GSSAPI,\$(COMPAT)))\n".
|
||||
"CFLAGS+= \$(shell \$(KRB5CONFIG) --cflags gssapi)\n".
|
||||
"ULDFLAGS = \$(shell \$(KRB5CONFIG) --libs gssapi)\n".
|
||||
"endif\n".
|
||||
"INSTALL=install\n".
|
||||
"INSTALL_PROGRAM=\$(INSTALL)\n".
|
||||
"INSTALL_DATA=\$(INSTALL)\n".
|
||||
"prefix=/usr/local\n".
|
||||
"exec_prefix=\$(prefix)\n".
|
||||
"bindir=\$(exec_prefix)/bin\n".
|
||||
"mandir=\$(prefix)/man\n".
|
||||
"man1dir=\$(mandir)/man1\n".
|
||||
"\n".
|
||||
$makefile_extra{'unix'}->{'vars'} .
|
||||
"\n".
|
||||
".SUFFIXES:\n".
|
||||
"\n".
|
||||
"\n";
|
||||
print &splitline("all:" . join "", map { " $_" } &progrealnames("U"));
|
||||
print "\n\n";
|
||||
foreach $p (&prognames("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 . " -o \$@ " .
|
||||
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
||||
}
|
||||
foreach $d (&deps("X.o", undef, $dirpfx, "/", "unix")) {
|
||||
if ($forceobj{$d->{obj_orig}}) {
|
||||
printf("%s: FORCE\n", $d->{obj});
|
||||
} else {
|
||||
print &splitline(sprintf("%s: %s", $d->{obj},
|
||||
join " ", @{$d->{deps}})), "\n";
|
||||
}
|
||||
print &splitline("\t\$(CC) \$(COMPAT) \$(CFLAGS) \$(XFLAGS) -c $d->{deps}->[0]\n");
|
||||
}
|
||||
print "\n";
|
||||
print $makefile_extra{'unix'}->{'end'};
|
||||
print "\nclean:\n".
|
||||
"\trm -f *.o". (join "", map { " $_" } &progrealnames("U")) . "\n";
|
||||
print "\nFORCE:\n";
|
||||
select STDOUT; close OUT;
|
||||
}
|
||||
|
||||
if (defined $makefiles{'ac'}) {
|
||||
$dirpfx = &dirpfx($makefiles{'ac'}, "/");
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче