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