$self->output("################################################\n");
$self->output("\n");
+ if (!$self->{automatic_deps}) {
+ $self->output("ALL_PREDEP = proto\n");
+ }
+
$self->output("default: all\n\n");
$self->_prepare_path_vars();
prefix = $self->{config}->{prefix}
exec_prefix = $self->{config}->{exec_prefix}
selftest_prefix = $self->{config}->{selftest_prefix}
-VPATH = $self->{config}->{srcdir}
+VPATH = $self->{config}->{srcdir}:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken
srcdir = $self->{config}->{srcdir}
builddir = $self->{config}->{builddir}
$self->output("$ctx->{TYPE}\_$ctx->{NAME}_$var =$tmplist\n");
}
-sub DependencyInfo($$)
-{
- my ($self,$ctx) = @_;
-
- $self->output("bin/deps/$ctx->{TYPE}_$ctx->{NAME}: \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST:.o=.c)");
- $self->output("\n");
- $self->output("\t\@echo \"Generating dependency info for $ctx->{NAME}\"\n");
- $self->output("\t\@./script/cdeps.pl \$^ > \$@\n");
- $self->output("\n");
- $self->output("-include bin/deps/$ctx->{TYPE}_$ctx->{NAME}\n\n");
-}
-
sub SharedLibrary($$)
{
my ($self,$ctx) = @_;
if ($ctx->{TYPE} eq "LIBRARY") {
push (@{$self->{shared_libs}}, "$ctx->{DEBUGDIR}/$ctx->{LIBRARY_REALNAME}");
- push (@{$self->{installable_shared_libs}}, "$installdir/$ctx->{LIBRARY_REALNAME}");
+ push (@{$self->{installable_shared_libs}}, "$installdir/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION}));
} elsif ($ctx->{TYPE} eq "MODULE") {
- push (@{$self->{shared_modules}}, "$ctx->{DEBUGDIR}/$ctx->{LIBRARY_REALNAME}");
+ push (@{$self->{shared_modules}}, "$ctx->{DEBUGDIR}/$ctx->{FIXED_NAME}.\$(SHLIBEXT)");
push (@{$self->{plugins}}, "$installdir/$ctx->{LIBRARY_REALNAME}");
- my $fixedname = $ctx->{NAME};
-
- $fixedname =~ s/^$ctx->{SUBSYSTEM}_//g;
-
- $self->{install_plugins} .= "\t\@echo Installing $installdir/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$fixedname.\$(SHLIBEXT)\n";
+ $self->{install_plugins} .= "\t\@echo Installing $installdir/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{FIXED_NAME}.\$(SHLIBEXT)\n";
$self->{install_plugins} .= "\t\@mkdir -p \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/\n";
- $self->{install_plugins} .= "\t\@cp $installdir/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$fixedname.\$(SHLIBEXT)\n";
- $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$fixedname.\$(SHLIBEXT)\n";
- $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$fixedname.\$(SHLIBEXT)\n";
+ $self->{install_plugins} .= "\t\@cp $installdir/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{FIXED_NAME}.\$(SHLIBEXT)\n";
+ $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{FIXED_NAME}.\$(SHLIBEXT)\n";
+ $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{FIXED_NAME}.\$(SHLIBEXT)\n";
+ if (defined($ctx->{ALIASES})) {
+ foreach (@{$ctx->{ALIASES}}) {
+ $self->{install_plugins} .= "\t\@ln -s $ctx->{FIXED_NAME}.\$(SHLIBEXT) \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$_.\$(SHLIBEXT)\n";
+ $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$_.\$(SHLIBEXT)\n";
+ }
+ }
}
$self->_prepare_list($ctx, "OBJ_LIST");
if ($self->{config}->{SONAMEFLAG} ne "" and
defined($ctx->{LIBRARY_SONAME})) {
$soarg = "$self->{config}->{SONAMEFLAG}$ctx->{LIBRARY_SONAME} ";
- }
-
- if ($self->{config}->{SONAMEFLAG} ne "") {
- $soargdebug = "$self->{config}->{SONAMEFLAG}$ctx->{LIBRARY_REALNAME} ";
+ if ($ctx->{LIBRARY_REALNAME} ne $ctx->{LIBRARY_SONAME}) {
+ $soargdebug = "\n\t\@ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{DEBUGDIR}/$ctx->{LIBRARY_SONAME}";
+ }
}
if ($self->{duplicate_build}) {
\@echo Linking \$\@
\@mkdir -p $ctx->{DEBUGDIR}
\@\$(SHLD) \$(SHLD_FLAGS) -o \$\@ \$(LOCAL_LINK_FLAGS) \\
- \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) $soargdebug \\
- $init_obj \$($ctx->{TYPE}_$ctx->{NAME}_LINK_LIST)
-
+ \$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) $soarg \\
+ $init_obj \$($ctx->{TYPE}_$ctx->{NAME}_LINK_LIST)$soargdebug
__EOD__
);
+ if (defined($ctx->{ALIASES})) {
+ foreach (@{$ctx->{ALIASES}}) {
+ $self->output("\t\@ln -s $ctx->{FIXED_NAME}.\$(SHLIBEXT) $ctx->{DEBUGDIR}/$_.\$(SHLIBEXT)\n");
+ }
+ }
+
+ $self->output("\n");
}
$self->output(<< "__EOD__"
$link_name =~ s/^LIB//g;
$link_name = lc($link_name);
- if (not defined($ctx->{DESCRIPTION})) {
- warn("$ctx->{NAME} has not DESCRIPTION set, not generating .pc file");
- return;
- }
+ return if (not defined($ctx->{DESCRIPTION}));
my $path = "$ctx->{BASEDIR}/$link_name.pc";
"-l$link_name",
"",
"$ctx->{VERSION}",
- $ctx->{DESCRIPTION}
+ $ctx->{DESCRIPTION},
+ defined($ctx->{INIT_FUNCTIONS})
);
}
$dir =~ s/^\.\///g;
+ my $target = "";
+
my $comment = "Creating ";
if (defined($ctx->{PRIVATE_PROTO_HEADER})) {
+ $target.= "$dir/$ctx->{PRIVATE_PROTO_HEADER}";
$comment.= "$dir/$ctx->{PRIVATE_PROTO_HEADER}";
if (defined($ctx->{PUBLIC_PROTO_HEADER})) {
$comment .= " and ";
+ $target.= " ";
}
push (@{$self->{proto_headers}}, "$dir/$ctx->{PRIVATE_PROTO_HEADER}");
} else {
if (defined($ctx->{PUBLIC_PROTO_HEADER})) {
$comment.= "$dir/$ctx->{PUBLIC_PROTO_HEADER}";
+ $target .= "$dir/$ctx->{PUBLIC_PROTO_HEADER}";
push (@{$self->{proto_headers}}, "$dir/$ctx->{PUBLIC_PROTO_HEADER}");
} else {
$ctx->{PUBLIC_PROTO_HEADER} = $ctx->{PRIVATE_PROTO_HEADER};
# nasty hack to allow running locally
if ($self->{duplicate_build}) {
- $self->output("bin/libdynconfig.\$(SHLIBEXT): LIBRARY_DYNCONFIG_OBJ_LIST=dynconfig-devel.o\n");
+ $self->output("bin/libdynconfig.\$(SHLIBEXT).0.0.1: dynconfig-devel.o\n");
+ $self->output("bin/libdynconfig.\$(SHLIBEXT).0.0.1: LIBRARY_DYNCONFIG_OBJ_LIST=dynconfig-devel.o\n");
}
$self->_prepare_mk_files();
- if ($self->{developer}) {
- $self->output(<<__EOD__
-
-#-include \$(ALL_OBJS:.o=.d)
+ $self->output($self->{mkfile});
-__EOD__
-);
+ if ($self->{automatic_deps}) {
+ $self->output("
+ifneq (\$(MAKECMDGOALS),clean)
+ifneq (\$(MAKECMDGOALS),distclean)
+ifneq (\$(MAKECMDGOALS),realdistclean)
+-include \$(DEP_FILES)
+endif
+endif
+endif
+");
+ } else {
+ $self->output("include static_deps.mk\n");
}
- $self->output($self->{mkfile});
-
open(MAKEFILE,">$file") || die ("Can't open $file\n");
print MAKEFILE $self->{output};
close(MAKEFILE);