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