trustless-generic-relayer/ethereum/Makefile

54 lines
1.6 KiB
Makefile

SOURCE_FILES:=$(shell find contracts -name "*.sol")
.PHONY: dependencies forge_dependencies wormhole_dependencies est test-forge clean all
all: build
node_modules: package-lock.json
touch -m node_modules
npm ci
# Note: Forge really wants to manage dependencies via submodules, but that
# workflow is a little awkward. There's currently no support for a more
# traditional package manager workflow (with a package manifest file and
# installation into a subdirectory that can be gitignored).
# Instead, we just specify the dependencies here. make will then take care of
# installing them if they are not yet present.
# When adding a new dependency, make sure to specify the exact commit hash, and
# the --no-git and --no-commit flags (see lib/forge-std below)
.PHONY: forge_dependencies
forge_dependencies: lib/forge-std
lib/forge-std:
forge install foundry-rs/forge-std@2c7cbfc6fbede6d7c9e6b17afe997e3fdfe22fef --no-git --no-commit
.PHONY: wormhole_dependencies
wormhole_dependencies: wormhole/ethereum/build
wormhole/ethereum/build:
git clone --depth 1 --branch feat/batch_vaas --single-branch https://github.com/certusone/wormhole.git
cd wormhole/ethereum && npm ci && npm run build && make .env
dependencies: node_modules forge_dependencies wormhole_dependencies
##build: node_modules ${SOURCE_FILES}
build: dependencies
mkdir -p build
npm run build
touch -m build
.env: .env.test
cp $< $@
.PHONY: test
test: test-forge
npm run integration-test
.PHONY: test-forge
test-forge: dependencies
forge test --contracts contracts/gasOracle
.PHONY: clean
clean:
rm -rf anvil.log .env node_modules build lib wormhole