github.com/hpcng/singularity@v3.1.1+incompatible/mlocal/frags/build_cli.mk (about)

     1  # This file contains all of the rules for building the singularity CLI binary
     2  
     3  # singularity build config
     4  singularity_build_config := $(SOURCEDIR)/internal/pkg/buildcfg/config.go
     5  $(singularity_build_config): $(BUILDDIR)/config.h
     6  	$(V)rm -f $(singularity_build_config)
     7  	$(V)export BUILDDIR=$(BUILDDIR_ABSPATH) && cd $(SOURCEDIR)/internal/pkg/buildcfg && go generate
     8  
     9  CLEANFILES += $(singularity_build_config)
    10  
    11  # singularity
    12  singularity_SOURCE := $(shell $(SOURCEDIR)/makeit/gengodep $(SOURCEDIR)/cmd/singularity/cli.go)
    13  
    14  singularity := $(BUILDDIR)/singularity
    15  $(singularity): $(singularity_build_config) $(singularity_SOURCE)
    16  	@echo " GO" $@; echo "    [+] GO_TAGS" \"$(GO_TAGS)\"
    17  	$(V)go build $(GO_BUILDMODE) -tags "$(GO_TAGS)" $(GO_LDFLAGS) -o $(BUILDDIR)/singularity $(SOURCEDIR)/cmd/singularity/cli.go
    18  
    19  singularity_INSTALL := $(DESTDIR)$(BINDIR)/singularity
    20  $(singularity_INSTALL): $(singularity)
    21  	@echo " INSTALL" $@
    22  	$(V)install -d $(@D)
    23  	$(V)install -m 0755 $(singularity) $(singularity_INSTALL) # set cp to install
    24  
    25  CLEANFILES += $(singularity)
    26  INSTALLFILES += $(singularity_INSTALL)
    27  ALL += $(singularity)
    28  
    29  
    30  # bash_completion file
    31  bash_completion :=  $(BUILDDIR)/etc/bash_completion.d/singularity
    32  $(bash_completion): $(singularity_build_config)
    33  	@echo " GEN" $@
    34  	$(V)rm -f $@
    35  	$(V)mkdir -p $(@D)
    36  	$(V)go run -tags "$(GO_TAGS)" $(SOURCEDIR)/cmd/bash_completion/bash_completion.go $@
    37  
    38  bash_completion_INSTALL := $(DESTDIR)$(SYSCONFDIR)/bash_completion.d/singularity
    39  $(bash_completion_INSTALL): $(bash_completion)
    40  	@echo " INSTALL" $@
    41  	$(V)install -d $(@D)
    42  	$(V)install -m 0644 $< $@
    43  
    44  CLEANFILES += $(bash_completion)
    45  INSTALLFILES += $(bash_completion_INSTALL)
    46  ALL += $(bash_completion)
    47  
    48  
    49  # singularity.conf file
    50  config := $(BUILDDIR)/singularity.conf
    51  config_INSTALL := $(DESTDIR)$(SYSCONFDIR)/singularity/singularity.conf
    52  # override this to empty to avoid merging old configuration settings
    53  old_config := $(config_INSTALL)
    54  
    55  $(config): $(singularity_build_config) $(SOURCEDIR)/etc/conf/gen.go $(SOURCEDIR)/internal/pkg/runtime/engines/singularity/config/data/singularity.conf $(SOURCEDIR)/internal/pkg/runtime/engines/singularity/config/config.go
    56  	@echo " GEN $@`if [ -n "$(old_config)" ]; then echo " from $(old_config)"; fi`"
    57  	$(V)go run $(SOURCEDIR)/etc/conf/gen.go \
    58  		$(SOURCEDIR)/internal/pkg/runtime/engines/singularity/config/data/singularity.conf $(old_config) $(config)
    59  
    60  $(config_INSTALL): $(config)
    61  	@echo " INSTALL" $@
    62  	$(V)install -d $(@D)
    63  	$(V)install -m 0644 $< $@
    64  
    65  INSTALLFILES += $(config_INSTALL)
    66  ALL += $(config)