Use GNU make.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 7 Mar 2008 22:32:16 +0000 (23:32 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Fri, 7 Mar 2008 22:32:16 +0000 (23:32 +0100)
(This used to be commit 28aff6fafbb3d8796dd6aaac92500254cf50253e)

source4/build/make/rules.mk
source4/build/smb_build/makefile.pm

index 44277fe3e201473afd11b73168f34c70ad962f34..bce30ffc061ab29afad32d5eb93a46044efc8b14 100644 (file)
@@ -136,6 +136,22 @@ $(1): $(2) ;
 
 endef
 
+# Shared alias
+# Arguments: Target, subsystem name, alias name
+define shared_module_alias_template
+bin/modules/$(2)/$(3).$$(SHLIBEXT): $(1)
+       @ln -fs $$(<F) $$@
+
+PLUGINS += bin/modules/$(2)/$(3).$$(SHLIBEXT)
+
+uninstallplugins::
+       @-rm $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT)
+installplugins::
+       @ln -fs $(1) $$(DESTDIR)$$(modulesdir)/$(2)/$(3).$$(SHLIBEXT)
+
+
+endef
+
 ###############################################################################
 # File types
 ###############################################################################
index 36139eca4d04a2e1bb2a5f29fc0860b9b11b8293..bff307d7758aff795c638e957ce1d63cf32ed1e8 100644 (file)
@@ -141,16 +141,10 @@ sub SharedModule($$)
 
        $self->output("\$(eval \$(call shared_module_template,$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}, \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST), \$($ctx->{NAME}\_FULL_OBJ_LIST) \$($ctx->{NAME}_LINK_FLAGS)))\n");
 
+
        if (defined($ctx->{ALIASES})) {
                foreach (@{$ctx->{ALIASES}}) {
-                       $self->output("$ctx->{SHAREDDIR}/$_.\$(SHLIBEXT): $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}\n");
-                       $self->output("\t\@ln -fs \$(<F) \$@\n");
-                       $self->output("PLUGINS += $ctx->{SHAREDDIR}/$_.\$(SHLIBEXT)\n");
-                       $self->output("\n");
-                       $self->output("uninstallplugins::\n");
-                       $self->output("\t\@-rm \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n\n");
-                       $self->output("installplugins::\n");
-                       $self->output("\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(modulesdir)/$sane_subsystem/$_.\$(SHLIBEXT)\n\n");
+                       $self->output("\$(eval \$(call shared_module_alias_template,$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME},$sane_subsystem,$_))\n");
                }
        }
 }