Makefile
changeset 280 9250e3ad5f4a
parent 279 fd6164dfec82
child 318 6a430707c23e
equal deleted inserted replaced
259:b6c514e81d2c 280:9250e3ad5f4a
     1 # Copyright (C) 2008 by Oleksandr Gavenko <gavenkoa@gmail.com>
     1 # Copyright (C) 2008-2010 by Oleksandr Gavenko <gavenkoa@gmail.com>
       
     2 #
       
     3 # You can do anything with this file without any warranty.
     2 
     4 
     3 ifeq '' '$(HOME)'
     5 ifeq '' '$(HOME)'
     4   $(error Home env var not set!)
     6   $(error Home env var not set!)
     5 endif
     7 endif
     6 
     8 
     7 .PHONY: all install preinstall install-all preinstall-all update-dot-emacs-pre update-dot-emacs-post tar
     9 .PHONY: all
     8 
       
     9 all: install
    10 all: install
    10 
    11 
    11 install: preinstall update-dot-emacs-pre update-dot-emacs-post
    12 .PHONY: install-all
       
    13 install-all: install
       
    14 	cp .emacs-pre $(HOME)/.emacs-pre
       
    15 	cp .emacs-post $(HOME)/.emacs-post
    12 
    16 
    13 preinstall: .emacs .emacs-my .emacs-pre .emacs-post
    17 .PHONY: install
       
    18 install: .emacs .emacs-my .emacs-pre .emacs-post $(wildcard lisp/*.el)
    14 	for file in .emacs-pre .emacs-post; do \
    19 	for file in .emacs-pre .emacs-post; do \
    15 		if [ ! -f $(HOME)/$$file ]; then cp $$file $(HOME)/$$file; fi; \
    20 		if [ ! -f $(HOME)/$$file ]; then cp $$file $(HOME)/$$file; fi; \
    16 	done
    21 	done
    17 	cp .emacs $(HOME)/.emacs
    22 	cp .emacs $(HOME)/.emacs
    18 	cp .emacs-my $(HOME)/.emacs-my
    23 	cp .emacs-my $(HOME)/.emacs-my
       
    24 	rm -f -r $(HOME)/.emacs.d/my-lisp
       
    25 	mkdir -p $(HOME)/.emacs.d/my-lisp
       
    26 	for file in $(wildcard lisp/*.el); do \
       
    27 		cp -f $$file $(HOME)/.emacs.d/my-lisp; \
       
    28 	done
       
    29 	emacs --batch \
       
    30 		--eval='(let ( (generated-autoload-file "~/.emacs.d/my-lisp/autoload-my.el") ) (update-directory-autoloads "~/.emacs.d/my-lisp") )'
    19 
    31 
    20 install-all: preinstall-all update-dot-emacs-pre update-dot-emacs-post
    32 .PHONY: uninstall
       
    33 uninstall:
       
    34 	@echo !!! Nothing done !!!
    21 
    35 
    22 preinstall-all: .emacs .emacs-my .emacs-pre .emacs-post
    36 .PHONY: tar
    23 	for file in $^; do \
       
    24 		cp $$file $(HOME)/$$file; \
       
    25 	done
       
    26 
       
    27 update-dot-emacs-pre:
       
    28 	for file in `cd template-pre; ls *.el`; do \
       
    29 		tag=$${file%.el}; \
       
    30 		if grep "DO NOT EDIT COMMENT! TAG: $$tag" $(HOME)/.emacs-pre; then \
       
    31 			:; \
       
    32 		else \
       
    33 			cat template-pre/$$file >>$(HOME)/.emacs-pre; \
       
    34 		fi; \
       
    35 	done
       
    36 
       
    37 update-dot-emacs-post:
       
    38 	for file in `cd template-post; ls *.el`; do \
       
    39 		tag=$${file%.el}; \
       
    40 		if grep "DO NOT EDIT COMMENT! TAG: $$tag" $(HOME)/.emacs-post; then \
       
    41 			:; \
       
    42 		else \
       
    43 			cat template-post/$$file >>$(HOME)/.emacs-post; \
       
    44 		fi; \
       
    45 	done
       
    46 
       
    47 tar:
    37 tar:
    48 	tar cf dot-emacs.tar .emacs .emacs-my
    38 	tar cf dot-emacs.tar .emacs .emacs-my
    49 
    39 
       
    40 .PHONY: distclean
       
    41 distclean: clean
       
    42 
       
    43 .PHONY: clean
    50 clean:
    44 clean:
    51 	rm -f dot-emacs.tar
    45 	rm -f dot-emacs.tar