33#
44PROJECT = datatools
55
6- PROGRAMS = $(shell ls -1 cmd/)
6+ PROGRAMS = codemeta2cff csv2json csv2mdtable csv2tab csv2xlsx csvcleaner csvcols csvfind csvjoin csvrows finddir findfile json2toml json2yaml jsoncols jsonjoin jsonmunge jsonrange mergepath range reldate reltime sql2csv string tab2csv timefmt toml2json urlparse xlsx2csv xlsx2json yaml2json
7+
8+ MAN_PAGES = codemeta2cff.1 sql2csv.1
79
810PACKAGE = $(shell ls -1 * .go)
911
@@ -54,6 +56,12 @@ test: $(PACKAGE)
5456# cd timefmt && go test
5557 cd codemeta && go test
5658 bash test_cmd.bash
59+
60+ $(MAN_PAGES ) : .FORCE
61+ mkdir -p man/man1
62+ pandoc $@ .md --from markdown --to man -s > man/man1/$@
63+
64+ man : $(MAN_PAGES )
5765
5866website :
5967 bash gen-nav.bash
@@ -79,58 +87,65 @@ clean:
7987 @if [ -f version.go ]; then rm version.go; fi
8088 @if [ -d bin ]; then rm -fR bin; fi
8189 @if [ -d dist ]; then rm -fR dist; fi
82- @if [ -d man ]; then rm -fR man; fi
90+ # @if [ -d man ]; then rm -fR man; fi
8391
8492# NOTE: macOS causes problems if you copy a binary versus move it.
8593install : build
8694 @echo " Installing programs in $( PREFIX) /bin"
8795 @for FNAME in $(PROGRAMS ) ; do if [ -f ./bin/$$ FNAME ]; then mv -v ./bin/$$ FNAME $( PREFIX) /bin/$$ FNAME; fi ; done
8896 @echo " "
8997 @echo " Make sure $( PREFIX) /bin is in your PATH"
98+ @echo " Installing man pages in $( PREFIX) /man/man1"
99+ @mkdir -p $(PREFIX ) /man/man1
100+ @for FNAME in $(MAN_PAGES ) ; do cp -v man/man1/$$ FNAME $(PREFIX ) /man/man1/; done
101+ @echo " Make sure $( PREFIX) /man is in your MANPATH"
90102
91103uninstall : .FORCE
92104 @echo " Removing programs in $( PREFIX) /bin"
93105 @for FNAME in $(PROGRAMS ) ; do if [ -f $( PREFIX) /bin/$$ FNAME ]; then rm -v $( PREFIX) /bin/$$ FNAME; fi ; done
106+ @echo " Removing man pages in $( PREFIX) /man"
107+ @for FNAME in $(MAN_PAGES ) ; do if [ -f $( PREFIX) /man/man1/$$ FNAME ]; then rm -v $( PREFIX) /man/man1/$$ FNAME; fi ; done
108+
94109
95110
96111dist/linux-amd64 : $(PROGRAMS )
97112 @mkdir -p dist/bin
98113 @for FNAME in $(PROGRAMS ) ; do env GOOS=linux GOARCH=amd64 go build -o dist/bin/$$ FNAME cmd/$$ FNAME/* .go; done
99- @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -linux-amd64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* demos /*
114+ @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -linux-amd64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* man /*
100115 @rm -fR dist/bin
101116
102117
103118dist/macos-amd64 : $(PROGRAMS )
104119 @mkdir -p dist/bin
105120 @for FNAME in $(PROGRAMS ) ; do env GOOS=darwin GOARCH=amd64 go build -o dist/bin/$$ FNAME cmd/$$ FNAME/* .go; done
106- @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -macos-amd64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* demos /*
121+ @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -macos-amd64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* man /*
107122 @rm -fR dist/bin
108123
109124
110125dist/macos-arm64 : $(PROGRAMS )
111126 @mkdir -p dist/bin
112127 @for FNAME in $(PROGRAMS ) ; do env GOOS=darwin GOARCH=arm64 go build -o dist/bin/$$ FNAME cmd/$$ FNAME/* .go; done
113- @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -macos-arm64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* demos /*
128+ @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -macos-arm64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* man /*
114129 @rm -fR dist/bin
115130
116131
117132dist/windows-amd64 : $(PROGRAMS )
118133 @mkdir -p dist/bin
119134 @for FNAME in $(PROGRAMS ) ; do env GOOS=windows GOARCH=amd64 go build -o dist/bin/$$ FNAME.exe cmd/$$ FNAME/* .go; done
120- @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -windows-amd64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* demos /*
135+ @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -windows-amd64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* man /*
121136 @rm -fR dist/bin
122137
123138dist/windows-arm64 : $(PROGRAMS )
124139 @mkdir -p dist/bin
125140 @for FNAME in $(PROGRAMS ) ; do env GOOS=windows GOARCH=arm64 go build -o dist/bin/$$ FNAME.exe cmd/$$ FNAME/* .go; done
126- @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -windows-arm64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* demos /*
141+ @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -windows-arm64.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* man /*
127142 @rm -fR dist/bin
128143
129144
130145dist/raspbian-arm7 : $(PROGRAMS )
131146 @mkdir -p dist/bin
132147 @for FNAME in $(PROGRAMS ) ; do env GOOS=linux GOARCH=arm GOARM=7 go build -o dist/bin/$$ FNAME cmd/$$ FNAME/* .go; done
133- @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -raspberry_pi_os-arm7.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* demos /*
148+ @cd dist && zip -r $(PROJECT ) -v$(VERSION ) -raspberry_pi_os-arm7.zip LICENSE codemeta.json CITATION.cff * .md bin/* docs/* how-to/* man /*
134149 @rm -fR dist/bin
135150
136151# dist/datatools_$(VERSION)_amd64.snap:
@@ -148,6 +163,7 @@ distribute_docs:
148163 @cp -v INSTALL.md dist/
149164 @cp -vR docs dist/
150165 @cp -vR how-to dist/
166+ @cp -vR man dist/
151167
152168gen_batfiles : .FORCE
153169 @echo ' @echo off' > make.bat
@@ -172,7 +188,7 @@ gen_batfiles: .FORCE
172188
173189snap : dist/datatools_$(VERSION ) _amd64.snap
174190
175- release : clean build gen_batfiles distribute_docs dist/linux-amd64 dist/macos-amd64 dist/macos-arm64 dist/windows-amd64 dist/windows-arm64 dist/raspbian-arm7
191+ release : clean build man gen_batfiles distribute_docs dist/linux-amd64 dist/macos-amd64 dist/macos-arm64 dist/windows-amd64 dist/windows-arm64 dist/raspbian-arm7
176192
177193
178194.FORCE :
0 commit comments