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) ./ |