Created
May 29, 2023 12:33
-
-
Save atsushifx/d3027771549acaf801e9b86f62214ac8 to your computer and use it in GitHub Desktop.
Makefile with OS detect
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# @(#) : Makefile for OS common | |
# | |
# @version 1.0.0 | |
# @author Furukawa, Atsushi <atsushifx@aglabo.com> | |
# @date 2023-05-29 | |
# @license MIT | |
# | |
# @desc<< | |
# Makefileのテンプレートです。プロジェクトに応じて適宜追加や修正をしてください。 | |
# | |
# 注意: | |
# 見やすさを考慮しインデントには空白を使用していますが、実際のMakefileではインデントにタブを使用する必要があります。 | |
# このMakefileを使用する場合は、インデントをタブに変更してください。 | |
# VS Codeの場合は、「インデントをタブに変換」でタブに変換できます | |
# | |
#<< | |
export | |
# go command | |
GOCMD := go | |
GOBUILD := $(GOCMD) build | |
GOCLEAN := $(GOCMD) clean | |
# FLAGS | |
LDFLAGS="-s -w" | |
# set system envrion for Windows | |
ifeq ($(OS),Windows_NT) | |
GOOS := windows | |
GOMAKEFILE := make-windows.mk | |
else | |
UNAME_OS := $(shell uname -s) | |
ifeq ($(UNAME_OS),Linux) | |
GOOS := linux | |
GOMAKEFILE := make-linux.mk | |
else ifeq ($(UNAME_OS),Darwin) | |
GOOS := darwin | |
GOMAKEFILE := make-mac.mk | |
else | |
GOOS := unknown | |
GOMAKEFILE := make-unknown.mk | |
echo "Error: OS unknown" | |
exit 1 | |
endif | |
endif | |
# set architecture | |
UNAME_MACHINE:=$(shell uname -m) | |
ifeq ($(UNAME_MACHINE),x86_64) | |
export GOARCH := amd64 | |
else ifeq (${UNAME_MACHINE},i686) | |
export GOARCH := 386 | |
else ifeq (${UNAME_MACHINE},aarch64) | |
export GOARCH := arm64 | |
else | |
export GOARCH := unknown | |
endif | |
# set Makefile | |
.PHONY: env | |
env: | |
${MAKE} -f ${GOMAKEFILE} env | |
.PHONY: clean | |
clean: | |
${MAKE} -f ${GOMAKEFILE} go-clean | |
.PHONY: build | |
build: | |
$(MAKE) -f $(GOMAKEFILE) go-build | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment