diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-06-26 11:39:59 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-06-26 11:39:59 +0200 |
commit | 0507e03c5260dc6a1e634dffd54931beaa32b870 (patch) | |
tree | fa30de1bec2a2cc37a71bbe95f64b51038b1687f /source4/build | |
parent | 26e9194e3a3ff9b065fec43ad5f3b63187eb533b (diff) | |
download | samba-0507e03c5260dc6a1e634dffd54931beaa32b870.tar.gz samba-0507e03c5260dc6a1e634dffd54931beaa32b870.tar.bz2 samba-0507e03c5260dc6a1e634dffd54931beaa32b870.zip |
Use make template for installing binaries.
(This used to be commit 3fb35fc03d5cfb48d0d4f51564ef76e99e74f81c)
Diffstat (limited to 'source4/build')
-rw-r--r-- | source4/build/make/rules.mk | 2 | ||||
-rw-r--r-- | source4/build/make/templates.mk | 42 | ||||
-rw-r--r-- | source4/build/smb_build/makefile.pm | 9 |
3 files changed, 46 insertions, 7 deletions
diff --git a/source4/build/make/rules.mk b/source4/build/make/rules.mk index 27a214459a..f8df8f0b53 100644 --- a/source4/build/make/rules.mk +++ b/source4/build/make/rules.mk @@ -43,8 +43,6 @@ clean:: clean_pch @-find . -name '*.o' -exec rm -f '{}' \; @echo Removing hostcc objects @-find . -name '*.ho' -exec rm -f '{}' \; - @echo Removing binaries - @-rm -f $(BIN_PROGS) $(SBIN_PROGS) $(BINARIES) $(TORTURE_PROGS) @echo Removing libraries @-rm -f $(STATIC_LIBS) $(SHARED_LIBS) @-rm -f bin/static/*.a bin/shared/*.$(SHLIBEXT) bin/mergedobj/*.o diff --git a/source4/build/make/templates.mk b/source4/build/make/templates.mk index 25bdde09b4..eb6b584af2 100644 --- a/source4/build/make/templates.mk +++ b/source4/build/make/templates.mk @@ -22,6 +22,12 @@ define binary_link_template $(1): $(2) ; @echo Linking $$@ @$$(BNLD) $$(BNLD_FLAGS) $$(INTERN_LDFLAGS) -o $$@ $$(INSTALL_LINK_FLAGS) $(3) + +clean:: + @rm -f $(1) + +binaries:: $(1) + endef # Link a host-machine binary @@ -30,6 +36,12 @@ define host_binary_link_template $(1): $(2) ; @echo Linking $$@ @$$(HOSTLD) $$(HOSTLD_FLAGS) -L$${builddir}/bin/static -o $$@ $$(INSTALL_LINK_FLAGS) $(3) + +clean:: + rm -f $(1) + +binaries:: $(1) + endef # Create a prototype header @@ -109,3 +121,33 @@ endef # abspath for older makes abspath := $(shell cd $(1); pwd) + +define binary_install_template +inst@allbin:: $(1) installdirs + @mkdir -p $$(DESTDIR)$$(bindir) + @$$(SHELL) $$(srcdir)/script/installbin.sh \ + $$(INSTALLPERMS) \ + $$(DESTDIR)$$(BASEDIR) \ + $$(DESTDIR)$$(bindir) \ + $$(DESTDIR)$$(libdir) \ + $$(DESTDIR)$$(localstatedir) \ + $$< + +uninstallbin:: + @rm -f $$(DESTDIR)$$(bindir)/$(1) +endef + +define sbinary_install_template +installsbin:: $(1) installdirs + @mkdir -p $$(DESTDIR)$$(sbindir) + @$$(SHELL) $$(srcdir)/script/installbin.sh \ + $$(INSTALLPERMS) \ + $$(DESTDIR)$$(BASEDIR) \ + $$(DESTDIR)$$(sbindir) \ + $$(DESTDIR)$$(libdir) \ + $$(DESTDIR)$$(localstatedir) \ + $$< + +uninstallsbin:: + @rm -f $$(DESTDIR)$$(sbindir)/$(1) +endef diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 0ea31062f7..d9cbca0614 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -196,11 +196,10 @@ sub Binary($$) my ($self,$ctx) = @_; unless (defined($ctx->{INSTALLDIR})) { - $self->output("BINARIES += $ctx->{TARGET_BINARY}\n"); } elsif ($ctx->{INSTALLDIR} eq "SBINDIR") { - $self->output("SBIN_PROGS += $ctx->{RESULT_BINARY}\n"); + $self->output("\$(eval \$(call sbinary_install_template,$ctx->{RESULT_BINARY}))\n"); } elsif ($ctx->{INSTALLDIR} eq "BINDIR") { - $self->output("BIN_PROGS += $ctx->{RESULT_BINARY}\n"); + $self->output("\$(eval \$(call binary_install_template,$ctx->{RESULT_BINARY}))\n"); } $self->_prepare_list($ctx, "FULL_OBJ_LIST"); @@ -208,9 +207,9 @@ sub Binary($$) $self->_prepare_list($ctx, "LINK_FLAGS"); if (defined($ctx->{USE_HOSTCC}) && $ctx->{USE_HOSTCC} eq "YES") { -$self->output("\$(call host_binary_link_template, $ctx->{RESULT_BINARY}, \$($ctx->{NAME}_FULL_OBJ_LIST) \$($ctx->{NAME}_DEPEND_LIST), \$($ctx->{NAME}_LINK_FLAGS))\n"); +$self->output("\$(eval \$(call host_binary_link_template, $ctx->{RESULT_BINARY}, \$($ctx->{NAME}_FULL_OBJ_LIST) \$($ctx->{NAME}_DEPEND_LIST), \$($ctx->{NAME}_LINK_FLAGS)))\n"); } else { -$self->output("\$(call binary_link_template, $ctx->{RESULT_BINARY}, \$($ctx->{NAME}_FULL_OBJ_LIST) \$($ctx->{NAME}_DEPEND_LIST), \$($ctx->{NAME}_LINK_FLAGS))\n"); +$self->output("\$(eval \$(call binary_link_template, $ctx->{RESULT_BINARY}, \$($ctx->{NAME}_FULL_OBJ_LIST) \$($ctx->{NAME}_DEPEND_LIST), \$($ctx->{NAME}_LINK_FLAGS)))\n"); } } |