git.m455.casa

pancake

clone url: git://git.m455.casa/pancake


Makefile

1 program-name = pancake
2 program-source = $(program-name).rkt
3
4 directory-local = ~/.local/bin
5 directory-global = /usr/local/bin
6 directory-source = src
7
8 .PHONY: help
9 help:
10 @echo "Usage"
11 @echo " make <command> [<args>]"
12 @echo ""
13 @echo "Commands:"
14 @echo " help"
15 @echo " Displays this help message"
16 @echo ""
17 @echo " clean"
18 @echo " Removes the $(program-name) executable from $(directory-source)/"
19 @echo ""
20 @echo " build"
21 @echo " Creates a $(program-name) executable in your current directory"
22 @echo ""
23 @echo " install-global"
24 @echo " Installs a $(program-name) executable in $(directory-global)/"
25 @echo " Note: This command requires sudo or root access"
26 @echo ""
27 @echo " uninstall-global"
28 @echo " Deletes a $(program-name) executable from $(directory-global)/"
29 @echo " Note: This command requires sudo or root access"
30 @echo ""
31 @echo " install-local"
32 @echo " Installs a $(program-name) executable in $(directory-local)/"
33 @echo ""
34 @echo " uninstall-local"
35 @echo " Deletes a $(program-name) executable from $(directory-local)/"
36 @echo ""
37 @echo " install-custom location=<args>"
38 @echo " Installs a $(program-name) executable in a custom location"
39 @echo ""
40 @echo "Examples:"
41 @echo " make help"
42 @echo " make clean"
43 @echo " make build"
44 @echo " sudo make install-global"
45 @echo " sudo make uninstall-global"
46 @echo " make install-local"
47 @echo " make uninstall-local"
48 @echo " make install-custom location=~/bin/"
49 @echo ""
50 @echo "Note: You will have to manually uninstall custom installations"
51
52
53 .PHONY: install
54 install:
55 @echo "Try running make help"
56
57 .PHONY: uninstall
58 uninstall:
59 @echo "Try running make help"
60
61 # Uninstallation ---------------------------------------------------------
62 .PHONY: uninstall-local
63 uninstall-local:
64 @echo "Uninstalling $(program-name) from $(directory-local) ..."
65 @rm $(directory-local)/$(program-name)
66 @echo "Uninstallation complete!"
67
68 .PHONY: uninstall-global
69 uninstall-global:
70 @echo "Uninstalling $(program-name) from $(directory-global) ..."
71 @rm $(directory-global)/$(program-name)
72 @echo "Uninstallation complete!"
73
74 # Installation -----------------------------------------------------------
75 .PHONY: install-custom
76 install-custom: build
77 @echo "Moving ./$(program-name) to $(location) ..."
78 @mv ./$(program-name) $(location)
79 @echo "Installation complete!"
80
81 .PHONY: install-local
82 install-local: build
83 @echo "Making $(directory-local) if it doesn't already exist ..."
84 @mkdir -p $(directory-local)
85 @echo "Moving ./$(program-name) to $(directory-local)/$(program-name) ..."
86 @mv ./$(program-name) $(directory-local)/$(progam-name)
87 @echo "Installation complete!"
88
89 .PHONY: install-global
90 install-global: build
91 @echo "Moving ./$(program-name) to $(directory-global)/$(program-name) ..."
92 @mv ./$(program-name) $(directory-global)/$(progam-name)
93 @echo "Installation complete!"
94
95 .PHONY: clean
96 clean:
97 @echo "Deleting any $(program-name) executables found in your current folder ..."
98 @rm ./$(program-name)
99
100 build:
101 @echo "Creating a $(directory-source)/$(program-name) executable from $(directory-source)/$(program-source) ..."
102 @raco exe $(directory-source)/$(program-source)
103 @echo "Moving $(directory-source)/$(program-name) executable to your current folder ..."
104 @mv $(directory-source)/$(program-name) ./