@@ -3,13 +3,23 @@ current_dir := $(notdir $(patsubst %/,%,$(dir $(mkfile_path))))
3
3
4
4
MODULE := $(current_dir )
5
5
PREFIX ?= ~/.hammerspoon
6
+ MODPATH = hs/_asm/undocumented
6
7
VERSION ?= 0.x
7
8
HS_APPLICATION ?= /Applications
8
9
10
+ # get from https://github.com/asmagill/hammerspoon-config/blob/master/utils/docmaker.lua
11
+ # if you want to generate a readme file similar to the ones I generally use. Adjust the copyright in the file and adjust
12
+ # this variable to match where you save docmaker.lua relative to your hammerspoon configuration directory
13
+ # (usually ~/.hammerspoon)
14
+ MARKDOWNMAKER = utils/docmaker.lua
15
+
9
16
OBJCFILE = ${wildcard *.m}
10
17
LUAFILE = ${wildcard *.lua}
11
18
HEADERS = ${wildcard *.h}
12
19
20
+ # swap if all objective-c files should be compiled into one target -- this is necessary if you organize your code in
21
+ # multiple files but need them to access functions/objects defined in different files -- each dynamic library is loaded
22
+ # individually by Hammerspoon so they can't see the exports of each other directly.
13
23
SOFILE := $(OBJCFILE:.m=.so )
14
24
# SOFILE := internal.so
15
25
DEBUG_CFLAGS ?= -g
@@ -36,40 +46,51 @@ all: verify $(SOFILE)
36
46
release : clean all
37
47
HS_APPLICATION=$(HS_APPLICATION ) PREFIX=tmp make install ; cd tmp ; tar -cf ../$(MODULE ) -v$(VERSION ) .tar hs ; cd .. ; gzip $(MODULE ) -v$(VERSION ) .tar
38
48
49
+ releaseWithDocs : clean all docs
50
+ HS_APPLICATION=$(HS_APPLICATION ) PREFIX=tmp make install ; cd tmp ; tar -cf ../$(MODULE ) -v$(VERSION ) .tar hs ; cd .. ; gzip $(MODULE ) -v$(VERSION ) .tar
51
+
52
+ # swap if all objective-c files should be compiled into one target
39
53
.m.so : $(HEADERS ) $(OBJCFILE )
40
54
$(CC ) $< $(CFLAGS ) $(LDFLAGS ) -o $@
41
55
42
56
# internal.so: $(HEADERS) $(OBJCFILE)
43
57
# $(CC) $(OBJCFILE) $(CFLAGS) $(LDFLAGS) -o $@
44
58
45
59
install : verify install-objc install-lua
60
+ test -f docs.json && install -m 0644 docs.json $(PREFIX ) /$(MODPATH ) /$(MODULE ) || echo " No docs.json file to install"
46
61
47
62
verify : $(LUAFILE )
48
63
@if $$(hash lua-5.3 >& /dev/null ) ; then (luac-5.3 -p $( LUAFILE) && echo " Lua Compile Verification Passed" ); else echo " Skipping Lua Compile Verification" ; fi
49
64
50
65
install-objc : $(SOFILE )
51
- mkdir -p $(PREFIX ) /hs/_asm/undocumented/$(MODULE )
52
- install -m 0644 $(SOFILE ) $(PREFIX ) /hs/_asm/undocumented/$(MODULE )
53
- cp -vpR $(OBJCFILE:.m=.so.dSYM ) $(PREFIX ) /hs/_asm/undocumented/$(MODULE )
54
- # cp -vpR $(SOFILE:.so=.so.dSYM) $(PREFIX)/hs/_asm/undocumented/$(MODULE)
66
+ mkdir -p $(PREFIX ) /$(MODPATH ) /$(MODULE )
67
+ install -m 0644 $(SOFILE ) $(PREFIX ) /$(MODPATH ) /$(MODULE )
68
+ # swap if all objective-c files should be compiled into one target
69
+ cp -vpR $(OBJCFILE:.m=.so.dSYM) $(PREFIX)/$(MODPATH)/$(MODULE)
70
+ # cp -vpR $(SOFILE:.so=.so.dSYM) $(PREFIX)/$(MODPATH)/$(MODULE)
55
71
56
72
install-lua : $(LUAFILE )
57
- mkdir -p $(PREFIX ) /hs/_asm/undocumented/$(MODULE )
58
- install -m 0644 $(LUAFILE ) $(PREFIX ) /hs/_asm/undocumented/$(MODULE )
73
+ mkdir -p $(PREFIX ) /$(MODPATH ) /$(MODULE )
74
+ install -m 0644 $(LUAFILE ) $(PREFIX ) /$(MODPATH ) /$(MODULE )
75
+
76
+ docs :
77
+ hs -c " require(\" hs.doc\" ).builder.genJSON(\" $( dir $( mkfile_path) ) \" )" > docs.json
59
78
60
79
markdown :
61
- hs -c " dofile(\" utils/docmaker.lua \" ).genMarkdown([[$( dir $( mkfile_path) ) ]])" > README.tmp.md
80
+ hs -c " dofile(\" $( MARKDOWNMAKER ) \" ).genMarkdown([[$( dir $( mkfile_path) ) ]])" > README.tmp.md
62
81
63
82
markdownWithTOC :
64
- hs -c " dofile(\" utils/docmaker.lua \" ).genMarkdown([[$( dir $( mkfile_path) ) ]], true)" > README.tmp.md
83
+ hs -c " dofile(\" $( MARKDOWNMAKER ) \" ).genMarkdown([[$( dir $( mkfile_path) ) ]], true)" > README.tmp.md
65
84
66
85
clean :
67
- rm -rf $(SOFILE ) * .dSYM tmp
86
+ rm -rf $(SOFILE ) * .dSYM tmp docs.json
68
87
69
88
uninstall :
70
- rm -v -f $(PREFIX ) /hs/_asm/undocumented/$(MODULE ) /{$(subst $(space ) ,$(comma ) ,$(ALLFILES ) ) }
71
- (pushd $( PREFIX) /hs/_asm/undocumented/$( MODULE) / ; rm -v -fr $( OBJCFILE:.m=.so.dSYM) ; popd)
72
- # (pushd $(PREFIX)/hs/_asm/undocumented/$(MODULE)/ ; rm -v -fr $(SOFILE:.so=.so.dSYM) ; popd)
73
- rmdir -p $(PREFIX)/hs/_asm/undocumented/$(MODULE) ; exit 0
74
-
75
- .PHONY : all clean uninstall verify install install-objc install-lua
89
+ rm -v -f $(PREFIX ) /$(MODPATH ) /$(MODULE ) /{$(subst $(space ) ,$(comma ) ,$(ALLFILES ) ) }
90
+ # swap if all objective-c files should be compiled into one target
91
+ (pushd $(PREFIX)/$(MODPATH)/$(MODULE)/ ; rm -v -fr $(OBJCFILE:.m=.so.dSYM) ; popd)
92
+ # (pushd $(PREFIX)/$(MODPATH)/$(MODULE)/ ; rm -v -fr $(SOFILE:.so=.so.dSYM) ; popd)
93
+ rm -v -f $(PREFIX)/$(MODPATH)/$(MODULE)/docs.json
94
+ rmdir -p $(PREFIX)/$(MODPATH)/$(MODULE) ; exit 0
95
+
96
+ .PHONY : all clean uninstall verify install install-objc install-lua docs markdown markdownWithTOC
0 commit comments