summaryrefslogblamecommitdiffstats
path: root/Makefile
blob: d49a91772a70fd4904e95835c13439e72f9876d4 (plain) (tree)
1
2
3
4
5
6
7
8
9
               


           
                                                
 
            
                
                    
               

                   


                          












                                  

                           



                                         

              


               
                          

                              
                   

                       
                
                   



               
                  

                


                  
          
           
          
                   
 
              
                  

                         

                     
 

                     
 
          
              
                                                                             

                                                           
        
 










                                        



                     
                                                
 

               
                           


                                                
 
                           
                              
                        
                                      
 
        
                                     


                                   
 
        
                                                                                                                                                   
 


                                                                                                                      


                                                                                                                                                                                                                                                   
                                                              


                      
                                      
                   
 
                                                   
                                                    
                          



                          
                                                 
                              

                                  





                                          
              
                        
INTO := $(HOME)

all : build

include Makefile.$(shell hostname | cut -d. -f1)

INSTALL := \
    $(INSTALL) \
    .abook/abookrc \
    .agignore \
    .bash_profile \
    .bashrc \
    .config/git/config \
    .config/git/ignore \
    .config/mpd/mpd.conf \
    .config/ncmpcpp/bindings \
    .config/sh/aliases \
    .config/sh/cdhist.sh \
    .config/sh/env \
    .config/sh/functions \
    .config/sh/fzf \
    .config/tex/jesse_essay.sty \
    .config/tex/jesse_letter.sty \
    .config/tex/jesse_macros.sty \
    .config/tex/jesse_resume.sty \
    .config/tex/jesse.sty \
    .config/tex/sarah_resume.sty \
    .config/tig/config \
    .config/weechat/saved \
    .config/weechat/extra \
    .config/zsh/local-completions \
    .config/zsh/zsh-autosuggestions \
    .config/zsh/zsh-completions \
    .config/zsh/zsh-syntax-highlighting \
    .crawlrc \
    .gdbinit \
    .inputrc \
    .ledgerrc \
    .less \
    .local/share/fortune \
    .mutt/choose-muttrc-type \
    .mutt/imap \
    .mutt/mailcap \
    .mutt/muttrc \
    .mutt/offlineimap \
    .nethackrc \
    .perlcriticrc \
    .profile \
    .proverc \
    .replyrc \
    .screenrc \
    .ssh/cao_key \
    .tmux.conf \
    .vimrc \
    .zshcomplete \
    .zshinput \
    .zshrc \
    .bin \
    .dzil \
    .vim \
    .weechat/perl \

EMPTYDIRS := \
    $(EMPTYDIRS) \
    .cache/mutt/headers \
    .cache/mutt/bodies \
    .cache/vim/hist \
    .cache/vim/undo \

INSTALL_CUSTOM := \
    $(INSTALL_CUSTOM)

BUILD := \
    $(BUILD) \
    $(addsuffix .dat,$(filter-out %.dat,$(wildcard local/share/fortune/*))) \
    $(addsuffix tags,$(wildcard vim/pack/*/start/*/doc/)) \
    vim/spell/en.utf-8.add.spl \
    less

INSTALLED_SYMLINKS := \
    $(patsubst %,$(INTO)/%,$(INSTALL)) \
    $(INSTALL_CUSTOM)

INSTALLED_DIRS := \
    $(patsubst %,$(INTO)/%,$(EMPTYDIRS))

INSTALLED := \
    $(INSTALLED_SYMLINKS) \
    $(INSTALLED_DIRS)

ECHO      = @echo
LN        = @ln -sf
MKDIR     = @mkdir -p
RM        = @rm -f
RMDIR     = @rmdir -p --ignore-fail-on-non-empty

# named targets

build : submodules $(BUILD)

submodules :
	@git submodule update --init --recursive

install :: all $(INSTALLED)
	@chmod 600 ssh/cao_key
	@chmod 700 gnupg
	$(ECHO) Installed into $(INTO)

clean ::
	$(ECHO) Cleaning from $(INTO)
	$(RM) $(BUILD)
	$(RM) $(INSTALLED_SYMLINKS)
	$(RMDIR) $(INSTALLED_DIRS)

update :
	@git submodule foreach '(if [ $$path == "vim/pack/filetype/start/perl" ]; then git checkout dev; else git checkout master; fi) && git pull'

versions :
	@git submodule foreach -q 'printf "%-53s" " $$path" && GIT_PAGER=cat git show -s --format=format:%cI%n $$sha1'

updates :
	@git submodule foreach -q 'if [ $$path == "vim/pack/filetype/start/perl" ]; then if [ $$(git rev-parse dev) != $$sha1 ]; then git lg dev...$$sha1; fi; else if [ $$(git rev-parse master) != $$sha1 ]; then git lg master...$$sha1; fi; fi'

.PHONY: submodules build install clean update versions updates

# installation targets

$(patsubst %,$(INTO)/%,$(EMPTYDIRS)) :
	$(MKDIR) $@

$(patsubst %,$(INTO)/%,$(INSTALL)) : $(INTO)/.% : %
	@[ ! -e $@ ] || [ -h $@ ] || mv -f $@ $@.bak
	$(MKDIR) $(dir $@)
	$(LN) $(PWD)/$< $@

# build targets

local/share/fortune/%.dat : local/share/fortune/%
	$(ECHO) "Compiling $@"
	@strfile -s $(basename $@)

%/doc/tags: %/doc
	@vim -u NONE -c':helptags $< | :q'

%.spl : %
	@vim -u NONE -c':mkspell! $< | :q'

less : lesskey
	lesskey -o $@ $<