github.com/swiftstack/proxyfs@v0.0.0-20201223034610-5434d919416e/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