github.com/rohankumardubey/proxyfs@v0.0.0-20210108201508-653efa9ab00e/Makefile (about) 1 gopregeneratesubdirs = \ 2 make-static-content 3 4 gopkgsubdirs = \ 5 blunder \ 6 bucketstats \ 7 conf \ 8 confgen \ 9 dlm \ 10 evtlog \ 11 fs \ 12 fuse \ 13 halter \ 14 headhunter \ 15 httpserver \ 16 inode \ 17 jrpcfs \ 18 liveness \ 19 logger \ 20 mkproxyfs \ 21 platform \ 22 proxyfsd \ 23 ramswift \ 24 retryrpc \ 25 stats \ 26 statslogger \ 27 swiftclient \ 28 transitions \ 29 trackedlock \ 30 utils \ 31 version 32 33 gobinsubdirs = \ 34 cleanproxyfs \ 35 fsworkout \ 36 inodeworkout \ 37 pfs-crash \ 38 pfs-fsck \ 39 pfs-jrpc \ 40 pfs-restart-test \ 41 pfs-stress \ 42 pfs-swift-load \ 43 pfsagentd \ 44 pfsagentd/pfsagentd-init \ 45 pfsagentd/pfsagentd-swift-auth-plugin \ 46 pfsagentConfig \ 47 pfsagentConfig/pfsagentConfig \ 48 pfsconfjson \ 49 pfsconfjsonpacked \ 50 pfsworkout \ 51 confgen/confgen \ 52 evtlog/pfsevtlogd \ 53 mkproxyfs/mkproxyfs \ 54 proxyfsd/proxyfsd \ 55 ramswift/ramswift 56 57 gobinsubdirsforci = \ 58 pfsconfjson \ 59 pfsconfjsonpacked \ 60 confgen/confgen \ 61 mkproxyfs/mkproxyfs \ 62 proxyfsd/proxyfsd 63 64 gosubdirsforci = $(gopkgsubdirs) $(gobinsubdirsforci); 65 gosubdirspathsforci = $(addprefix github.com/swiftstack/ProxyFS/,$(gosubdirsforci)) 66 67 uname = $(shell uname) 68 machine = $(shell uname -m) 69 70 ifeq ($(uname),Linux) 71 ifeq ($(machine),armv7l) 72 all: version fmt pre-generate generate install test 73 74 ci: version fmt pre-generate generate install test cover 75 76 minimal: pre-generate generate install 77 else 78 distro := $(shell python -c "import platform; print platform.linux_distribution()[0]") 79 80 all: version fmt pre-generate generate install test python-test c-clean c-build c-install c-test 81 82 ci: version fmt pre-generate generate install test cover python-test c-clean c-build c-install c-test 83 84 all-deb-builder: version fmt pre-generate generate install c-clean c-build c-install-deb-builder 85 86 minimal: pre-generate generate install c-clean c-build c-install 87 endif 88 else 89 all: version fmt pre-generate generate install test 90 91 ci: version fmt pre-generate generate install test cover 92 93 minimal: pre-generate generate install 94 endif 95 96 pfsagent: pre-generate generate pfsagent-install 97 98 .PHONY: all all-deb-builder bench c-build c-clean c-install c-install-deb-builder c-test ci clean cover fmt generate install pfsagent pfsagent-install pre-generate python-test test version 99 100 bench: 101 @set -e; \ 102 for gosubdir in $(gopkgsubdirs); do \ 103 $(MAKE) --no-print-directory -C $$gosubdir bench; \ 104 done; \ 105 for gosubdir in $(gobinsubdirs); do \ 106 $(MAKE) --no-print-directory -C $$gosubdir bench; \ 107 done 108 109 c-build: 110 $(MAKE) -w -C jrpcclient all 111 $(MAKE) -w -C vfs 112 113 c-clean: 114 $(MAKE) -w -C jrpcclient clean 115 $(MAKE) -w -C vfs clean 116 117 c-install: 118 ifeq ($(distro),CentOS Linux) 119 sudo -E $(MAKE) -w -C jrpcclient installcentos 120 sudo -E $(MAKE) -w -C vfs installcentos 121 else 122 sudo -E $(MAKE) -w -C jrpcclient install 123 sudo -E $(MAKE) -w -C vfs install 124 endif 125 126 c-install-deb-builder: 127 ifeq ($(distro),CentOS Linux) 128 $(MAKE) -w -C jrpcclient installcentos 129 $(MAKE) -w -C vfs installcentos 130 else 131 $(MAKE) -w -C jrpcclient install 132 $(MAKE) -w -C vfs install 133 endif 134 135 c-test: 136 cd jrpcclient ; ./regression_test.py --just-test-libs 137 138 clean: 139 @set -e; \ 140 rm -f $(GOPATH)/bin/stringer; \ 141 for gosubdir in $(gopregeneratesubdirs); do \ 142 $(MAKE) --no-print-directory -C $$gosubdir clean; \ 143 done; \ 144 for gosubdir in $(gopkgsubdirs); do \ 145 $(MAKE) --no-print-directory -C $$gosubdir clean; \ 146 done; \ 147 for gosubdir in $(gobinsubdirs); do \ 148 $(MAKE) --no-print-directory -C $$gosubdir clean; \ 149 done 150 151 cover: 152 @set -e; \ 153 go get -u github.com/ory/go-acc; \ 154 go-acc -o coverage.coverprofile $(gosubdirspathsforci) 155 156 fmt: 157 @set -e; \ 158 $(MAKE) --no-print-directory -C make-static-content fmt; \ 159 for gosubdir in $(gopkgsubdirs); do \ 160 $(MAKE) --no-print-directory -C $$gosubdir fmt; \ 161 done; \ 162 for gosubdir in $(gobinsubdirs); do \ 163 $(MAKE) --no-print-directory -C $$gosubdir fmt; \ 164 done 165 166 generate: 167 @set -e; \ 168 for gosubdir in $(gopkgsubdirs); do \ 169 $(MAKE) --no-print-directory -C $$gosubdir generate; \ 170 done; \ 171 for gosubdir in $(gobinsubdirs); do \ 172 $(MAKE) --no-print-directory -C $$gosubdir generate; \ 173 done 174 175 install: 176 @set -e; \ 177 for gosubdir in $(gopkgsubdirs); do \ 178 $(MAKE) --no-print-directory -C $$gosubdir install; \ 179 done; \ 180 for gosubdir in $(gobinsubdirs); do \ 181 $(MAKE) --no-print-directory -C $$gosubdir install; \ 182 done 183 184 pfsagent-install: 185 $(MAKE) --no-print-directory -C pfsagentd install 186 $(MAKE) --no-print-directory -C pfsagentd/pfsagentd-init install 187 $(MAKE) --no-print-directory -C pfsagentd/pfsagentd-swift-auth-plugin install 188 189 pre-generate: 190 @set -e; \ 191 go install github.com/swiftstack/ProxyFS/vendor/golang.org/x/tools/cmd/stringer; \ 192 for gosubdir in $(gopregeneratesubdirs); do \ 193 $(MAKE) --no-print-directory -C $$gosubdir install; \ 194 done 195 196 python-test: 197 cd meta_middleware && tox -e lint 198 cd pfs_middleware && tox -e py27-release,py27-minver,py36-release,lint 199 200 test: 201 @set -e; \ 202 for gosubdir in $(gopkgsubdirs); do \ 203 $(MAKE) --no-print-directory -C $$gosubdir test; \ 204 done; \ 205 for gosubdir in $(gobinsubdirs); do \ 206 if [ $$gosubdir == "pfsagentd" ]; \ 207 then \ 208 echo "Skipping pfsagentd"; \ 209 else \ 210 $(MAKE) --no-print-directory -C $$gosubdir test; \ 211 fi \ 212 done 213 214 version: 215 @go version