Skip to content
This repository has been archived by the owner on Jan 5, 2023. It is now read-only.

Commit

Permalink
Merge pull request #232 from sauyon/makefile-improvements
Browse files Browse the repository at this point in the history
Makefile improvements
  • Loading branch information
Max Schaefer authored and GitHub Enterprise committed Feb 13, 2020
2 parents 69eae98 + ed3971a commit c7d2931
Show file tree
Hide file tree
Showing 2 changed files with 2,024 additions and 3,993 deletions.
47 changes: 24 additions & 23 deletions Makefile
@@ -1,4 +1,4 @@
all: tools ql/src/go.dbscheme
all: extractor ql/src/go.dbscheme

ifeq ($(OS),Windows_NT)
EXE = .exe
Expand All @@ -25,31 +25,31 @@ BINARIES = go-extractor go-tokenizer go-autobuilder go-bootstrap

clean:
rm -rf tools/bin tools/linux64 tools/osx64 tools/win64 tools/net tools/opencsv
rm -rf $(EXTRACTOR_PACK_OUT) build/stats-project build/testdb
rm -rf $(EXTRACTOR_PACK_OUT) build/stats build/testdb

tools: $(addsuffix $(EXE),$(addprefix tools/bin/,$(BINARIES))) tools/tokenizer.jar

$(addsuffix $(EXE),$(addprefix tools/bin/,$(BINARIES))):
go build -mod=vendor -o $@ ./extractor/cli/$(basename $(notdir $@))
go build -mod=vendor -o $@ ./extractor/cli/$(basename $(@F))

tools-codeql: tools-$(CODEQL_PLATFORM)

tools-codeql-full: tools-linux64 tools-osx64 tools-win64

tools-linux64: $(addprefix tools/linux64/,$(BINARIES)) tools/tokenizer.jar
tools-linux64: $(addprefix tools/linux64/,$(BINARIES))

$(addprefix tools/linux64/,$(BINARIES)):
GOOS=linux GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(notdir $@)
GOOS=linux GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(@F)

tools-osx64: $(addprefix tools/osx64/,$(BINARIES)) tools/tokenizer.jar
tools-osx64: $(addprefix tools/osx64/,$(BINARIES))

$(addprefix tools/osx64/,$(BINARIES)):
GOOS=darwin GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(notdir $@)
GOOS=darwin GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(@F)

tools-win64: $(addsuffix .exe,$(addprefix tools/win64/,$(BINARIES))) tools/tokenizer.jar
tools-win64: $(addsuffix .exe,$(addprefix tools/win64/,$(BINARIES)))

$(addsuffix .exe,$(addprefix tools/win64/,$(BINARIES))):
env GOOS=windows GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(basename $(notdir $@))
env GOOS=windows GOARCH=amd64 go build -mod=vendor -o $@ ./extractor/cli/$(basename $(@F))

.PHONY: extractor-common extractor extractor-full
extractor-common: codeql-extractor.yml COPYRIGHT LICENSE ql/src/go.dbscheme \
Expand All @@ -71,26 +71,27 @@ tools/tokenizer.jar: tools/net/sourceforge/pmd/cpd/GoLanguage.class
jar uf $@ -C tools opencsv

tools/net/sourceforge/pmd/cpd/GoLanguage.class: extractor/net/sourceforge/pmd/cpd/GoLanguage.java
javac -cp extractor -d tools $^
javac -cp extractor -d tools $<
rm tools/net/sourceforge/pmd/cpd/AbstractLanguage.class
rm tools/net/sourceforge/pmd/cpd/SourceCode.class
rm tools/net/sourceforge/pmd/cpd/TokenEntry.class
rm tools/net/sourceforge/pmd/cpd/Tokenizer.class

ql/src/go.dbscheme: tools/$(CODEQL_PLATFORM)/go-extractor$(EXE)
env TRAP_FOLDER=/tmp $^ --dbscheme $@

ql/src/go.dbscheme.stats: ql/src/go.dbscheme
odasa createProject --force --template templates/project --threads 4 \
--variable repository https://github.com/golang/tools \
--variable revision 6e04913c \
--variable SEMMLE_REPO_URL golang.org/x/tools \
build/stats-project
odasa addSnapshot --latest --overwrite --name revision --project build/stats-project
odasa buildSnapshot --latest --project build/stats-project
odasa collectStats --dbscheme $^ --db build/stats-project/revision/working/db-go --outputFile $@

test: all extractor build/testdb/check-upgrade-path
env TRAP_FOLDER=/tmp $< --dbscheme $@

build/stats/src.stamp:
mkdir -p $(@D)/src
git clone 'https://github.com/golang/tools' $(@D)/src
git -C $(@D)/src checkout ac4f524c1612 -q
touch $@

ql/src/go.dbscheme.stats: ql/src/go.dbscheme build/stats/src.stamp extractor
rm -rf build/stats/database
codeql database create -l go -s build/stats/src -j4 --search-path . build/stats/database
odasa collectStats --dbscheme $< --db build/stats/database/db-go --outputFile $@

test: all build/testdb/check-upgrade-path
codeql test run ql/test --search-path . --additional-packs ql
cd extractor; go test -mod=vendor ./... | grep -vF "[no test files]"

Expand Down

0 comments on commit c7d2931

Please sign in to comment.