First implementation
This commit is contained in:
		
							
								
								
									
										59
									
								
								vendor/periph.io/x/periph/Makefile
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								vendor/periph.io/x/periph/Makefile
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
# Copyright 2016 The Periph Authors. All rights reserved.
 | 
			
		||||
# Use of this source code is governed under the Apache License, Version 2.0
 | 
			
		||||
# that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
# This Makefile captures common tasks for the periph library. The hope is that this Makefile can remain
 | 
			
		||||
# simple and straightforward...
 | 
			
		||||
 | 
			
		||||
# *** This Makefile is a work in progress, please help impove it! ***
 | 
			
		||||
 | 
			
		||||
# not sure yet what all should do...
 | 
			
		||||
all:
 | 
			
		||||
	@echo Available targets: test build
 | 
			
		||||
 | 
			
		||||
.PHONY: all test clean depend
 | 
			
		||||
 | 
			
		||||
# test runs the platform independent tests
 | 
			
		||||
# (gofmt|grep is used to obtain a non-zero exit status if the formatting is off)
 | 
			
		||||
test:
 | 
			
		||||
	go test ./...
 | 
			
		||||
	@if gofmt -l . | grep .go; then \
 | 
			
		||||
	  echo "Repo contains improperly formatted go files; run gofmt on above files" && exit 1; \
 | 
			
		||||
	else echo "OK gofmt"; fi
 | 
			
		||||
	-go vet -unsafeptr=false ./...
 | 
			
		||||
 | 
			
		||||
# BUILD
 | 
			
		||||
#
 | 
			
		||||
# The build target cross compiles each program in cmd to a binary for each platform in the bin
 | 
			
		||||
# directory. It is assumed that each command has a main.go file in its directory. Trying to keep all
 | 
			
		||||
# this relatively simple and not descend into makefile hell...
 | 
			
		||||
 | 
			
		||||
# Get a list of all main.go in cmd subdirs
 | 
			
		||||
# MAINS becomes: cmd/gpio-list/main.go cmd/periph-info/main.go ...
 | 
			
		||||
MAINS := $(wildcard cmd/*/main.go)
 | 
			
		||||
# Get a list of all the commands, i.e. names of dirs that contain a main.go
 | 
			
		||||
# CMDS becomes: gpio-list periph-info ...
 | 
			
		||||
CMDS  := $(patsubst cmd/%/main.go,%,$(MAINS))
 | 
			
		||||
# Get a list of binaries to build
 | 
			
		||||
# BINS becomes: bin/gpio-list-arm bin/periph-info-arm ... bin/gpio-list-arm64 bin/periph-info-arm64 ...
 | 
			
		||||
ARCHS := arm arm64 amd64 win64.exe
 | 
			
		||||
BINS=$(foreach arch,$(ARCHS),$(foreach cmd,$(CMDS),bin/$(cmd)-$(arch)))
 | 
			
		||||
 | 
			
		||||
build: depend bin $(BINS)
 | 
			
		||||
bin:
 | 
			
		||||
	mkdir bin
 | 
			
		||||
 | 
			
		||||
# Rules to build binaries for a command in cmd. The prereqs could be improved...
 | 
			
		||||
bin/%-arm: cmd/%/*.go
 | 
			
		||||
	GOARCH=arm GOOS=linux go build -o $@ ./cmd/$*
 | 
			
		||||
bin/%-arm64: cmd/%/*.go
 | 
			
		||||
	GOARCH=arm64 GOOS=linux go build -o $@ ./cmd/$*
 | 
			
		||||
bin/%-amd64: cmd/%/*.go
 | 
			
		||||
	GOARCH=amd64 GOOS=linux go build -o $@ ./cmd/$*
 | 
			
		||||
bin/%-win64.exe: cmd/%/*.go
 | 
			
		||||
	GOARCH=amd64 GOOS=windows go build -o $@ ./cmd/$*
 | 
			
		||||
	
 | 
			
		||||
# clean removes all compiled binaries
 | 
			
		||||
clean:
 | 
			
		||||
	rm bin/*-*
 | 
			
		||||
	rmdir bin
 | 
			
		||||
		Reference in New Issue
	
	Block a user