From 0115a51de4a6079588e3eee12398b96234ca9f6d Mon Sep 17 00:00:00 2001 From: Paul Dardeau Date: Sat, 4 Sep 2021 06:32:42 -0500 Subject: [PATCH] makefiles: rename as requested in issues tracker (#11380) --- .editorconfig | 2 +- .gitignore | 1 + BSDmakefile | 8 --- GNUmakefile | 154 +++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 156 ++------------------------------------------------ 5 files changed, 161 insertions(+), 160 deletions(-) delete mode 100644 BSDmakefile create mode 100644 GNUmakefile diff --git a/.editorconfig b/.editorconfig index ed42a3deb0..d0c5ae6bdb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,5 +20,5 @@ trim_trailing_whitespace = false [*.{txt,out}] insert_final_newline = false -[Makefile] +[{Makefile,GNUmakefile}] indent_style = tab diff --git a/.gitignore b/.gitignore index fd4a7cc440..72191f36d9 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ fns.txt !Dockerfile.cross !LICENSE !Makefile +!GNUmakefile # ignore editor files .idea diff --git a/BSDmakefile b/BSDmakefile deleted file mode 100644 index 756fa7651c..0000000000 --- a/BSDmakefile +++ /dev/null @@ -1,8 +0,0 @@ -CC ?= cc - -all: - rm -rf vc/ - git clone --depth 1 --quiet https://github.com/vlang/vc - $(CC) -std=gnu11 -w -o v vc/v.c -lm -lexecinfo - rm -rf vc/ - @echo "V has been successfully built" diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000000..fd876629bf --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,154 @@ +CC ?= cc +CFLAGS ?= +LDFLAGS ?= +TMPDIR ?= /tmp +VROOT ?= . +VC ?= ./vc +V ?= ./v +VCREPO ?= https://github.com/vlang/vc +TCCREPO ?= https://github.com/vlang/tccbin + +VCFILE := v.c +TMPTCC := $(VROOT)/thirdparty/tcc +TCCOS := unknown +TCCARCH := unknown +GITCLEANPULL := git clean -xf && git pull --quiet +GITFASTCLONE := git clone --depth 1 --quiet --single-branch + +#### Platform detections and overrides: +_SYS := $(shell uname 2>/dev/null || echo Unknown) +_SYS := $(patsubst MSYS%,MSYS,$(_SYS)) +_SYS := $(patsubst MINGW%,MinGW,$(_SYS)) + +ifneq ($(filter $(_SYS),MSYS MinGW),) +WIN32 := 1 +V:=./v.exe +endif + +ifeq ($(_SYS),Linux) +LINUX := 1 +TCCOS := linux +endif + +ifeq ($(_SYS),Darwin) +MAC := 1 +TCCOS := macos +endif + +ifeq ($(_SYS),FreeBSD) +TCCOS := freebsd +LDFLAGS += -lexecinfo +endif + +ifeq ($(_SYS),NetBSD) +TCCOS := netbsd +LDFLAGS += -lexecinfo +endif + +ifdef ANDROID_ROOT +ANDROID := 1 +undefine LINUX +TCCOS := android +endif +##### + +ifdef WIN32 +TCCOS := windows +VCFILE := v_win.c +endif + +TCCARCH := $(shell uname -m 2>/dev/null || echo unknown) + +ifeq ($(TCCARCH),x86_64) + TCCARCH := amd64 +else +ifneq ($(filter x86%,$(TCCARCH)),) + TCCARCH := i386 +else +ifeq ($(TCCARCH),arm64) + TCCARCH := arm64 +else +ifneq ($(filter arm%,$(TCCARCH)),) + TCCARCH := arm +# otherwise, just use the arch name +endif +endif +endif +endif + +.PHONY: all clean fresh_vc fresh_tcc + +ifdef prod +VFLAGS+=-prod +endif + +all: latest_vc latest_tcc +ifdef WIN32 + $(CC) $(CFLAGS) -std=c99 -municode -w -o $(V) $(VC)/$(VCFILE) $(LDFLAGS) + $(V) -o v2.exe $(VFLAGS) cmd/v + move /y v2.exe v.exe +else + $(CC) $(CFLAGS) -std=gnu99 -w -o $(V) $(VC)/$(VCFILE) -lm -lpthread $(LDFLAGS) + $(V) -o v2.exe $(VFLAGS) cmd/v + mv -f v2.exe v +endif + @echo "V has been successfully built" + @$(V) -version + +clean: + rm -rf $(TMPTCC) + rm -rf $(VC) + +ifndef local +latest_vc: $(VC)/.git/config + cd $(VC) && $(GITCLEANPULL) +else +latest_vc: + @echo "Using local vc" +endif + +fresh_vc: + rm -rf $(VC) + $(GITFASTCLONE) $(VCREPO) $(VC) + +ifndef local +latest_tcc: $(TMPTCC)/.git/config + cd $(TMPTCC) && $(GITCLEANPULL) +else +latest_tcc: + @echo "Using local tcc" +endif + +fresh_tcc: + rm -rf $(TMPTCC) +ifndef local +# Check wether a TCC branch exists for the user's system configuration. +ifneq (,$(findstring thirdparty-$(TCCOS)-$(TCCARCH), $(shell git ls-remote --heads $(TCCREPO) | sed 's/^[a-z0-9]*\trefs.heads.//'))) + $(GITFASTCLONE) --branch thirdparty-$(TCCOS)-$(TCCARCH) $(TCCREPO) $(TMPTCC) +else + @echo 'Pre-built TCC not available for thirdparty-$(TCCOS)-$(TCCARCH) at $(TCCREPO), will use the system compiler: $(CC)' + $(GITFASTCLONE) --branch thirdparty-unknown-unknown $(TCCREPO) $(TMPTCC) +endif +else + @echo "Using local tccbin" +endif + +$(TMPTCC)/.git/config: + $(MAKE) fresh_tcc + +$(VC)/.git/config: + $(MAKE) fresh_vc + +asan: + $(MAKE) all CFLAGS='-fsanitize=address,undefined' + +selfcompile: + $(V) -cg -o v cmd/v + +selfcompile-static: + $(V) -cg -cflags '--static' -o v-static cmd/v + +### NB: Please keep this Makefile and make.bat simple. +install: + @echo 'Please use `sudo ./v symlink` instead.' + diff --git a/Makefile b/Makefile index fd876629bf..756fa7651c 100644 --- a/Makefile +++ b/Makefile @@ -1,154 +1,8 @@ CC ?= cc -CFLAGS ?= -LDFLAGS ?= -TMPDIR ?= /tmp -VROOT ?= . -VC ?= ./vc -V ?= ./v -VCREPO ?= https://github.com/vlang/vc -TCCREPO ?= https://github.com/vlang/tccbin -VCFILE := v.c -TMPTCC := $(VROOT)/thirdparty/tcc -TCCOS := unknown -TCCARCH := unknown -GITCLEANPULL := git clean -xf && git pull --quiet -GITFASTCLONE := git clone --depth 1 --quiet --single-branch - -#### Platform detections and overrides: -_SYS := $(shell uname 2>/dev/null || echo Unknown) -_SYS := $(patsubst MSYS%,MSYS,$(_SYS)) -_SYS := $(patsubst MINGW%,MinGW,$(_SYS)) - -ifneq ($(filter $(_SYS),MSYS MinGW),) -WIN32 := 1 -V:=./v.exe -endif - -ifeq ($(_SYS),Linux) -LINUX := 1 -TCCOS := linux -endif - -ifeq ($(_SYS),Darwin) -MAC := 1 -TCCOS := macos -endif - -ifeq ($(_SYS),FreeBSD) -TCCOS := freebsd -LDFLAGS += -lexecinfo -endif - -ifeq ($(_SYS),NetBSD) -TCCOS := netbsd -LDFLAGS += -lexecinfo -endif - -ifdef ANDROID_ROOT -ANDROID := 1 -undefine LINUX -TCCOS := android -endif -##### - -ifdef WIN32 -TCCOS := windows -VCFILE := v_win.c -endif - -TCCARCH := $(shell uname -m 2>/dev/null || echo unknown) - -ifeq ($(TCCARCH),x86_64) - TCCARCH := amd64 -else -ifneq ($(filter x86%,$(TCCARCH)),) - TCCARCH := i386 -else -ifeq ($(TCCARCH),arm64) - TCCARCH := arm64 -else -ifneq ($(filter arm%,$(TCCARCH)),) - TCCARCH := arm -# otherwise, just use the arch name -endif -endif -endif -endif - -.PHONY: all clean fresh_vc fresh_tcc - -ifdef prod -VFLAGS+=-prod -endif - -all: latest_vc latest_tcc -ifdef WIN32 - $(CC) $(CFLAGS) -std=c99 -municode -w -o $(V) $(VC)/$(VCFILE) $(LDFLAGS) - $(V) -o v2.exe $(VFLAGS) cmd/v - move /y v2.exe v.exe -else - $(CC) $(CFLAGS) -std=gnu99 -w -o $(V) $(VC)/$(VCFILE) -lm -lpthread $(LDFLAGS) - $(V) -o v2.exe $(VFLAGS) cmd/v - mv -f v2.exe v -endif +all: + rm -rf vc/ + git clone --depth 1 --quiet https://github.com/vlang/vc + $(CC) -std=gnu11 -w -o v vc/v.c -lm -lexecinfo + rm -rf vc/ @echo "V has been successfully built" - @$(V) -version - -clean: - rm -rf $(TMPTCC) - rm -rf $(VC) - -ifndef local -latest_vc: $(VC)/.git/config - cd $(VC) && $(GITCLEANPULL) -else -latest_vc: - @echo "Using local vc" -endif - -fresh_vc: - rm -rf $(VC) - $(GITFASTCLONE) $(VCREPO) $(VC) - -ifndef local -latest_tcc: $(TMPTCC)/.git/config - cd $(TMPTCC) && $(GITCLEANPULL) -else -latest_tcc: - @echo "Using local tcc" -endif - -fresh_tcc: - rm -rf $(TMPTCC) -ifndef local -# Check wether a TCC branch exists for the user's system configuration. -ifneq (,$(findstring thirdparty-$(TCCOS)-$(TCCARCH), $(shell git ls-remote --heads $(TCCREPO) | sed 's/^[a-z0-9]*\trefs.heads.//'))) - $(GITFASTCLONE) --branch thirdparty-$(TCCOS)-$(TCCARCH) $(TCCREPO) $(TMPTCC) -else - @echo 'Pre-built TCC not available for thirdparty-$(TCCOS)-$(TCCARCH) at $(TCCREPO), will use the system compiler: $(CC)' - $(GITFASTCLONE) --branch thirdparty-unknown-unknown $(TCCREPO) $(TMPTCC) -endif -else - @echo "Using local tccbin" -endif - -$(TMPTCC)/.git/config: - $(MAKE) fresh_tcc - -$(VC)/.git/config: - $(MAKE) fresh_vc - -asan: - $(MAKE) all CFLAGS='-fsanitize=address,undefined' - -selfcompile: - $(V) -cg -o v cmd/v - -selfcompile-static: - $(V) -cg -cflags '--static' -o v-static cmd/v - -### NB: Please keep this Makefile and make.bat simple. -install: - @echo 'Please use `sudo ./v symlink` instead.' -