Start build refactor with top-level Makefile

- Recursively calls make in monad-linux and monad-build
- Eventually will deprecate scripts dir
- Makes monad-docker.sh shareable
This commit is contained in:
Andrew Schwartzmeyer 2015-10-25 20:37:36 -07:00
parent 0da23d5b5c
commit 16a2ae2fa8
5 changed files with 51 additions and 12 deletions

15
.gitignore vendored
View File

@ -1,10 +1,7 @@
.idea
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
Makefile
!/scripts/Makefile
/.config
/.nuget\\packages\\/
/.bash_history
/.local/
/.config/
/indicationlog
/bin/
/lib/
/tools/
*-tests.xml

42
Makefile Normal file
View File

@ -0,0 +1,42 @@
# the monad-linux superproject
export MONAD=$(realpath $(CURDIR))
all: powershell-native powershell-managed
# managed code
powershell-managed:
$(MAKE) -j -C src/monad-build all test
# native code
powershell-native: src/monad-native/Makefile
$(MAKE) -j -C src/monad-native
src/monad-native/Makefile:
cd src/monad-native && cmake .
# one-time setup
tools/nuget.exe:
wget 'https://dist.nuget.org/win-x86-commandline/latest/nuget.exe'
bootstrap: tools/nuget.exe
mono $< restore -PackagesDirectory tools
# run targets
export POWERSHELL=env LD_LIBRARY_PATH=$(MONAD)/lib CORE_ROOT=$(MONAD)/src/monad-ext/coreclr/Runtime PWRSH_ROOT=$(MONAD)/lib PSMODULEPATH=$(MONAD)/lib/Modules $(MONAD)/bin/powershell
demo:
$(POWERSHELL) lib/powershell-simple.exe '"a","b","c","a","a" | Select-Object -Unique'
shell:
$(POWERSHELL) lib/powershell-run.exe
clean-monad:
$(MAKE) -C src/monad-build clean
clean-native:
$(MAKE) -C src/monad-native clean
clean: clean-monad

View File

@ -11,14 +11,14 @@ monad-tty()
}
# runs ephemeral andschwa/magrathea docker container with local
# directory mounted to /opt and workdir set to /opt/scripts
# directory mounted and workdir set to /opt
monad-docker-run()
{
local CONSOLE=$1
shift 1
docker run --rm \
--volume $(dirname $(pwd))/:/opt \
--workdir /opt/scripts \
--volume $(pwd)/:/opt \
--workdir /opt \
$CONSOLE \
andschwa/magrathea:latest \
bash -c "$(monad-impersonate) bash -c '$*'"